Utilizzare SQLite Con il Cpp
From UIC
SqliteClass: an SQLite C++ Wrapper
Contents |
| Utilizzare SQLite Con il Cpp | |
|---|---|
| Author: | Pn |
| Email: | |
| Website: | https://sites.google.com/site/lucianogiuseppeprogrammi/ |
| Date: | 06/10/2005 (dd/mm/yyyy) |
| Level: |
|
| Language: | English |
| Comments: | Last Update: 11/07/2011 |
Introduzione
In this tutorial I'll show how to use C++ and SQLite with SqliteClass; I'll show how to create/open a SQLite3 DB, how to use sql statements.
Edited 12/04/2007 by ValerioSoft
Tools usati
Essay
Make a new project, unzip the TestClass into own project dir and let's config the IDE we use:
- Visual C++:
- Download SQLite zip file with dll and def file (Precompiled Binaries For Windows), and unzip it into own project dir.
- In windows console we go to project dir and write: "lib /def:sqlite.def" to get sqlite.lib.
- Add to project dependencies sqlite.lib e SqliteClass.a
- Gcc:
- Add to linking option: sqlite3.dll and SqliteClass.a;
#include <cstdlib>
#include "SqliteConnection.h"
using namespace std;
using namespace SqliteClass;
int main()
{
SqliteConnection* aConn;
SqliteRecordSet* aRecordSet;
unsigned int i;
try {
// Create a new instance of SqliteConnection
aConn = new SqliteConnection();
// create a new file (open if just exists)
aConn->open("test.sqlite3");
//start transaction
aConn->begin();
// execute SQL update statement
aConn->executeUpdate("drop table if exists MyTable");
aConn->executeUpdate("create table MyTable(field1 TEXT, field2 TEXT);");
// if table already exists we get an SqliteException
aConn->executeUpdate("insert into MyTable(field1,field2) values ('hello','guys');");
aConn->executeUpdate("insert into MyTable(field1,field2) values ('I','am');");
aConn->executeUpdate("insert into MyTable(field1,field2) values ('SQLite','example');");
// execute SQL query
aConn->executeQuery("select * from MyTable", aRecordSet);
if (!aRecordSet->isEmpty()) {
while (aRecordSet->next()) {
for(i = 0; i < aRecordSet->columns(); i++)
cout << aRecordSet->fieldValue(i) << " ";
cout << endl;
}
} else {
cout << "No records found!!\n";
}
// commit transaction
aConn->commit();
} catch (SqliteException ex) {
// to annull all transactions
aConn->rollback();
cout << "Error:" << endl;
cout << ex.getStatement() << endl;
cout << ex.getErrorDescription() << endl;
}
aConn->close();
delete aConn;
#ifdef WINDOWS
system("PAUSE");
#endif
return 0;
}
Code::Blocks projects
If you know a bit of C++ adn SQL you have understand this code ;)
You must see the .h files to get information about other class methods
Note finali
Thx to Gianni, UIC and UNISA.
Pn =)
Disclaimer
I documenti qui pubblicati sono da considerarsi pubblici e liberamente distribuibili, a patto che se ne citi la fonte di provenienza. Tutti i documenti presenti su queste pagine sono stati scritti esclusivamente a scopo di ricerca, nessuna di queste analisi è stata fatta per fini commerciali, o dietro alcun tipo di compenso. I documenti pubblicati presentano delle analisi puramente teoriche della struttura di un programma, in nessun caso il software è stato realmente disassemblato o modificato; ogni corrispondenza presente tra i documenti pubblicati e le istruzioni del software oggetto dell'analisi, è da ritenersi puramente casuale. Tutti i documenti vengono inviati in forma anonima ed automaticamente pubblicati, i diritti di tali opere appartengono esclusivamente al firmatario del documento (se presente), in nessun caso il gestore di questo sito, o del server su cui risiede, può essere ritenuto responsabile dei contenuti qui presenti, oltretutto il gestore del sito non è in grado di risalire all'identità del mittente dei documenti. Tutti i documenti ed i file di questo sito non presentano alcun tipo di garanzia, pertanto ne è sconsigliata a tutti la lettura o l'esecuzione, lo staff non si assume alcuna responsabilità per quanto riguarda l'uso improprio di tali documenti e/o file, è doveroso aggiungere che ogni riferimento a fatti cose o persone è da considerarsi PURAMENTE casuale. Tutti coloro che potrebbero ritenersi moralmente offesi dai contenuti di queste pagine, sono tenuti ad uscire immediatamente da questo sito.
Vogliamo inoltre ricordare che il Reverse Engineering è uno strumento tecnologico di grande potenza ed importanza, senza di esso non sarebbe possibile creare antivirus, scoprire funzioni malevole e non dichiarate all'interno di un programma di pubblico utilizzo. Non sarebbe possibile scoprire, in assenza di un sistema sicuro per il controllo dell'integrità, se il "tal" programma è realmente quello che l'utente ha scelto di installare ed eseguire, né sarebbe possibile continuare lo sviluppo di quei programmi (o l'utilizzo di quelle periferiche) ritenuti obsoleti e non più supportati dalle fonti ufficiali.