Главное отличие от MySQL в отсутствии сервера, т.е. базу можно создавать и использовать локально - на том компе, где установлена прога.
Для создания БД можно использовать:
- Командную строку (дополнительно качаем tools c сайта-проекта)
- GUI интерфейс, бесплатный sqlite browser берем отсюда: http://sqlitebrowser.sourceforge.net/
- Программно, пользуясь API (качаем source code c сайта-проекта)
Сайт проекта:
http://www.sqlite.org
По русски, описание и пример:
http://www.codenet.ru/db/other/sqlite/
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=02.2004;a=04
Установка:
Скачиваем исходники, и далее подключаем библиотеки sqlite3 к своему проекту.
Пример номер 1
- Создание/открытие БД
- Создание таблицы
- Завершение работы с БД
#include <iostream> #include "sqlite3.h" using namespace std; int main(int argc, char **argv) { cout << "Hello world SQLite!" << endl; char *db_name="test.sl3"; sqlite3 *db; char *zErrMsg = 0; int error; //Создание или открытие БД error = sqlite3_open(db_name, &db); if ( error ) { cout<<"Can't open database: "<<sqlite3_errmsg(db)<<endl; sqlite3_close(db); } //Создание таблицы error = sqlite3_exec(db, "CREATE TABLE table1 (id INTEGER PRIMARY KEY,field1 TEXT,field2 TEXT);", NULL, 0, &zErrMsg); if ( error ) { cout<<"Can't create tables: "<<sqlite3_errmsg(db)<<endl; sqlite3_close(db); } sqlite3_close(db); return 0; }
Пример номер 2
- Создание/открытие БД
- Создание таблицы
- Вставка данных
- Выборка из БД и отображение на экране результата
- Завершение работы с БД
#include <iostream>
#include "sqlite3.h"
using namespace std;
int main(int argc, char **argv)
{
cout << "Hello world SQLite!" <<endl<<endl;
char *db_name="test.sl3";
sqlite3 *db;
char *zErrMsg = 0;
int error;
//------------------------------
//Создание или открытие БД
//------------------------------
error = sqlite3_open(db_name, &db);
if ( error )
{
cout<<"Can't open database: "<<sqlite3_errmsg(db)<<endl;
sqlite3_close(db);
}
//------------------------------
//Создание таблицы
//------------------------------
//Если таблица уже создана, то эта конструкция будет выдавать ошибку!
error = sqlite3_exec(db, "CREATE TABLE table1 (id INTEGER PRIMARY KEY,field1 TEXT,field2 TEXT);", NULL, 0, &zErrMsg);
if ( error )
{
cout<<"Can't create table: "<<sqlite3_errmsg(db)<<endl;
sqlite3_close(db);
}
//------------------------------
//Ввод данных в таблицу
//------------------------------
error = sqlite3_exec(db, "INSERT INTO table1(field1, field2) VALUES ('Super', 'SQL');", NULL, 0, &zErrMsg);
if ( error )
{
cout<<"Can't insert data to table: "<<sqlite3_errmsg(db)<<endl;
sqlite3_close(db);
}
//------------------------------
//Выборка данных из базы
//------------------------------
sqlite3_stmt *res;
const char *tail;
error = sqlite3_prepare_v2(db,"SELECT field1, field2,id from table1 order by id", 1000, &res, &tail);
if ( error )
{
cout<<"Can't select data: "<<sqlite3_errmsg(db)<<endl;
sqlite3_close(db);
}
//Отображаем на экране
cout << "Display result from table1" << endl;
int rec_count = 0;
while (sqlite3_step(res) == SQLITE_ROW)
{
cout<<"Row ("<<rec_count<<"):"<<sqlite3_column_text(res, 0)<<" ";
cout<<sqlite3_column_text(res, 1)<<" ";
cout<<sqlite3_column_text(res, 2)<<endl;
rec_count++;
}
//------------------------------
//Корректное завершение работы с БД
//------------------------------
sqlite3_close(db);
return 0;
}
Комментариев нет:
Отправить комментарий