2010-06-18 98 views
0

您好我是新來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); 

} 

在此先感謝

+2

你爲什麼不使用CoreData?非常容易,代碼脆弱得多,而且非常可能顯着更快。 – bbum 2010-06-18 15:54:34

+0

+1對於coredata,但如果您必須使用sqlite,爲什麼不使用包裝? – 2010-06-18 17:40:13

回答

1

你的SQL將會閱讀:

sql="select name,address,phonenumber from doctorlist where sno between ?1 and ?2"; 
+0

謝謝你,夥計。 – 2010-06-21 07:24:58

相關問題