忍者ブログ

[PR]

2024年12月04日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SQL文に変数を組み込んで利用する方法

2008年11月22日
以前にSQL文がそのまま検索に使用できる時の流れは書いていますが、検索条件をプログラム内で変更したい場合も当然出てきます。その場合の方法です。説明のため、またKigenの一部ソースを引っ張ってきて手を加えています。

NSInteger level1 = 1;
sqlite3_stmt *st;
const char *sql2 = "SELECT pk FROM kigen WHERE level1=?";
if (sqlite3_prepare_v2(database, sql2, -1, &st, NULL) == SQLITE_OK) {
NSLog(@"sql文の準備完了");
sqlite3_bind_int(st, 1, level1);
while (sqlite3_step(st) == SQLITE_ROW) {
 
以前の例とどこが違うかというと、まずSQL文の中に?があります。これが後で変数が放り込まれる部分です。SQL文ではkigenテーブルからlevel1列の内容が?である行でpk列に入っている内容を表示するように指示しています。そして次に違うのがsqlite3_bind_intという命令が準備が終わって実際に検索を行うまでの間に挿入されている点です。この命令で、stがポインタになっているSQL文の1個目の?にlevel1という整数の変数を代入するように指示しています。?が何個もある場合には、その数だけsqlite3_bind_intなどの命令が入るわけです。
 
PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: