Area SX srl - Informatica e Microelettronica
RSS Feed Area SX RSS Feed    English Version
Torna a: Area SX s.r.l. > Articoli Divulgativi > Microcontrollori > Linux Embedded > Il micro database SQLite sulla SX ARM LINUX
Il micro database SQLite sulla SX ARM LINUX
Data di pubblicazione: 08-12-2006 |  Articolo Articolo Divulgativo  | Livello Articolo di media difficoltà | Versione Italiana  | (No English Version)The English version of this article does not exists
Parole chiave: - Linux -

In questo articolo mostriamo come compilare un programma in C per la SX ARM Linux che integri il micro database SQLite. La scelta di questo database open source è consigliata in tutti quei sistemi in cui è richiesta la potenza di un sistema SQL ma non si dispone di molto spazio.

Questo articolo oltre a presentare brevemente il database SQLite descrivendone pregi e difetti, mostra come caricare nell'ambiente di sviluppo della SX ARM Linux la libreria necessaria per compilare programmi in C che utilizzino quesot micro database.
Per il nostro esempio, oltre ad una scheda SX ARM Linux, è necessario un PC Windows o Linux su cui sia stato precedentemente installato il compilatore per microprocessori arm.
Una breve guida introduttiva sul compilatore è disponibile al seguente link Guida all'utilizzo della SX ARM Linux.

SQLite

SQLite è una libreria scritta in C che implementa un DBMS (Database Management System) SQL completamente Open source incorporabile all'interno di una applicazione.
Essendo una libreria e non un processo standalone, SQLite non è utilizzabile di per sé, ma deve essere utilizzato all'interno di un'altro programma. Tale programma può essere realizzato con qualsiasi linguaggio che fornisca il binding alla libreria, ad esempio C/C++, Python o Tcl. SQLLite èintegrato anche nella versione 5 di PHP, il diffusissimo linguaggio di scripting Web.
Tra le caratteristiche più interessanti di SQLite:

  • dimensioni molto ridotte. L'intera libreria ha una dimensione che non arriva a 250KB
  • molto veloce, quasi come MySQL e PostgreSQL
  • il codice sorgente è liberamente disponibile, chiaro e ben commentato
  • è in grado di interpretare stringhe SQL, supporta buona parte dello standard SQL92
  • è multipiattaforma
  • il database consiste di un unico file il cui formato interno è indipendente dalla piattaforma
  • supporta database che possono essere anche molto grandi; attualmente il limite è 2TB

Ci sono, naturalmente, anche degli svantaggi:

  • non possiede stored procedures, nè gestione dei permessi
  • non ha una vera gestione della concorrenza (le applicazioni che lo utilizzano, se necessario, devono implementarla)
  • non offre alcuna cache per le query
  • non ha protocolli di rete
  • non supporta alcuni importanti comandi SQL:
    - RIGHT e FULL OUTER JOIN
    - sotto query variabili
    - transazioni annidiate
    - ALTER TABLE offre pochissime possibilità

Una sua peculiarità è quella di poter gestire i "tipi" in modo molto flessibile: ogni campo può contenere qualsiasi tipo di dato.

Installazione delle API SQLite

Nella sezione Download presente in fondo a questo articolo è possibile scaricare le API SQLite precompilate, da usare con il compilatore per processori della famiglia arm

L'installazione delle API è molto semplice; è infatti sufficiente decomprimere il file SQLite_API_arm.zip e copiare il contenuto delle due cartelle lib e include rispettivamente nelle cartelle:

\usr\local\arm-linux\lib
e
\usr\local\arm-linux\include

presenti nella cartella di installazione del compilatore.

Sempre nel file scaricato viene fornito un comodo un tool (sqllite3) per creare e gestire i file-database SQLite.
Il tool sqlite3 viene eseguito in linea di comando e si lancia con la sintassi:

./sqlite3 <nome del db-file>

Di seguito è riportato un esempio di impiego del tool sqlite:

root@SX_ARM_Linux />/home/sqlite/sqlite3 db_prova

SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
sqlite> create table tbl(value1 varchar(10),value2 smallint);
sqlite> insert into tbl values('hello',10);
sqlite> insert into tbl values('goodbye',20);
sqlite> select * from tbl;
hello|10
goodbye|20
sqlite> .quit

Compilare ed eseguire un programma di test

Una volta caricate le librerie nell'ambiente di sviluppo possiamo cominciare a scrivere il nostro programma in C in grado di creare e gestire un database SQLite, effettuando normali query SQL quali SELECT per accedere ai dati, INSERT per inserire nuovi dati, UPDATE per modificare dati già salvati o DELETE per cancellare.

La documentazione completa di tutte le funzioni messe a disposizione dalle API sono descritte all'url

http://www.sqlite.org/capi3.html

Una volta scritto il nostro programma  possiamo passare alla fase di compilazione. Questa viene eseguita tramite l'arm-linux-gcc, usando la sintassi riportata di seguito:

arm-linux-gcc -lm -o nome_programma sorgente.c /usr/local/arm-linux/lib/libsqlite3.a

Il file che otterremo dalla compilazione (nome_programma) deve poi essere ulteriormente processato con il programma arm-linux-strip

arm-linux-strip.exe nome_programma

A questo punto abbiamo il nostro file compilato che può essere caricato nella memoria della SX ARM Linux effettuando una semplice connessione FTP verso l'IP assegnato a quest'ultima.

L'ultima operazione rimasta da fare è quella di rendere eseguibile il nostro file; a tale scopo ci colleghiamo tramite Telnet o SSH alla nostra SX ARM Linux ed impartiamo il comando:

chmod 755 nome_programma

Ora il nostro programma è pronto e possiamo eseguirlo con il comando:

./nome_programma database_file "query da eseguire"

Download

Librerie SQLite, pre compilate per ARM: SQLite_API_arm.zip
Sorgente di esempio: test_sqlite.zip



Parole chiave: - Linux -

Data di pubblicazione: 08-12-2006Hits: 10475
I marchi citati sono proprietà dei titolari dei relativi diritti. Le caratteristiche tecniche e i prezzi riportati sono indicativi e soggetti a variazioni senza preavviso. Le foto non hanno valore contrattuale. Nonostante accurate verifiche, il presente documento può contenere prezzi o specifiche errati. Area SX si scusa in anticipo e si impegna ad evitare tali imprecisioni.

 Area SX store
In questa sezione puoi ordinare direttamente i prodotti descritti in questo articolo
Tutti i prezzi indicati sono espressi in Euro con IVA e spese di trasporto escluse. I prezzi si riferiscono al singolo pezzo
DescrizioneCodicePrezzo
Per maggiori informazioniAdattatore di rete WiFi AIRPLUS G+ 54 MBPS DWL-G122
Adattatore di rete Wireless USB 2.0 a 54 Mbps, l'ideale per poter connettere ad una rete Wi-FI in pochi minuti una workstation senza ricorre alle schede PCI più scomode da montare e installare.

Dotato di chipset RT73


Prodotto compliant RoHs
DLIG122€ 38.50
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello
Per maggiori informazioniSX ARM Linux: scheda Linux Embedded con doppia Ethernet
Potente e compatta scheda Linux Embedded basata su processore ARM9.
Caratteristiche principali:
  • Processore Star STR9104 180MHz
  • 8Mb Flash, 32Mb SDRAM, 16Kb EEPROM
  • 2 porte Ethernet 10/100Mbit
  • 2 porte seriali RS232/485/422
  • 2 host USB 2.0
  • Alimentazione 9-48VDC
  • Consumo 340 mA a 12VDC, 4.5W
  • Linux Kernel 2.6
  • Dimensioni: 110x80x25mm
  • Contenitore metallico da parete
 Accessori disponibili (Vedi la scheda tecnica)


Prodotto compliant RoHs
SXARML2€ 289.00
€ 249.00
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello
Per maggiori informazioniSX Arm Linux 1L: scheda Linux Embedded con supporto SD/MMC e linee di IO
Potente e compatta scheda Linux Embedded basata su processore ARM9.
Caratteristiche principali:
  • Processore ARM9 180MHz
  • 16Mb Flash, 64Mb SDRAM, 16Kb EEPROM
  • 1 porta Ethernet 10/100Mbit
  • 4 porte seriali RS232 una configurabile come 485/422
  • 2 host USB 2.0
  • Alimentazione 9-48VDC
  • Consumo 340 mA a 12VDC, 4.5W
  • Linux Kernel 2.6
  • Supporto per meoria SD/MMC (max 1GB)
  • 16 linee di I/O
  • Dimensioni: 110x80x25mm
  • Contenitore metallico da parete

 Accessori disponibili (Vedi la scheda tecnica)


Prodotto compliant RoHs
SXARML1€ 275.00
€ 229.00
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello
Per maggiori informazioniKit per il montaggio delle SX ARM Linux su barra DIN
Kit per il montaggio su barra DIN dei prodotti Sollae e le Linux box SX ARM Linux 1L e 2L.

Il kit comprende:
  • Due staffe per barra DIN in PVC
  • Quattro viti


Compliance RoHS non necessaria per questo prodotto
KIT_DIN_1€ 7.00
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello
Per maggiori informazioniModem GSM/GPRS Quad Band con interfaccia USB
Modem GSM/GPRS esterno Quad Band con interfaccia USB basata su chip FTDI.Grazie alla connettività USB il modem SxGSM non richiede alimentazioni esterne.
Basato su core Telit il modem SxGSM supporta tutti i comandi AT standard oltre a quelli proprietari Telit.
dotato di tecnologia Quad Band il modem può accedere alle reti a 850/900/1800MHz e 850/1900MHz.
Caratteristiche principali:
  • Connessione USB
  • Connettore Antennna: SMA Femmina
  • SIM card reader integrato
  • GPRS in classe 10
  • Alimentazione direttamente da USB
  • Consumo massimo:400mA in trasmissione GPRS
  • Dimensioni 77 X 60 X 31mm
  • Peso 115g
  • Temperatura operativa: –30° C- +70° C
  • Range di umidità permesso: 5 - 95%
  • Compatibile con OS: WINDOWS 98, 2000, XP, Linux, Mac
 Accessori disponibili (Vedi la scheda tecnica)


Prodotto compliant RoHs
SXGSM€ 190.00
€ 179.00
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello
Per maggiori informazioniAntenna a 90° per moduli GSM/GPRS con SMA/M
Antenna a 90° per moduli GSM/GPRS Quadri Band 850/900/1800/1900 MHz, con connessione SMA Maschio.

Questa antenna è compatibile con i seguenti prodotti: .
  • EZ863-GPS
  • EZ10-GPS
  • Telit GT863-PY


Prodotto compliant RoHs
AMM.90€ 8.00
Per maggiori informazioniPer maggiori informazioni
 Aggiungi la quantità indicata nel carrello

Area SX s.r.l. - Via Stefano Longanesi 25, 00146 ROMA - Tel: +39.06.99.33.02.57 - Fax: +39.06.62.20.27.85 - P.IVA 06491151004