0.DB-SQLiteの添削
sqlite3 *db;
sqlite3_stmt * stmt;
const char *zTail;
Tableの作成
sqlite3_prepare(db, "create....", -1, &stmt, &zTail);
sqlite3_step();
sqlite3_finalize(stmt);
データの挿入:バインド時のインデックスが0から始まることに注意してください.取引に参加したほうがいい
sqlite3_transaction trans(db);
sqlite3_prepare(db, "INSERT INTO players (name,num) VALUES(?,?);", -1, &stmt, &zTail);
sqlite3_bind_text(stmt, 1, str, -1, SQLITE_STATIC);
sqlite3_bind_int(stmt, 2, n);
sqlite3_step(stmt);
sqlite3_reset(stmt); //
sqlite3_bind_text(stmt,1,str2,-1,SQLITE_STATIC);
sqlite3_bind_int(stmt,2,n2);
sqltie3_step(stmt);
sqlite3_finalize(stmt);
trans.commit();
すべてのデータの問合せ:列の下付き文字は0から
sqlite3_prepare(db,"SELECT ID, name, num FROM players ORDER BY num;", -1,&stmt,&zTail);
sqlite3_step(stmt);
while( r == SQLITE_ROW ) {
int id = sqlite3_column_int( stmt, 0 );
char* name = sqlite3_column_text( stmt,1 );
number = sqlite3_column_int( stmt, 2 );
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
説明
1.sqlite 3_を呼び出すprepare()SQL文をsqlite内部の構造体(sqlite 3_stmt)にコンパイルする.この構造体には、実行するSQL文の情報が含まれている.2.入力パラメータが必要な場合は、SQL文で'?'を使用します.プレースホルダとしてbind_を呼び出す入力パラメータsqlite 3_bind_XXX()関数は対応するパラメータをsqlite 3_に入力するreset()は、バインドされたパラメータ3を明確にする.sqlite 3_を呼び出すStep()このときSQL文は本当に実行されます.1行のデータしか返さないことに注意してください!!4.sqlite 3_を呼び出すfinalize()はstmtが使用するメモリを解放します.このメモリはsqlite 3_です.prepare()時に割り当てる.