- Merge from trunk
[reactos.git] / dll / win32 / msi / msiquery.c
index f2723af..cf69593 100644 (file)
@@ -382,7 +382,7 @@ UINT MSI_ViewFetch(MSIQUERY *query, MSIRECORD **prec)
     if (r == ERROR_SUCCESS)
     {
         query->row ++;
-        MSI_RecordSetInteger(*prec, 0, (int)query);
+        MSI_RecordSetIntPtr(*prec, 0, (INT_PTR)query);
     }
 
     return r;
@@ -617,7 +617,7 @@ UINT MSI_ViewModify( MSIQUERY *query, MSIMODIFY mode, MSIRECORD *rec )
     if ( !view  || !view->ops->modify)
         return ERROR_FUNCTION_FAILED;
 
-    if ( mode == MSIMODIFY_UPDATE && MSI_RecordGetInteger( rec, 0 ) != (int)query )
+    if ( mode == MSIMODIFY_UPDATE && MSI_RecordGetIntPtr( rec, 0 ) != (INT_PTR)query )
         return ERROR_FUNCTION_FAILED;
 
     r = view->ops->modify( view, mode, rec, query->row );
@@ -733,7 +733,10 @@ UINT MSI_DatabaseApplyTransformW( MSIDATABASE *db,
     r = StgOpenStorage( szTransformFile, NULL,
            STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE, NULL, 0, &stg);
     if ( FAILED(r) )
+    {
+        WARN("failed to open transform 0x%08x\n", r);
         return ret;
+    }
 
     r = IStorage_Stat( stg, &stat, STATFLAG_NONAME );
     if ( FAILED( r ) )
@@ -898,6 +901,9 @@ UINT MSI_DatabaseGetPrimaryKeys( MSIDATABASE *db,
     MSIQUERY *query = NULL;
     UINT r;
 
+    if (!TABLE_Exists( db, table ))
+        return ERROR_INVALID_TABLE;
+
     r = MSI_OpenQuery( db, &query, sql, table );
     if( r != ERROR_SUCCESS )
         return r;