static GdaDataModel * sql_execute_query (GdaConnection *con, gchar *query) { GdaCommand *cmd; GdaDataModel *result; cmd = gda_command_new (query, GDA_COMMAND_TYPE_SQL, GDA_COMMAND_OPTION_STOP_ON_ERRORS); result = gda_connection_execute_select_command (con, cmd, NULL, NULL); gda_command_free (cmd); return result; }
static const GValue *_select_guid_at_offset(const gchar *table, guint offset) { GdaCommand *command; GdaDataModel *model; GString *sql = g_string_new("SELECT guid FROM "); g_string_append_printf(sql, "%s LIMIT 1 OFFSET %d", table, offset); command = gda_command_new (sql->str, GDA_COMMAND_TYPE_SQL, 0); model = gda_connection_execute_select_command (mgd->priv->connection, command, NULL, NULL); gda_command_free (command); g_string_free(sql, TRUE); if (!model) return NULL; gda_data_model_dump (model, stdout); return gda_data_model_get_value_at_col_name(model, "guid", 0); }
/* * Test 1: gda_connection_open() when there is no error */ static guint test1 (void) { g_print ("============= %s started =============\n", __FUNCTION__); GdaConnection *cnc; GError *error = NULL; gchar *cnc_string, *fname; fname = g_build_filename (ROOT_DIR, "data", NULL); cnc_string = g_strdup_printf ("DB_DIR=%s;DB_NAME=sales_test", fname); g_free (fname); cnc = gda_connection_new_from_string ("SQLite", cnc_string, NULL, GDA_CONNECTION_OPTIONS_READ_ONLY, NULL); if (!cnc) { g_print ("gda_connection_new_from_string([%s]) failed: %s\n", cnc_string, error && error->message ? error->message : "No detail"); g_free (cnc_string); return 1; } guint counter = 0; setup_main_context (cnc, 0, &counter); /* connection open */ if (! gda_connection_open (cnc, &error)) { g_print ("gda_connection_open([%s]) failed: %s\n", cnc_string, error && error->message ? error->message : "No detail"); g_free (cnc_string); return 1; } g_free (cnc_string); if (counter == 0 && !connected) { g_print ("gda_connection_open() failed: did not make GMainContext 'run'\n"); return 1; } else g_print ("Counter incremented to %u\n", counter); g_print ("Connection %p Opened\n", cnc); /* SELECT */ counter = 0; GdaDataModel *model; model = gda_connection_execute_select_command (cnc, "SELECT * FROM customers", &error); if (model) { gda_data_model_dump (model, NULL); gint expnrows = 5; if (gda_data_model_get_n_rows (model) != expnrows) { g_print ("SELECT Exec() failed: expected %d and got %d\n", expnrows, gda_data_model_get_n_rows (model)); g_object_unref (model); g_object_unref (cnc); return 1; } g_object_unref (model); } else { g_print ("gda_connection_execute_select_command() failed: %s\n", error && error->message ? error->message : "No detail"); g_object_unref (cnc); return 1; } if (counter == 0 && !connected) { g_print ("gda_connection_open() failed: did not make GMainContext 'run'\n"); g_object_unref (cnc); return 1; } else g_print ("Counter incremented to %u\n", counter); g_object_unref (cnc); return 0; }