====== Introduzione a Libgda ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//19/02/2018 - 17:21//** \\ \\ ===== Select ===== **main.c** #include #include int main (int argc, char *argv[]) { gda_init (); /* Apro la connessione */ GdaConnection *cnc; GError *error = NULL; GdaSqlParser *parser; cnc = gda_connection_open_from_string ("PostgreSQL", "HOST=127.0.0.1;PORT=5432;DB_NAME=test;USERNAME=fabio;PASSWORD=fabio", NULL, GDA_CONNECTION_OPTIONS_NONE, &error); if (!cnc) { g_print ("Impossibile connettersi al database: %s\n",error->message); exit (1); } /* Creo un SQL parser */ parser = gda_connection_create_parser (cnc); if (!parser) parser = gda_sql_parser_new (); //se il parser fallisce la creazione ne creo uno di default /* Attacco il parser alla connessione */ g_object_set_data_full (G_OBJECT (cnc), "parser", parser, g_object_unref); //Lancio una select GdaDataModel *data_model; GdaStatement *stmt; gchar *sql = "SELECT * from persone;"; parser = g_object_get_data (G_OBJECT (cnc), "parser"); stmt = gda_sql_parser_parse_string (parser, sql, NULL, NULL); //Popolo il data model data_model = gda_connection_statement_execute_select (cnc, stmt, NULL, &error); g_object_unref (stmt); if (!data_model) { g_error ("Non e' possibile nostrare il contenuto della tabella: %s\n", error && error->message ? error->message : "Nessun dettaglio"); exit(1); } //Stampo il risultato della query const GValue *id; const GValue *Nome; const GValue *Cognome; const GValue *Email; for (int i = 0; i < gda_data_model_get_n_rows (data_model); i++) { id = gda_data_model_get_value_at (data_model, 0, i, NULL); Nome = gda_data_model_get_value_at (data_model, 1, i, NULL); Cognome = gda_data_model_get_value_at (data_model, 2, i, NULL); Email = gda_data_model_get_value_at (data_model, 3, i, NULL); char* strId = gda_value_stringify(id); char* strNome = gda_value_stringify (Nome); char* strCognome = gda_value_stringify (Cognome); char* strEmail = gda_value_stringify (Email); g_print("%s %s %s %s \n", strId, strNome,strCognome,strEmail); } g_object_unref (data_model); gda_connection_close (cnc); g_object_unref (cnc); return 0; } **makefile** all: gcc main.c -o main `pkg-config --cflags --libs libgda-5.0`