2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 [C++Builder XE] Sqlite3 настройка
Сообщение13.05.2012, 16:34 
Немогу найти нормальных статей по sqlite3 в C++ Builder XE.
Кто умеет юзать прошу помоч.
А именно:
Создание
Отрытие
Добовление полей
Сохранение

 
 
 
 Re: [C++Builder XE] Sqlite3 настройка
Сообщение13.05.2012, 19:25 
Насколько я помню, сляпываем строчку с sql-запросом и вызывам sql3_execute или что-то вроде.

 
 
 
 Re: [C++Builder XE] Sqlite3 настройка
Сообщение13.05.2012, 22:05 
Если не знаешь или не помнишь не отвечай.

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   
      предложи лучше конкретный код

}

 
 
 
 Re: [C++Builder XE] Sqlite3 настройка
Сообщение13.05.2012, 22:09 
Аватара пользователя
by_trojan в сообщении #570479 писал(а):
Если не знаешь или не помнишь не отвечай.
 !  by_trojan, замечание за фамильярность. Читайте Правила форума:
Правила форума в http://dxdy.ru/post27356.html#p27356 писал(а):
1) Нарушением считается:

е) ..., фамильярность (у нас принято обращаться друг к другу на "Вы")...

 
 
 
 Re: [C++Builder XE] Sqlite3 настройка
Сообщение14.05.2012, 14:41 
Используется синтаксис C++
int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);

int sqlite3_open16(
  const void *filename,   /* Database filename (UTF-16) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);

Это создание/открытие БД, вы получаете хэндл.

Используется синтаксис C++
int sqlite3_prepare_v2(
  sqlite3 *db,            /* Database handle */
  const char *zSql,       /* SQL statement, UTF-8 encoded */
  int nByte,              /* Maximum length of zSql in bytes. */
  sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  const char **pzTail     /* OUT: Pointer to unused portion of zSql */
);

int sqlite3_prepare16_v2(
  sqlite3 *db,            /* Database handle */
  const void *zSql,       /* SQL statement, UTF-16 encoded */
  int nByte,              /* Maximum length of zSql in bytes. */
  sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  const void **pzTail     /* OUT: Pointer to unused portion of zSql */
);

Пихаете сюда SQL-запрос в zSql, получаете скомпилированный запрос, который и скармливаете в...

Используется синтаксис C++
int sqlite3_step(sqlite3_stmt*);

Вот и все. Пример:

код: [ скачать ] [ спрятать ]
Используется синтаксис C++
sqlite3 *db;

if (sqlite3_open16("test.db",  &db)) {
  cerr << "Can't open database: " << sqlite3_errmsg(db);
  sqlite3_close(db);
  return;
}

const char[] sql = "CREATE TABLE TestTable (KeyField INTEGER CONSTRAINT c00 PRIMARY KEY AUTOINCREMENT, DataField TEXT);";
sqlite3_stmt *stmt;
if (sqlite3_prepare16_v2(db, sql, strlen(sql), &stmt, NULL)) {
  cerr << "Wrong SQL statement: " << sqlite3_errmsg(db);
  sqlite3_finalize(stmt);
  sqlite3_close(db);
}

sqlite3_step(stmt);
sqlite3_finalize(stmt);
sqlite3_close(db);

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group