2010-09-08 140 views
0

我正在研究一個iPhone項目,我們需要從一個sqlite數據庫中獲取數據。我以前做過這麼多次,一切都很順利。但是現在我遇到了取整數字段(主鍵)值的問題。從SQLite獲取整數的問題

的VARCHAR字段我可以獲取:

NSString *forfatter=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt, 11)]; 

我想我必須使用sqlite3_column_int這一點,但我不能找到如何獲得數量的權利。當我NSLog它時,它總是出錯,如:「107096896」而不是「35」。

這裏是我試圖做到這一點的方法之一:

int pKey = sqlite3_column_int(selectstmt, 0); 
NSLog(@"fant id: %i",pKey); 

我也試圖與NSIntegers和NSUIntegers。任何人都可以幫我解決這個問題嗎?我會很感激!

+0

本身就是返回查詢你認爲它是? (如果不是,你得先解決。) – 2010-09-08 10:29:32

+0

你說得對,唐納德。它不是我的想法...把你的評論作爲答案,並檢查它是否回答... – Ezop 2010-09-08 11:20:54

回答

0

正如Donald指出的那樣,存儲的數據出了問題。它可以追溯到這裏我用這個代碼插入INT我的插入語句:

int newID=8; 
sqlite3_bind_int(insertStmt, 1, newID); 

如果我使用NSInteger的替代,它的作品了:

NSInteger newID=8; 
sqlite3_bind_int(insertStmt, 1, newID); 
+0

坦率地說,這會讓我擔心。 sqlite3_bind_int()被記錄爲int作爲其第三個參數,所以有一些奇怪的事情發生。 – JeremyP 2010-09-08 14:08:33