Barra laterale

programmazione:pascal:free_pascal_pipe_e_sqlite

Free Pascal, pipe e sqlite

Autore: Fabio Di Matteo
Ultima revisione: 24/04/2007

Diverso tempo fa avevo l'esigenza di creare un piccolo programmino che , senza richiedere nessuna dipendenza particolare, facesse girare un motore di database collaudato e robusto. Gironsolando per la rete allora mi accorsi che esisteva una libreria C che implementa un DBMS SQL incorporabile all'interno di qualsiasi applicazione. In pratica una libreria che permette di creare database dentro normalissimi file . Usare questa libreria è molto semplice, ma lo è ancor di più pilotare un eseguibile che “prende in pasto query” e restituisce l'output .L'eseguibile viene fornito assieme alla libreria e lo si può usare subito, proprio come illustra questo tutorial, il programmino in questione è scaricabile da qui.

Codice

program sqlite_e_pipe ;
 
uses oldlinux;
var msg:text;
 
begin
popen(msg, 'sqlite3', 'W' ); //apro la pipe con il file "sqlite3"
 
//Creo la tabella tab1 con 2 campi: "campouno", "campo2"
writeln(msg, 'create table tab1 (campouno varchar(10),campodue smallint);' );
 
//Inserisco i dati nella tabella
writeln(msg, 'insert into tab1 values (''ciao'', 10);' );
 
//Formatto l'output mettendo i nomi dei capi come titolo colonna
writeln(msg, '.header on');
 
//Attivo la visualizzazione a colonne
writeln(msg, '.mode column');
 
//visualizzo tutte le righe e le colonne della tabella tab1
writeln(msg, 'select * from tab1;');
 
//chiudo la pipe
pclose(msg);
 
end.

Compilazione

Supponendo di aver salvato tutto il codice su di un file di nome main.pas compilate grazie a questo comando:

fpc -a main.pas main

Ecco l'output del nostro programmino:

campouno    campodue  
----------  ----------
ciao        10       

programmazione/pascal/free_pascal_pipe_e_sqlite.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)