====== 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;
}