为什么sqlite3_bind_int不能在我的代码中工作?
问题描述:
您好我是新来iphone,我试图从数据库中选择的值我通过sqlite3_bind_int()给出条件的所有工作原理(即数据库打开),但是当我编译行sqlite3_step(语句)它不会获取值但根据我的查询它应该获取值。我不知道天气的价值是绑定的。为什么sqlite3_bind_int不能在我的代码中工作?
将值绑定到sqlite3_bind_int()后,如何通过NSLog()检查完整查询。
下面是我所使用的代码,plz帮助我
- (void) getDataToDisplay:(NSString *)dbPath
{
if (sqlite3_open([dbPath UTF8String], &MYDB) == SQLITE_OK)
{
const char *sql;
sql="select name,address,phonenumber from doctorlist where sno between %d and %d";
if(sqlite3_prepare_v2(MYDB, sql, -1, &mystmt, NULL) != SQLITE_OK)
{
NSLOG(@"Insert Values");
}
sqlite3_bind_int(mystmt,1,10);
sqlite3_bind_int(mystmt, 2,15);
while(sqlite3_step(mystmt) == SQLITE_ROW)
{
[DoctorName addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 0)]]];
[DoctorAddress addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 1)]]];
[PhoneNumber addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 2)]]];
}
}
sqlite3_reset(mystmt);
if(MYDB)sqlite3_close(MYDB);
}
在此先感谢
答
你的SQL将会阅读:
sql="select name,address,phonenumber from doctorlist where sno between ?1 and ?2";
+0
谢谢你,伙计。 – 2010-06-21 07:24:58
你为什么不使用CoreData?非常容易,代码脆弱得多,而且非常可能显着更快。 – bbum 2010-06-18 15:54:34
+1对于coredata,但如果您必须使用sqlite,为什么不使用包装? – 2010-06-18 17:40:13