sqlite3 *db;
int rc;
rc = sqlite3_open("test.sqlite", &db);
if( rc )
{
wxLogMessage(wxT("Can't open database: %s"), sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
sqlite3_stmt *pStmt;
char zSql[] = "SELECT * From tbl;";
do
{
/* Компилираем запрос SQL. Ожидаем успех.*/
sqlite3_prepare(db, zSql, -1, &pStmt, 0);
while( SQLITE_ROW==sqlite3_step(pStmt) )
{
/* Что-то делаем с записью */
wxString str = wxString((const char*)sqlite3_column_text(pStmt, 1), wxConvUTF8);
wxLogMessage(wxT("%d | %s"),sqlite3_column_int(pStmt,0),str.c_str());
}
/* Завершаем запрос. Если ошибка SQLITE_SCHEMA
** произошло, то вышестоящий вызов sqlite3_step()
** вернул SQLITE_ERROR. sqlite3_finalize() вернет
** SQLITE_SCHEMA. В этом случае повторяем цикл.
*/
rc = sqlite3_finalize(pStmt);
}
while( rc==SQLITE_SCHEMA );
wxString Sql;
Sql=wxT("Select * From tbl;");
do
{
/* Компилираем запрос SQL. Ожидаем успех. */
sqlite3_prepare(db, Sql.ToUTF8(), -1, &pStmt, 0);
while( SQLITE_ROW==sqlite3_step(pStmt) )
{
/* Что-то делаем с записью */
wxString str = wxString((const char*)sqlite3_column_text(pStmt, 1), wxConvUTF8);
wxLogMessage(wxT("%d | %s"), sqlite3_column_int(pStmt,0),str.c_str());
}
/* Завершаем запрос. Если ошибка SQLITE_SCHEMA
** произошло, то вышестоящий вызов sqlite3_step()
** вернул SQLITE_ERROR. sqlite3_finalize() вернет
** SQLITE_SCHEMA. В этом случае повторяем цикл.
*/
rc = sqlite3_finalize(pStmt);
}
while( rc==SQLITE_SCHEMA );
sqlite3_close(db);
воскресенье, 27 ноября 2011 г.
Пример использования SQLite3
В примере используется функция wxLogMessage из библиотеки wxWidgets для вывода на экран, можно ее заменить printf, убрав wxT, суть не в этом, только надо помнить, что SQLite3 библиотека использует Unicode (UTF-8).
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий