====== 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 [[http://www.sqlite.org/sqlite.html|tutorial]], il programmino in questione è scaricabile da [[http://www.sqlite.org/download.html|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