SQLite極短サンプルコード
#pragma comment( lib, "sqlite3.lib" )
#include <tchar.h>
#include <sqlite3.h>
#include <stdio.h>
// 抽出結果が返るコールバック関数
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++)
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
return SQLITE_OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
// データベースファイルを新規生成
int rc = sqlite3_open("Sample.db", &db);
// テーブル生成SQL文
char create_sql[] = "CREATE TABLE sample ( "
" id INTEGER PRIMARY KEY, "
" worker TEXT NOT NULL, "
" place TEXT NOT NULL "
" ) ";
// テーブルを生成
rc = sqlite3_exec(db, create_sql, 0, 0, &zErrMsg);
// データ追加SQL文
char insert_sql[] = "INSERT INTO sample ( id, worker, place )"
" values (%d, '%s', '%s') ";
// 追加SQL文を生成
char insert_record[3][256];
sprintf( insert_record[0], insert_sql, 0, "IKD" , "Tokyo" );
sprintf( insert_record[1], insert_sql, 1, "Maru" , "Kanagawa" );
sprintf( insert_record[2], insert_sql, 2, "Nacky", "Hukuoka" );
// データ追加
int i;
for( i = 0; i < 3; i++ )
rc = sqlite3_exec(db, insert_record[i], 0, 0, &zErrMsg);
// "sample"テーブルから"worker"を抽出して列挙
rc = sqlite3_exec(db, "SELECT worker FROM sample", callback, 0, &zErrMsg);
// データベースを閉じる
sqlite3_close(db);
return 0;
}ネタ元