Indice

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