1

ñ、é などの特殊文字を使用してクエリを実行しようとすると問題が発生します。

奇妙なことに、DB から取得したデータと同じデータを取得しようとしています。

たとえば、「カテゴリ」というテーブルがあります。そのテーブルで返される値の 1 つは、フィールド category_name の "Música" です。このデータを使用して、テーブル ビューに値を設定するコントローラーの値を NSArray に設定します。表は右のデータに表示されています。

次に、ユーザーがテーブル ビューで "Música" 行をタップすると、category_name "Música" のカテゴリに関連するすべてのサブカテゴリが必要になります。クリックされた値 (NSString *)[self.data objectAtIndex:[indexPath 行]] を取得し、この値を使用して次のようなクエリを実行しようとします。

NSString *query = [NSString stringWithFormat:@"select subcategory_name from categories where category_name = '%@'", (NSString *)[self.data objectAtIndex:[indexPath row]]];

category_name に特殊文字が含まれていない場合は問題なく動作しますが、category_name に特殊文字が含まれている場合、データは取得されません。

それ以外の場合、クエリをログに記録し、SQLite Studio にログインした同じクエリを使用すると、行がフェッチされます。

私のクエリがデータをフェッチしないために何が起こっているのか、誰にも分かりますか?

4

2 に答える 2

2

これを使用してデータベースからデータを取得します -

[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 4)];

希望、これはあなたが探しているものです。ご不明な点がございましたら、ご連絡ください。:)

于 2014-09-25T06:17:06.797 に答える