summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libmsi-query.h5
-rw-r--r--libmsi/libmsi-query.c9
-rw-r--r--tests/testdatabase.c388
-rw-r--r--tests/testrecord.c14
-rw-r--r--tools/msibuild.c10
-rw-r--r--tools/msiinfo.c23
6 files changed, 228 insertions, 221 deletions
diff --git a/include/libmsi-query.h b/include/libmsi-query.h
index 257658e..f9da9ef 100644
--- a/include/libmsi-query.h
+++ b/include/libmsi-query.h
@@ -47,8 +47,9 @@ LibmsiQuery * libmsi_query_new (LibmsiDatabase *database,
GError **error);
LibmsiRecord * libmsi_query_fetch (LibmsiQuery *query,
GError **error);
-LibmsiResult libmsi_query_execute (LibmsiQuery *query,
- LibmsiRecord *rec);
+gboolean libmsi_query_execute (LibmsiQuery *query,
+ LibmsiRecord *rec,
+ GError **error);
gboolean libmsi_query_close (LibmsiQuery *query,
GError **error);
LibmsiDBError libmsi_query_get_error (LibmsiQuery *query,
diff --git a/libmsi/libmsi-query.c b/libmsi/libmsi-query.c
index d3301d3..26bf8dd 100644
--- a/libmsi/libmsi-query.c
+++ b/libmsi/libmsi-query.c
@@ -468,7 +468,8 @@ LibmsiResult _libmsi_query_execute(LibmsiQuery *query, LibmsiRecord *rec )
return view->ops->execute( view, rec );
}
-LibmsiResult libmsi_query_execute(LibmsiQuery *query, LibmsiRecord *rec)
+gboolean
+libmsi_query_execute (LibmsiQuery *query, LibmsiRecord *rec, GError **error)
{
LibmsiResult ret;
@@ -487,7 +488,11 @@ LibmsiResult libmsi_query_execute(LibmsiQuery *query, LibmsiRecord *rec)
if( rec )
g_object_unref(rec);
- return ret;
+ /* FIXME: raise error when it happens */
+ if (ret != LIBMSI_RESULT_SUCCESS)
+ g_set_error_literal (error, LIBMSI_RESULT_ERROR, ret, G_STRFUNC);
+
+ return ret == LIBMSI_RESULT_SUCCESS;
}
static void msi_set_record_type_string( LibmsiRecord *rec, unsigned field,
diff --git a/tests/testdatabase.c b/tests/testdatabase.c
index ba59fa8..37484d0 100644
--- a/tests/testdatabase.c
+++ b/tests/testdatabase.c
@@ -152,7 +152,8 @@ int do_query(LibmsiDatabase *hdb, const char *sql, LibmsiRecord **rec)
ret = libmsi_database_open_query(hdb, sql, &hquery);
if (ret != LIBMSI_RESULT_SUCCESS)
return ret;
- ret = libmsi_query_execute(hquery, 0);
+ if (!libmsi_query_execute(hquery, 0, &error))
+ goto error;
if (ret != LIBMSI_RESULT_SUCCESS)
return ret;
*rec = libmsi_query_fetch(hquery, &error);
@@ -171,6 +172,7 @@ error:
static unsigned run_query( LibmsiDatabase *hdb, LibmsiRecord *hrec, const char *sql )
{
+ GError *error = NULL;
LibmsiQuery *hquery = 0;
unsigned r;
@@ -178,10 +180,11 @@ static unsigned run_query( LibmsiDatabase *hdb, LibmsiRecord *hrec, const char *
if( r != LIBMSI_RESULT_SUCCESS )
return r;
- r = libmsi_query_execute(hquery, hrec);
- if( r == LIBMSI_RESULT_SUCCESS )
- r = libmsi_query_close(hquery, NULL) ?
- LIBMSI_RESULT_SUCCESS : LIBMSI_RESULT_FUNCTION_FAILED;
+ if (!libmsi_query_execute(hquery, hrec, &error) ||
+ !libmsi_query_close(hquery, &error))
+ r = error->code;
+
+ g_clear_error(&error);
g_object_unref(hquery);
return r;
}
@@ -316,8 +319,8 @@ static void test_msiinsert(void)
"PRIMARY KEY `id`)";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(hquery, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(hquery);
@@ -325,8 +328,8 @@ static void test_msiinsert(void)
sql = "SELECT * FROM phone WHERE number = '8675309'";
r = libmsi_database_open_query(hdb, sql, &hquery2);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery2, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery2, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
query_check_no_more(hquery2);
/* insert a value into it */
@@ -334,15 +337,15 @@ static void test_msiinsert(void)
"VALUES('1', 'Abe', '8675309')";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(hquery, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(hquery);
query_check_no_more(hquery2);
- r = libmsi_query_execute(hquery2, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery2, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery2, NULL);
ok(hrec, "libmsi_query_fetch failed\n");
@@ -416,8 +419,8 @@ static void test_msiinsert(void)
if (r == LIBMSI_RESULT_SUCCESS)
{
- r = libmsi_query_execute(hquery, hrec);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, hrec, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(hquery, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(hquery);
@@ -438,6 +441,7 @@ static void test_msiinsert(void)
static unsigned try_query_param( LibmsiDatabase *hdb, const char *szQuery, LibmsiRecord *hrec )
{
+ GError *error = NULL;
LibmsiQuery *htab = 0;
unsigned res;
@@ -446,9 +450,9 @@ static unsigned try_query_param( LibmsiDatabase *hdb, const char *szQuery, Libms
{
unsigned r;
- r = libmsi_query_execute( htab, hrec );
- if(r != LIBMSI_RESULT_SUCCESS )
- res = r;
+ r = libmsi_query_execute (htab, hrec, &error);
+ if (error)
+ res = error->code;
r = libmsi_query_close(htab, NULL);
if(!r)
@@ -730,8 +734,8 @@ static void test_getcolinfo(void)
r = libmsi_database_open_query(hdb, "select * from _Tables", &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query\n");
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query\n");
/* check that NAMES works */
rec = 0;
@@ -777,8 +781,8 @@ static LibmsiRecord *get_column_info(LibmsiDatabase *hdb, const char *sql, Libms
if( r != LIBMSI_RESULT_SUCCESS )
return rec;
- r = libmsi_query_execute(hquery, 0);
- if( r == LIBMSI_RESULT_SUCCESS )
+ r = libmsi_query_execute(hquery, 0, NULL);
+ if( r )
{
libmsi_query_get_column_info( hquery, type, &rec );
}
@@ -800,8 +804,8 @@ static unsigned get_columns_table_type(LibmsiDatabase *hdb, const char *table, u
if( r != LIBMSI_RESULT_SUCCESS )
return r;
- r = libmsi_query_execute(hquery, 0);
- if( r == LIBMSI_RESULT_SUCCESS )
+ r = libmsi_query_execute(hquery, 0, NULL);
+ if( r )
{
while (1)
{
@@ -966,8 +970,8 @@ static void test_msiexport(void)
"PRIMARY KEY `id`)";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(hquery, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(hquery);
@@ -977,8 +981,8 @@ static void test_msiexport(void)
"VALUES('1', 'Abe', '8675309')";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(hquery, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(hquery);
@@ -1052,8 +1056,8 @@ static void test_longstrings(void)
r = libmsi_database_open_query(hdb, "select * from `strings` where `id` = 1", &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "libmsi_query_fetch failed");
@@ -1144,8 +1148,8 @@ static void test_streamtable(void)
"SELECT * FROM `_Streams` WHERE `Name` = '\5SummaryInformation'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %u\n", r );
query_check_no_more(query);
@@ -1169,8 +1173,8 @@ static void test_streamtable(void)
"SELECT * FROM `_Streams` WHERE `Name` = '\5SummaryInformation'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %u\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Unexpected result\n");
@@ -1195,8 +1199,8 @@ static void test_streamtable(void)
"INSERT INTO `_Streams` ( `Name`, `Data` ) VALUES ( ?, ? )", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, rec );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, rec , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
g_object_unref( rec );
libmsi_query_close(query, NULL);
@@ -1218,8 +1222,8 @@ static void test_streamtable(void)
"INSERT INTO `_Streams` ( `Name`, `Data` ) VALUES ( ?, ? )", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, rec );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, rec , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
g_object_unref( rec );
libmsi_query_close(query, NULL);
@@ -1230,8 +1234,8 @@ static void test_streamtable(void)
"SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Failed to fetch record\n");
@@ -1253,8 +1257,8 @@ static void test_streamtable(void)
"SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data1'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result");
@@ -1285,8 +1289,8 @@ static void test_streamtable(void)
"UPDATE `_Streams` SET `Data` = ? WHERE `Name` = 'data1'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, rec );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, rec , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
g_object_unref( rec );
libmsi_query_close(query, NULL);
@@ -1297,8 +1301,8 @@ static void test_streamtable(void)
"SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data1'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Failed to fetch record\n");
@@ -1323,8 +1327,8 @@ static void test_streamtable(void)
"SELECT `Name`, `Data` FROM `_Streams` WHERE `Name` = 'data1'", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to open database query: %d\n", r);
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "Failed to execute query: %d\n", r);
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "Failed to execute query: %d\n", r);
query_check_no_more(query);
@@ -1482,8 +1486,8 @@ static void test_where_not_in_selected(void)
r = libmsi_database_open_query(hdb, sql, &query);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(query, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(query, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "failed to fetch query\n" );
@@ -1570,8 +1574,8 @@ static void test_where(void)
r = libmsi_database_open_query(hdb, sql, &query);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(query, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(query, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "failed to fetch query\n");
@@ -1630,8 +1634,8 @@ static void test_where(void)
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, rec);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, rec, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
g_object_unref(rec);
@@ -1916,8 +1920,8 @@ static void test_msiimport(void)
ok(check_record(rec, 2, "s255"), "Expected s255\n");
g_object_unref(rec);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -1981,8 +1985,8 @@ static void test_msiimport(void)
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -2601,8 +2605,8 @@ static void test_try_transform(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "open query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "query execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "query execute failed\n");
hrec = libmsi_query_fetch(query, NULL);
ok(hrec, "Expected result\n");
@@ -2893,8 +2897,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
while ((hrec = libmsi_query_fetch(hquery, &error)) != NULL)
@@ -2922,8 +2926,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
while ((hrec = libmsi_query_fetch(hquery, &error)) != NULL)
@@ -2942,8 +2946,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -2984,8 +2988,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3025,8 +3029,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3067,8 +3071,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3108,8 +3112,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3150,8 +3154,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3189,8 +3193,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3227,8 +3231,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3277,8 +3281,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
i = 0;
data_correct = true;
@@ -3327,8 +3331,8 @@ static void test_join(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open query: %d\n", r );
- r = libmsi_query_execute(hquery, 0);
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %d\n", r );
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok( r, "failed to execute query: %d\n", r );
query_check_no_more(hquery);
@@ -3660,8 +3664,8 @@ static void test_integers(void)
"PRIMARY KEY `one`)";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n", NULL);
g_object_unref(query);
@@ -3709,8 +3713,8 @@ static void test_integers(void)
"VALUES('', '', '', '', '', '', '', '')";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "Expected LIBMSI_RESULT_FUNCTION_FAILED, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(!r, "Expected LIBMSI_RESULT_FUNCTION_FAILED, got %d\n", r);
libmsi_query_close(query, NULL);
g_object_unref(query);
@@ -3727,8 +3731,8 @@ static void test_integers(void)
"VALUES('', '2', '', '4', '5', '6', '7', '8')";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
sql = "SELECT * FROM `integers`";
r = do_query(hdb, sql, &rec);
@@ -3789,8 +3793,8 @@ static void test_update(void)
"`Control_Next` CHAR(50), `Help` CHAR(50) LOCALIZABLE PRIMARY KEY `Dialog_`, `Control`)";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3803,8 +3807,8 @@ static void test_update(void)
"VALUES('ErrorDialog', 'ErrorText', '1', '5', '5', '5', '5', '', '', '', '')";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3817,8 +3821,8 @@ static void test_update(void)
"VALUES('ErrorDialog', 'Button', '1', '5', '5', '5', '5', '', '', '', '')";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r , "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3831,8 +3835,8 @@ static void test_update(void)
"VALUES('AnotherDialog', 'ErrorText', '1', '5', '5', '5', '5', '', '', '', '')";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3860,8 +3864,8 @@ static void test_update(void)
sql = "UPDATE `Control` SET `Text` = 'this is text' WHERE `Dialog_` = 'ErrorDialog'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3871,8 +3875,8 @@ static void test_update(void)
sql = "SELECT `Text` FROM `Control` WHERE `Control` = 'ErrorText'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "query fetch failed\n");
@@ -3897,8 +3901,8 @@ static void test_update(void)
sql = "UPDATE `Control` SET `Text` = 'this is text' WHERE `Dialog_` = 'ErrorDialog' AND `Control` = 'ErrorText'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3908,8 +3912,8 @@ static void test_update(void)
sql = "SELECT `Text` FROM `Control` WHERE `Control` = 'ErrorText'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "query fetch failed\n");
@@ -3934,8 +3938,8 @@ static void test_update(void)
sql = "UPDATE `Control` SET `Text` = 'this is text'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close(query, NULL);
ok(r, "libmsi_query_close failed\n");
g_object_unref(query);
@@ -3945,8 +3949,8 @@ static void test_update(void)
sql = "SELECT `Text` FROM `Control`";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "query fetch failed\n");
@@ -4006,8 +4010,8 @@ static void test_update(void)
sql = "SELECT `Pear` FROM `Apple` ORDER BY `Orange`";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "query fetch failed\n");
@@ -4119,8 +4123,8 @@ static void test_tables_order(void)
sql = "SELECT * FROM `_Tables`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4148,8 +4152,8 @@ static void test_tables_order(void)
sql = "SELECT * FROM `_Columns`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4262,8 +4266,8 @@ static void test_rows_order(void)
sql = "SELECT * FROM `bar`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4362,8 +4366,8 @@ static void test_collation(void)
sql = "SELECT * FROM `bar`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4402,8 +4406,8 @@ static void test_collation(void)
r = libmsi_database_open_query(hdb, sql6, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "libmsi_query_execute failed\n");
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4469,8 +4473,8 @@ static void test_select_markers(void)
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, rec);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, rec, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
res = libmsi_query_fetch(query, NULL);
ok(res, "query fetch failed\n");
@@ -4509,8 +4513,8 @@ static void test_select_markers(void)
sql = "SELECT * FROM `Table` WHERE `Two`<>? AND `Three`>? ORDER BY `Three`";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, rec);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, rec, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
res = libmsi_query_fetch(query, NULL);
ok(res, "query fetch failed\n");
@@ -4644,8 +4648,8 @@ static void test_stringtable(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4671,8 +4675,8 @@ static void test_stringtable(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4935,8 +4939,8 @@ static void test_order(void)
sql = "SELECT `A`, `B` FROM `Mesa` ORDER BY `C`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -4979,8 +4983,8 @@ static void test_order(void)
sql = "SELECT `A`, `D` FROM `Mesa`, `Sideboard` ORDER BY `F`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5089,8 +5093,8 @@ static void test_order(void)
sql = "SELECT * FROM `Empty` ORDER BY `A`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
query_check_no_more(hquery);
@@ -5116,8 +5120,8 @@ static void test_order(void)
sql = "SELECT * FROM `Buffet` WHERE `One` = 'dos' ORDER BY `Two`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
@@ -5178,8 +5182,8 @@ static void test_deleterow(void)
sql = "SELECT * FROM `Table`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5255,8 +5259,8 @@ static void test_quotes(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5281,8 +5285,8 @@ static void test_quotes(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5444,8 +5448,8 @@ static void test_carriagereturn(void)
sql = "SELECT * FROM `_Tables`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5508,8 +5512,8 @@ static void test_noquotes(void)
sql = "SELECT * FROM `_Tables`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5537,8 +5541,8 @@ static void test_noquotes(void)
sql = "SELECT * FROM `_Columns`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5606,8 +5610,8 @@ static void test_noquotes(void)
sql = "SELECT * FROM Table2";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
query_check_no_more(hquery);
@@ -5617,8 +5621,8 @@ static void test_noquotes(void)
sql = "SELECT * FROM `Table` WHERE A = 'hi'";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5812,8 +5816,8 @@ static void test_storages_table(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Failed to open database hquery: %d\n", r);
- r = libmsi_query_execute(hquery, hrec);
- ok(r == LIBMSI_RESULT_SUCCESS, "Failed to execute hquery: %d\n", r);
+ r = libmsi_query_execute(hquery, hrec, NULL);
+ ok(r, "Failed to execute hquery: %d\n", r);
g_object_unref(hrec);
libmsi_query_close(hquery, NULL);
@@ -5823,8 +5827,8 @@ static void test_storages_table(void)
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Failed to open database hquery: %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Failed to execute hquery: %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Failed to execute hquery: %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5903,8 +5907,8 @@ static void test_droptable(void)
sql = "SELECT * FROM `_Tables` WHERE `Name` = 'One'";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5918,8 +5922,8 @@ static void test_droptable(void)
sql = "SELECT * FROM `_Columns` WHERE `Table` = 'One'";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -5951,8 +5955,8 @@ static void test_droptable(void)
hquery = 0;
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, &error);
ok(error, "Expected error\n");
@@ -6003,8 +6007,8 @@ static void test_droptable(void)
sql = "SELECT * FROM `_Tables` WHERE `Name` = 'One'";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -6018,8 +6022,8 @@ static void test_droptable(void)
sql = "SELECT * FROM `_Columns` WHERE `Table` = 'One'";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -6624,8 +6628,8 @@ static void test_dbmerge(void)
sql = "SELECT * FROM `One`";
r = libmsi_database_open_query(hdb, sql, &hquery);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(hquery, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(hquery, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
hrec = libmsi_query_fetch(hquery, NULL);
ok(hrec, "query fetch failed\n");
@@ -6709,8 +6713,8 @@ static void test_select_with_tablenames(void)
sql = "SELECT T1.A, T2.B FROM T1,T2";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
for (i = 0; i < 4; i++)
{
@@ -6817,8 +6821,8 @@ static void test_insertorder(void)
sql = "SELECT * FROM `T`";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
for (i = 0; i < 6; i++)
{
@@ -6854,8 +6858,8 @@ static void test_insertorder(void)
sql = "SELECT * FROM `T`";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
for (i = 0; i < 6; i++)
{
@@ -6981,8 +6985,8 @@ static void test_columnorder(void)
sql = "SELECT * FROM `_Columns` WHERE `Table` = 'T'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -7107,8 +7111,8 @@ static void test_columnorder(void)
sql = "SELECT * FROM `_Columns` WHERE `Table` = 'T'";
r = libmsi_database_open_query(hdb, sql, &query);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute(query, 0);
- ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute(query, 0, NULL);
+ ok(r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -7193,8 +7197,8 @@ static void test_createtable(void)
ok(res == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
if(res == LIBMSI_RESULT_SUCCESS )
{
- res = libmsi_query_execute( htab, hrec );
- ok(res == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
+ res = libmsi_query_execute( htab, hrec , NULL);
+ ok(res, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
hrec = NULL;
res = libmsi_query_get_column_info( htab, LIBMSI_COL_INFO_NAMES, &hrec );
@@ -7216,8 +7220,8 @@ static void test_createtable(void)
ok(res == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
if(res == LIBMSI_RESULT_SUCCESS )
{
- res = libmsi_query_execute( htab, 0 );
- ok(res == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
+ res = libmsi_query_execute( htab, 0 , NULL);
+ ok(res, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
res = libmsi_query_close(htab, NULL);
ok(res, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", res);
@@ -7361,8 +7365,8 @@ static void test_select_column_names(void)
r = libmsi_database_open_query( hdb, "SELECT '' FROM `t`", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "failed to execute query: %u\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -7404,8 +7408,8 @@ static void test_select_column_names(void)
r = libmsi_database_open_query( hdb, "SELECT `a`, '' FROM `t`", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "failed to execute query: %u\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -7428,8 +7432,8 @@ static void test_select_column_names(void)
r = libmsi_database_open_query( hdb, "SELECT '', `a` FROM `t`", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "failed to execute query: %u\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
@@ -7454,8 +7458,8 @@ static void test_select_column_names(void)
r = libmsi_database_open_query( hdb, "SELECT `a`, '', `b` FROM `t`", &query );
ok( r == LIBMSI_RESULT_SUCCESS, "failed to open database query: %u\n", r );
- r = libmsi_query_execute( query, 0 );
- ok( r == LIBMSI_RESULT_SUCCESS, "failed to execute query: %u\n", r );
+ r = libmsi_query_execute( query, 0 , NULL);
+ ok( r, "failed to execute query: %u\n", r );
rec = libmsi_query_fetch(query, NULL);
ok(rec, "Expected result\n");
diff --git a/tests/testrecord.c b/tests/testrecord.c
index 7e73597..2ae3965 100644
--- a/tests/testrecord.c
+++ b/tests/testrecord.c
@@ -374,8 +374,8 @@ static void test_fieldzero (void)
"PRIMARY KEY `id`)";
r = libmsi_database_open_query (hdb, query, &hview);
ok (r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute (hview, 0);
- ok (r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute (hview, 0, NULL);
+ ok (r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_query_close (hview, NULL);
ok (r, "libmsi_query_close failed\n");
g_object_unref (hview);
@@ -384,8 +384,8 @@ static void test_fieldzero (void)
"VALUES ('1', 'Abe', '8675309')";
r = libmsi_database_open_query (hdb, query, &hview);
ok (r == LIBMSI_RESULT_SUCCESS, "libmsi_database_open_query failed\n");
- r = libmsi_query_execute (hview, 0);
- ok (r == LIBMSI_RESULT_SUCCESS, "libmsi_query_execute failed\n");
+ r = libmsi_query_execute (hview, 0, NULL);
+ ok (r, "libmsi_query_execute failed\n");
r = libmsi_query_close (hview, NULL);
ok (r, "libmsi_query_close failed\n");
g_object_unref (hview);
@@ -410,10 +410,10 @@ static void test_fieldzero (void)
query = "SELECT * FROM `drone` WHERE `id` = 1";
r = libmsi_database_open_query (hdb, query, &hview);
ok (r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
- r = libmsi_query_execute (hview, 0);
- ok (r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ r = libmsi_query_execute (hview, 0, NULL);
+ ok (r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
rec = libmsi_query_fetch (hview, NULL);
- ok (r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
+ ok (r, "Expected LIBMSI_RESULT_SUCCESS, got %d\n", r);
r = libmsi_record_get_int (rec, 0);
ok (r == LIBMSI_NULL_INT, "Expected NULL value, got %d\n", r);
diff --git a/tools/msibuild.c b/tools/msibuild.c
index e8b9e75..af717b0 100644
--- a/tools/msibuild.c
+++ b/tools/msibuild.c
@@ -190,9 +190,8 @@ static int add_stream(const char *stream, const char *file, GError **error)
if (r != LIBMSI_RESULT_SUCCESS)
fprintf(stderr, "failed to open query (%u)\n", r);
- r = libmsi_query_execute(query, rec);
- if (r != LIBMSI_RESULT_SUCCESS)
- fprintf(stderr, "failed to execute query (%u)\n", r);
+ if (!libmsi_query_execute(query, rec, error))
+ fprintf(stderr, "failed to execute query\n");
g_object_unref(rec);
libmsi_query_close(query, error);
@@ -212,9 +211,8 @@ static int do_query(const char *sql, void *opaque)
return r;
}
- r = libmsi_query_execute(query, NULL);
- if (r != LIBMSI_RESULT_SUCCESS)
- fprintf(stderr, "failed to execute query (%u)\n", r);
+ if (!libmsi_query_execute(query, NULL, error))
+ fprintf(stderr, "failed to execute query\n");
libmsi_query_close(query, error);
g_object_unref(query);
diff --git a/tools/msiinfo.c b/tools/msiinfo.c
index 9b8f8ce..216c500 100644
--- a/tools/msiinfo.c
+++ b/tools/msiinfo.c
@@ -206,13 +206,13 @@ static int cmd_streams(struct Command *cmd, int argc, char **argv, GError **erro
print_libmsi_error(r);
}
- r = libmsi_query_execute(query, NULL);
- if (r) {
- print_libmsi_error(r);
- }
+ r = libmsi_query_execute(query, NULL, error);
+ if (*error)
+ goto end;
print_strings_from_query(query, error);
+end:
g_object_unref(query);
g_object_unref(db);
@@ -239,13 +239,13 @@ static int cmd_tables(struct Command *cmd, int argc, char **argv, GError **error
print_libmsi_error(r);
}
- r = libmsi_query_execute(query, NULL);
- if (r) {
- print_libmsi_error(r);
- }
+ r = libmsi_query_execute(query, NULL, error);
+ if (*error)
+ goto end;
print_strings_from_query(query, error);
+end:
g_object_unref(query);
g_object_unref(db);
@@ -389,11 +389,10 @@ static int cmd_extract(struct Command *cmd, int argc, char **argv, GError **erro
rec = libmsi_record_new(1);
libmsi_record_set_string(rec, 1, argv[2]);
- r = libmsi_query_execute(query, rec);
+ r = libmsi_query_execute(query, rec, error);
+ if (*error)
+ goto end;
g_object_unref(rec);
- if (r) {
- print_libmsi_error(r);
- }
rec = libmsi_query_fetch(query, error);
if (*error)