2011-09-13 16 views
0

以下のSQLiteクエリから 'indays'変数をどのようにNSLogできますか? 、[sqlite3のドキュメントを読む]SQLiteクエリ変数を抽出するにはどうすればよいですか?

select data1,display_name, 
((strftime('%s',strftime('%Y', 'now','localtime')||strftime('-%m-%d', data1))-strftime('%s','now','localtime'))/86400.0+1+((strftime('%s','now', 'localtime','+1 year')-strftime('%s','now', 'localtime'))/86400.0)) % ((strftime('%s','now', 'localtime','+1 year')-strftime('%s','now', 'localtime'))/86400.0) as indays 
from contact_birthday 
order by indays asc 

答えて

0

特にC/C++ Reference

は、ここでのクエリです。

sqlite3_column_XXX(..., ...);関数を使用して列の値を読み取ります。

sqlite3_stmt* selectStmt; 
sqlite3_prepare_v2(yourdb, "SELECT ...", -1, &selectStmt, NULL); 
while(SQLITE_ROW == sqlite3_step(selectStmt)) { 
    const unsigned char* txt = sqlite3_column_text(selectStmt, 3); // get 3rd column text 
    NSString* indays = [NSString stringWithCString:txt encoding:NSASCIIStringEncoding]; 
} 
sqlite3_finalize(selectStmt); 
+0

'インディーズ'変数は、データベースの列にはありません。 'data1'データベース変数から導出されます(上記のクエリを参照)。 'インディーズ'変数を抽出することは可能ですか? – kevin

+0

問題ではありません。 'sqlite_column_ * 'で使用するカラムインデックスは、テーブルフィールドのカラムのインデックスではなく、SELECT文のフィールドのインデックス(および生成された結果テーブルのフィールドのインデックス)です。したがって、あなたの場合は、列インデックスに3を使用します。 – AliSoftware

+0

私は今理解しています。ありがとうございました! – kevin

関連する問題