0

JSON 呼び出しを介して iPhone アプリ内で SQLite DB を更新したいのですが、正しい方法でアプローチしているかどうか疑問に思っており、フィードバック/入力に熱心です。

配列にx個の辞書を含むJSONエンコードされた文字列を使用することを考えていました。

各ディクショナリには、アプリ内で実行したい CRUD 機能に対応するいくつかのプロパティと、更新/削除/追加したいデータがあります。このようなものになると思います...

[{ "crudFunction": "INSERT", "name": "John", "city": "city1", "phone": 11111},
{ "crudFunction": "UPDATE", "name": "Andrew", "city": "city2", "phone": 22222},
{ "crudFunction": "DELETE", "name": "Matt", "city": "city3", "phone": 33333},
{ "crudFunction": "UPDATE", "name": "Mike", "city": "city4", "phone": 44444} ]

簡単にするために、上記の例では同じテーブルを更新します。

Objective C について十分な知識がありません - 上記の配列/辞書から取得した変数を使用して SQL ステートメントを構築できるかどうか疑問に思っていましたか? 何かのようなもの:

NSString *insertQuery = @"INSERT INTO my_table (name, city, phone){[name],[city],[phone]}";

または更新の場合...

NSString *insertQuery = @"UPDATE my_table SET city=[city], phone=[phone] WHERE name=Mike";

複数の更新を行うシナリオでは、(トランザクション関連の) CRUD レコード/変数を含む CRUD オブジェクト (ある種の) を作成できると考えています。たとえば、自分から削除したいすべてのレコードを含む DELETE オブジェクトです。 DB、または更新したいすべてのレコード/値を含む UPDATE オブジェクト。

これはすべて意味がありますか?私はこれを正しい方法で行っていますか?それとも、喫煙しているものを置いて、日常の仕事に戻るべきですか?

事前に感謝します 渦

4

1 に答える 1

0

sqlite3_prepare_v2後で実行するステートメントを準備するために使用できます

例えば

//Set ? for variables
const char *sql = "INSERT INTO my_table (name, city, phone){?,?,?}";
sqlite3_stmt *statement;
int returnValue = sqlite3_prepare_v2(database, sql, -1, &statment, NULL);

次に、sqlite3_bind_text値がテキストの場合に値を設定するために使用します

sqlite3_bind_text(statement, 1, yourName, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 2, yourCity, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 3, yourPhone, -1, SQLITE_TRANSIENT);

次に、を使用sqlite3_stepして実行し、

statementSQLを保存して、別の機会に実行することができます

于 2012-07-03T11:55:35.260 に答える