sqliteのcalback

1254 ワード

原文のリンク:http://www.cnblogs.com/nbsofer/archive/2012/05/29/2523807.html
コールバック関数のフォーマットは以下の通りです。int sqlite_callback(
void* pv, /* sqlite3_exec() */
int argc, /* */
char** argv, /* , sqlite3_column_text() */
char** col /* , sqlite3_column_name() */
);
パラメータフォーマット:sqlite 3_に伝えます。execのコールバック関数は、クエリーの結果を表示するために、各クエリの結果に対して、このコールバック関数パラメータを呼び出します。pv:sqlite 3_exec転送の初期化パラメータargc:ヘッダの列数col:ヘッダの名前配列ポインタargv:ヘッダのデータ配列ポインタの戻り値:1:中断検索0:クエリーのデータ例テーブルを列挙し続ける:
id
pic
data(16進データ)
1
a.jpg
00…
2
b.jpg
XX XX XX
第一行データ:
argc=3 [0]...[2]
argv[0]="1",argv[1]="a.jpg",argv[2]="00 00 00..."
( 16 , )
col[0]="id",col[1]="pic",col[2]="data"
説明:sqlite 3_exec()のコールバック関数はこのフォーマットに従う必要があります。もちろん、イメージの名前は任意です。列のデータタイプがchar*でない場合、結果に関連する変換を行うことができます。例えば、atoo()で結果を整数に変換し、バイナリデータであれば直接タイプ変換を強制することができます。exec()は引き続きクエリーを実行します。2.非ゼロに戻ります。sqlite 3_exec()は直ちにクエリを中断し、かつsqlite 3_exec()はSQLITE_に戻ります。ABORT.例:int i;
for(i=0; i {
printf("%s\t%s

", col[i], argv[i]);
}