0

以下のクエリを使用しても結果は得られませんが、「SELECT * FROM ORDER_HEADER」と言うと結果が得られます。SqlLite データベース ブラウザで「SELECT * FROM ORDER_HEADER WHERE CUSTOMER = 1」と入力すると、正しいデータが返されました。行の結果が表示されないのはなぜですか? SELECT * FROM ORDER_HEADER WHERE CUSTOMER = %d",1 も試しました。ご協力ありがとうございます。

- (void)viewDidLoad{

[super viewDidLoad];

[super viewDidLoad];
salesOrders = [[NSMutableArray alloc] init];
NSString *databasePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"MobilePDQ"];
FMDatabase *db  = [[FMDatabase alloc] initWithPath:databasePath];
[db open];
FMResultSet *fResult = [db executeQueryWithFormat:@"SELECT * FROM ORDER_HEADER WHERE CUSTOMER = %d",1];
NSLog ( @"has results: %@", [fResult hasAnotherRow] ? @"YES" : @"NO" );
while([fResult next])
{
    SalesOrderHeaderController *salesOrder = [SalesOrderHeaderController alloc];
    salesOrder.salesOrderID = [fResult intForColumn:@"ID"];
    salesOrder.creationDate = [fResult stringForColumn:@"CREATION_DATE"];
    [salesOrders addObject:salesOrder];
}
[db close];}

CUSTOMER列が数値型であることに関係していると確信していますか? 「SELECT * FROM ORDER_HEADER WHERE ID = 1」と言ってみましたが、ID が整数の主キー データ型の場合に機能しました。そうは言っても。数値データ型で検索するにはどうすればよいですか? 再度、感謝します。

4

1 に答える 1

0

データベース名に .sqlite がないようです。db が開いているかどうかを確認します。このクエリも試してください

[db executeQueryWithFormat:@"SELECT * FROM ORDER_HEADER WHERE CUSTOMER = ?",[NSnumber numberWithInt:1]];

あなたの問題が解決するかもしれません。

于 2012-04-30T05:21:31.513 に答える