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