====== Usare Libgda con Vala ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//16/02/2018 - 18:49//** \\ \\ Di seguito alcuni sorgenti molto semplici che mostrano come interagire con libgda attraverso vala. ===== Select ===== // valac --pkg libgda-5.0 --pkg libxml-2.0 postgresql.vala // Per info sul provider di gda da terminale "gda-sql -L PostgreSQL" using Gda; int main (string[] args) { stdout.printf("Mi connetto...\n"); Gda.Connection cnn; cnn = Gda.Connection.open_from_string (null, "PostgreSQL://HOST=127.0.0.1;PORT=5432;DB_NAME=test;USERNAME=fabio;PASSWORD=fabio", null, Gda.ConnectionOptions.NONE) ; stdout.printf("Eseguo la query...\n"); DataModel myDataModel = cnn.execute_select_command ("Select * from persone;"); if (myDataModel!=null) { Value nome, cognome, email; for (int i=0; i<= myDataModel.get_n_rows()-1 ;i++) { nome=myDataModel.get_value_at(1,i); cognome=myDataModel.get_value_at(2,i); email=myDataModel.get_value_at(3,i); stdout.printf(" %s %s %s\n",nome.get_string(),cognome.get_string(),email.get_string() ); } //Numero di record restituiti dalla select stdout.printf("%d records\n", myDataModel.get_n_rows() ); } return 0; } ===== Insert ===== // valac --pkg libgda-5.0 --pkg libxml-2.0 postgresql.vala // Per info sul provider di gda da terminale "gda-sql -L PostgreSQL" using Gda; int main (string[] args) { stdout.printf("Mi connetto...\n"); Gda.Connection cnn; cnn = Gda.Connection.open_from_string (null, "PostgreSQL://HOST=127.0.0.1;PORT=5432;DB_NAME=test;USERNAME=fabio;PASSWORD=fabio", null, Gda.ConnectionOptions.NONE) ; stdout.printf("Eseguo la query...\n"); int res = cnn.execute_non_select_command ("insert into persone (nome, cognome, email) values ('Secondo','Lapard','secondo@catland.it');"); if (res<1) { stdout.printf("Errore non e' stato inserito nessun record!"); }else{ stdout.printf("Sono stati inseriti %d records\n",res); } return 0; } ===== Update ===== // valac --pkg libgda-5.0 --pkg libxml-2.0 postgresql.vala // Per info sul provider di gda da terminale "gda-sql -L PostgreSQL" using Gda; int main (string[] args) { stdout.printf("Mi connetto...\n"); Gda.Connection cnn; cnn = Gda.Connection.open_from_string (null, "PostgreSQL://HOST=127.0.0.1;PORT=5432;DB_NAME=test;USERNAME=fabio;PASSWORD=fabio", null, Gda.ConnectionOptions.NONE) ; stdout.printf("Eseguo la query...\n"); int res = cnn.execute_non_select_command ("update persone set nome='nuovo', cognome='utente' where id=1;"); if (res<1) { stdout.printf("Errore non e' stato aggiornato nessun record!"); }else{ stdout.printf("Sono stati aggiornati %d records\n",res); } return 0; } ===== Delete ===== // valac --pkg libgda-5.0 --pkg libxml-2.0 postgresql.vala // Per info sul provider di gda da terminale "gda-sql -L PostgreSQL" using Gda; int main (string[] args) { stdout.printf("Mi connetto...\n"); Gda.Connection cnn; cnn = Gda.Connection.open_from_string (null, "PostgreSQL://HOST=127.0.0.1;PORT=5432;DB_NAME=test;USERNAME=fabio;PASSWORD=fabio", null, Gda.ConnectionOptions.NONE) ; stdout.printf("Eseguo la query...\n"); int res = cnn.execute_non_select_command ("delete from persone where id=4;"); if (res<1) { stdout.printf("Errore non e' stato eliminato nessun record!"); }else{ stdout.printf("Sono stati eliminati %d records\n",res); } return 0; }