FMDBで既存データの編集方法が分からない

このQ&Aのポイント
  • ObjectiveCを用いてiPhoneアプリ開発の勉強をしており、FMDBでSQLiteを使ってデータの保存を行っています。しかし、既存データの編集方法が分からず困っています。
  • 現在、既存データの編集に関していくつかの方法を考えていますが、どれも問題点があるため、適切な方法を知りたいです。
  • 現在考えられる方法は、SQLiteのUPDATE文を使ってデータを更新する方法や、データを一度配列に保持して編集する方法などがありますが、具体的なコードやサンプルが見つからず困っています。他にも行を指定してデータを挿入する方法なども考えられますが、詳細な情報が見つかりませんでした。アドバイスをいただけると助かります。
回答を見る
  • ベストアンサー

FMDBで既存データの編集のやり方が分からない

ObjectiveCを用いてiPhoneアプリ開発の勉強をしています。 アプリ側でデータを保存するためにFMDBでSQLiteを使っているのですが、 アプリ側でそのデータの値を編集したいときに、どのように処理すればいいのか方法が分かりません。 自分の中でいくつか方法が考えられるのですが、どれも問題点があります。 まず一つの案は、SQLiteのUPDATE文を使い、データを更新する方法です。 http://www.dbonline.jp/sqlite/insert/index5.html こちらのサイトのように処理出来れば一番分かりやすいとは思うのですが、ObjectiveCにおいてこのような処理をしているサンプルが見つけられませんでした。 二つ目の案は、データを一度配列に保持し、そのデータを編集するという方法です。 この方法であれば最後までコードは想像できるし、テーブルの更新を自分のタイミングで出来るのが良いと思いましたが、 データを編集し、更新しないうちにアプリが終了された時などに、不具合が出るのではないかという不安があります。 また、データの数が100、1000・・・と増えていった時、メモリの使用量が多くなるのではないかという不安もあります。 他には 指定の行にデータを挿入する方法があれば、一度その行のデータを保持し、行を削除、編集したいデータだけ編集し、もとの行を指定して挿入するという方法も考えられますが 指定の行にデータを挿入する方法というのが、検索しても見つけられませんでした。 自分としては一番目の方法で出来たら良いなと思うのですが、どのようにすれば既存データの編集が出来るでしょうか? 以上の方法以外でも構いませんので、アドバイスいただけたらと思います。 回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「fmdb update」で検索するだけで http://grandbig.github.io/blog/2013/11/30/fmdatabase/ とか http://taichino.com/programming/1574 とか FMDBでUPDATE文を使う例はたくさん出てきます。 INSERTやDELETEができるなら、文の内容が違うだけで 基本時には同じ方法で実行できると思いますけど。

ifonesapp
質問者

お礼

回答ありがとうございます! 一番上に出てきますね・・・ いろいろワードを変えて検索したつもりではいましたが、検索の仕方が悪かったかもしれません 上のサイトは辿りついたものの、whereを見落としていてスルーしてしまったような…('`;) ともかく問題は解決できました、ありがとうございます! 参考にして実際に組み込んでみます!

関連するQ&A

  • EXCEL表示、編集可能なiPhoneアプリ

    iPhone用アプリ(4S)で、表示と簡単な編集(行や列の挿入など)ができるアプリはいろいろとありますが、PCからEXCELファイルを送り、それをアプリで開き閲覧、編集でき、ずっとアプリの中に保持しておけるもの(すぐにぱっと開けるもの・EXCELで単語帳として利用したいため)がなかなか見つかりません。アプリでシートを新規作成をするものがほとんどで、PCでEメール添付などで送られてきたEXCELファイルを編集したり閲覧するアプリがないようです。現在Sheet2を使用していますが、これも新規作成する必要があるみたいです。 私の希望に沿うアプリをご存知のかた、どうか教えて下さい。

  • 既存データの全てに、空白の1行を追加するには・・・

    既存データの全てに、空白の1行を追加するには・・・ B1~B100までデータが入っているとして 各データの下に空白の行を追加していく作業を簡単にする方法はないでしょうか? 地道にやればB2に行挿入、B4に行挿入・・・と100回やる必要があると思います。 アドバイスください。

  • 「順位データ」の持ち方について教えてください

    ■環境 ・PHP+MySQL ■質問 ・「順位データ」の持ち方について教えてください ・「順位データ」はデータベース側で保存するものでしょうか? ・あるいはPHPで都度処理するのでしょうか? ・ケースバイケース? ■データベース側で保存する場合 ・「通常データ」だと、該当レコードを「挿入」もしくは「更新」すればそれで済みますが、「順位データ」だと1件データを「挿入」もしくは「更新」するだけで、全レコードに影響を及ぼす可能性があります ・この場合、1レコードでもデータを変更したら、全レコードに変更処理をかけるしかないのでしょうか?

    • ベストアンサー
    • MySQL
  • 文字列編集時の領域使用について

    例えば1万行データファイルを行単位で読み込み、読み込んだ行を編集して出力データファイルを作成するような処理で、1行読み込み、編集して1行出力する方法か、ある程度の行を処理してから出力するか迷っています。編集したデータはStringBufferにappendする方法を考えています。StringBufferにヒープを超過しないようappendしたいので1行ずつが無難でしょうか?ちなみに、編集結果を出力した後、StringBufferを使いまわす(初期化??)には、一旦nullを変数に代入すればよいのでしょうか?

    • ベストアンサー
    • Java
  • Access SQLITEのリンクテーブル編集不可

    AccessからSQLITEのリンクテーブル編集不可 Access2010を持っています。ODBC リンクテーブルよりSQLITEのテーブルにリンクテーブルしたいと思っています。 下記のサイトを参考にAccessよりリンクテーブルが作成できました。 http://www.crystal-creation.com/software/tool/office/access/external/sqlite.htm リンクテーブル先のテーブルを開き、データを編集しようと思いましたが、「レコードセットは更新できません」と表示されます。 使用しているのはWindows XP SP3になります。データを編集したいのですが、どのようにすればデータの編集ができるようになるのでしょうか?

  • AndroidアプリでSQLiteファイルを更新

    随時更新されるデータベース(以下DB)のAndroidアプリを作成しています。 今回はそんなに大きなDBではないので 初回起動時: assetフォルダにSQLiteファイルを用意しておく 起動時に「/data/data/[package_name]/」以下にSQLiteファイルをコピーしてDBを作成 次回起動時: DBに更新があったかチェック 更新があった場合、WEB上に用意したSQLiteファイルをHTTP通信で取得 既存のSQLiteファイル(/data/data/[package_name]/)に上書き という処理を書こうとしています。 初回起動時の処理は書けたのですが、 更新時の処理で、HTTPから取得したSQLiteデータを、どのように上書き保存したらよいのかわかりません。 処理はAsyncTask内でHTTP通信とともに行う予定です。 どなたかご教授お願いいたします。

    • ベストアンサー
    • Java
  • ワードデータの編集

    ワードで作成したデータ(PC内のデータやUSBメモリー内のデータ)の編集が突然出来なくなった。 具体的には、当文書を開き、文書上のどの所にマウスポイントを置いても、反応なし。 従って、右クリックのの削除等も使えない。範囲を指定しての、メニューバーからの「Delete」キーも使えない。このデーターの印刷は出来ます。 マウスの右クリックでは、「定義・翻訳・Bingで検索・コメントの挿入」が出ます。 範囲指定をして、コピーをしてワードを開き、貼り付けると、編集も印刷も出来る文書データとなります。 なぜ、こんな状態になったのか、解決策を教えて貰えないでしょうか。 参考:Win-7 SP-1 HDD400GB メモリー~4GB home Businessu 2013

  • VB2005 データセットの内容をDBに更新

    VB2005Expressにて開発を行っています。 ・DBから条件を指定して抽出した値をデータセットにセット ・データセット内の値を編集(追加、更新、削除) ・データセットの値をDBへ更新 という処理を行った場合、DB側では 1.データセットの値だけが更新される  (抽出されてないデータは残っている) 2.データセットの値に更新されるので、データセットの値のみになる  (抽出されてないデータは消えてしまう) のどちらなのでしょうか。 どなたかご存知でしたら教えてください。

  • データ移動処理

    0 0 1 0 0 1・・・ a b c d e f ・・・ a b c d e f ・・・ a b c d e f ・・・ 上図で一番上の行にある数字が1の場合だけの列を選択し、1の列全てをコピーをして 別シートへ移動して今度は、行で挿入をして貼り付けを行いたいと考えております。 しかし、データ量がものすごく多いので1だけがいくつあるのかさえわからないため 挿入先にも一体いくつ挿入すればいいかわかりません。 データ量(行が1の数)にあわせて挿入数をいれ、また列のデータから行のデータへの変換はどうすればいいかお力を貸していただけないでしょうか? 今回の質問はEXCELについてです。 そしてできればVBAのほうで処理を行いたいと思っております。 (原本のデータ編集が何度もされるのでVBAで登録しておこうかと^^;) よろしくお願いいたします。

  • viエディタでの編集

    viエディタでの以下の編集方法を教えてください。 カーソルの置いてある行から最終行までの すべての行の先頭に'#'を挿入する。