2016-10-05 5 views
0
if sqlite3_prepare_v2(db, "select a from aaa", -1, &q,nil) == SQLITE_OK { 
    while sqlite3_step(q) == SQLITE_ROW { 
     let res = sqlite3_column_text(q, 1) 
     print(res) 
    } 
} else { 
    print("NOT WORKING") 
    NSLog("%s", sqlite3_errmsg(db)) 
} 

私は「」という名前のフィールドがあり、ここに示すように1,2,3値:スウィフトSqlite3_column_text()私のテーブルのAAAで

enter image description here

私は値を入れしようとしています配列内にあるか、または単に印刷しますが、(print(res))を印刷すると、値は "nil"になります。

どのようにして実際の値を取得できますか?なぜ私はsqlite3_column_textを選んだ値(1,2,3)は、文字列ではなくintagersあり、()およびないsqlite3_column_int()

+0

は比較http://stackoverflow.com/questions/25168030/issue-with-unsafepointeruint8-in- sqlite3_column_textの結果をSwift Stringに変換する方法については、sqlite-project-in-swiftを参照してください。 –

+1

最初の列のインデックスが1ではなく0であるべきですか? –

+0

1の代わりにindex = 0を使用するか、列の名前を直接使用してください: 'a' –

答えて

0

私はaのデータ型がIntだと思うし、あなたがフェッチされています

EDITそれはテキストとしてsqlite3_column_textです。

代わりにこれを試してみてください:sqlite3_column_int

た場合は、これらの組み合わせを試してみてください動作しません:行0と

  • のInt:行0とsqlite3_column_int(q, 0)

  • テキスト:sqlite3_column_text(q, 0)

+0

あなたのコメントをお寄せいただきありがとうございます。私はその前には書きませんでしたが、値は文字列であり、編集者ではありません。 –

+0

これを試してください:sqlite3_column_text(q、0) –

2

解決:

問題は、文字列に()関数sqlite3_column_textを変換することだったとswift3内の溶液は、次のとおりです。

let string = String(cString: sqlite3_column_text(statement, 0)) 
+0

それは0のインデックスと文字列への変換でした! –

+0

あなたは正しいです、@ Mr.UB –

関連する問題