2010-09-08 58 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