お世話になります。
VC++でSQLiteを使ってデータベースを管理しようとしている初学者です。
###前提・実現したいこと
実現したいこと:
SELECT文に変数をbindして実行する。
変数「int day」は引数で呼び出し元から与えられる。
###発生している問題・エラーメッセージ
rc = sqlite3_bind_int( stmt, 1, day); ```で、SELECT文に変数をbindできていないようです。 ```ここに言語を入力 " WHERE day = ? " ```の「?」に、 データベース上に存在している「__day__」の値:13 を直接入力すると、 コールバック関数が呼び出され、SELECT文は正しく機能します。 また、 ```ここに言語を入力 rc = sqlite3_bind_int( stmt, 1, day); ```を ```ここに言語を入力 rc = sqlite3_bind_int( stmt, 1, 13); ```とした場合も、コールバック関数が呼ばれませんでした。 ※ ・引数「__int day__」に「13」が代入されて呼び出されていること ・SQliteの環境構築ができていること は確認できています。 SELECT文に変数をbindするにはどうしたらよいでしょうか? ご教示の程よろしくお願いいたします。 ###ソースコード ```C int getDayResult( int day, dbResult *dbResult ) { int rc; int result; sqlite3* db; sqlite3_stmt* stmt; int errMsg; char *zErrMsg; /* データベースopen */ rc = sqlite3_open( DIR, &db ); /* SQL文準備 */ const char *get_sql = " SELECT item " " FROM result " " WHERE day = ? "; /* ステートメントハンドル準備 */ rc = sqlite3_prepare_v2( db, get_sql, -1, &stmt, 0 ); /* ステートメントハンドルのクリア */ rc = sqlite3_reset( stmt ); /* バインド */ rc = sqlite3_bind_int( stmt, 1, day); /* 実行 */ rc = sqlite3_exec(db, get_sql, callback, dbResult, &zErrMsg); errMsg = sqlite3_errcode( db ); /* ステートメントハンドル破棄 */ sqlite3_finalize( stmt ); /* データベースclose */ sqlite3_close(db); return errMsg; }
###補足情報
言語:VC++
環境:Microsoft VS Express 2012
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。