問題タブ [fmdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - SQL クエリの実行が遅い 最適化が必要
iPhone アプリの以下のクエリに問題があります。アプリがクエリを実行すると、結果を処理するのにかなりの時間がかかります。おそらく 1 秒ほどかかります...とにかくクエリを最適化できるかどうか疑問に思っていましたか? すべての SQL を処理するために FMDB フレームワークを使用しています。
表に対する私の声明は以下のとおりです。
objective-c - iPhone アプリケーションのデータベースから読み取る FMDB
次のコードを使用して、customers テーブルからレコードを読み取ります。何らかの理由で、返される結果セットは常に空です。
データベースを複数回チェックインしましたが、データは表示されますが、何らかの理由で FMDB がデータを取得できません!
objective-c - FMDB-CocoaからのDBの変更に失敗しました
FMDBを使用してローカルSQLiteデータベースと通信するCocoaアプリケーションに取り組んでいます。DBで挿入または更新操作を実行できないという問題が発生しました。選択クエリは完全に正常に実行されるため、データベース接続設定は正しいと思います。
私のコードの構造は基本的に次のようになっています。
実行中に例外や警告はスローされませんでした。db.traceExecutionに関するコンソール出力は次のようになります。
テストデータベースは、INTタイプの1列のテーブルにすぎません。
dbファイルがまったく更新されないことを除いて、すべてが正常に見えます。Selectクエリは完全に正常に機能するため、私には本当に混乱します。データベースのパスを確認しました。正しいパスを指しています。最初はファイルのアクセス許可が原因だと思いますが、誰もが読み取り/書き込みできるようにしたとしても、問題は同じです。
私は何時間もこの問題に悩まされており、適切な解決策を見つけることができませんでした。誰かがこれに光を当てることができますか?ありがとう!
ios - 複数のクエリが FMDB で実行されていない
iPhoneでSQLiteデータベースを作成するためにFMDBを使用しています。次の形式の initial.sql があります。
ファイルを NSString にロードして実行することで、これをロードします
これは成功しますが、後で失敗します:
2 番目のステートメントが呼び出されていないことは明らかです。すべてのクエリが呼び出されるようにするにはどうすればよいですか?
SQLite のドキュメントによると、「ルーチン sqlite3_prepare_v2()、sqlite3_prepare()、sqlite3_prepare16()、sqlite3_prepare16_v2()、sqlite3_exec()、および sqlite3_get_table() は、セミコロンである SQL ステートメント リスト (sql-stmt-list) を受け入れます。ステートメントの分離されたリスト。」
したがって、これはすべて機能するはずです。
iphone - iOS NSFileManager はコピーしますが、ファイルは次のロードまで応答しません
コンテンツの更新も更新できるように、アプリの読み取り専用データベースをアプリ サポート ディレクトリに移動させています (アプリの更新ではなく、有線の更新を介して)。以下のコードはアプリ デリゲート内にあり、db をコピーしますが、最初の実行時に NSFileManager を次の試行 (その実行中) に実行して、そこにあるかどうかを確認するか、コピーされたファイルが読み込まれないようにします。ただし、アプリを閉じて再起動するとすべて正常に動作するため、コピーしています。私は途方に暮れています。
"[DatabaseManager isBundledDBNewerThenInUse]" は、App Support ディレクトリ内のデータベースが存在しないか、バンドル内のデータベースよりも古いバージョンである場合に YES を返します。App Supportディレクトリのdbを開くため、削除しようとする前に[DatabaseManagerを閉じる]。それがまったく役立つ場合、私は DatabaseManager で FMDB を使用しています。しかし、最初のロードの後に言ったように、アプリを強制終了してアプリに戻ると、完全に機能します。(バンドルからのデータベースの更新では、最初のロードでもデータベースは更新されません。) どんな助けも素晴らしいでしょう。さらに情報が必要な場合は、ただ尋ねてください! ありがとう!
iphone - ドキュメント ディレクトリにある sqlite データベースをバックアップ/同期するにはどうすればよいですか? iCloudが答えですか?
私はいくつかの機能を追加しようとしているアプリストアにシンプルなリーダーアプリを持っています。現在、アプリのユーザーは、さまざまなブックマークを保存し、メモを取り、コンテンツのさまざまな部分を強調表示することができます。これらはすべて、FMDB を使用してドキュメント ディレクトリのローカル sqlite データベースに保存されます。
アプリが削除されるたびにローカルデータベースが削除されることを除いて、すべてがうまく機能します。それで、iCloud の出現により、どういうわけか自分のデータベースのバックアップを作成し、必要に応じてそれを復元するための理想的な解決策があるかどうか疑問に思っていますか? また、異なるデバイスでの使用間で同期するのはどうですか?
iCloud でない場合、この機能を実装するための他のオプションは何ですか? 私はいくつかの異なるアプリでそれを見てきましたが、彼らがどのようにそれを行うのかわかりません.
ありがとう!
ハッピーサンクスギビング!
ios - FMDBを介してsqliteWHEREIN句に配列を渡しますか?
FMDBを介してSELECT…WHERE…INステートメントに配列を渡すことは可能ですか?私はこのように配列を内破しようとしました:
これは、配列にオブジェクトが1つしかない場合にのみ機能します。これにより、FMDBは、挿入された文字列全体を引用符で囲んでいると思います。
そこで、配列をそのままFMDBのメソッドに渡してみました。
これはまったく機能しません。
READMEやFMDBのgithubページのサンプルには何も見つかりませんでした。
ありがとう、ステファン
ios - FMDB と datetime() 関数
日付と FMDB にいくつか問題があります。日付/時間などでグループ化したい日時値を含むレコードがたくさんあります。基本的な sqllite クエリ ツールを使用して、使用する正しい SQL 構文を決定しました。
上記は機能し、返されたデータは正しいです。ただし、FMDB ラッパーを使用して同じことを実行しようとすると、正しい結果が返されません。datetime() 関数を使用して返されたフィールドは、コンソールに出力すると NULL として読み取られます。また、1 つのレコードしか返されないため、クエリも正しく実行されません。正しい結果を返す sqllite ツールを使用して同じクエリを実行できるため、これが正しくないことはわかっています。
誰かが私が何をする必要があるかを理解するのを手伝ってくれますか? 数週間前に FMDB ライブラリをダウンロードしただけなので、比較的新しいバージョンが必要です。
iphone - iOS アグリゲーション用の CoreData または SQLite
ローカル ストレージを必要とする iPhone アプリがあります。
私の最初の考えは、コア データを使用することでした。これはほとんどのアプリで問題ありませんが、主要なチャンクはデータの集計を使用しています。SQLite では、これは MIN、MAX、AVG、GROUP_BY などの標準的な使用法です。
しかし、コア データは主にオブジェクト グラフ管理用であるため、これらをうまく実装していません。CoreData から読み込んだ Obj-C で計算を行うか、それとも SQLite を使い続けて、CoreData システムの他の部分の有用性を放棄する必要がありますか?
集約のためのコレクションは巨大ではありません (最大 100 オブジェクトと言います)。ディストリビューションなどを行う必要があります。
ここには具体的な答えがないことはわかっていますが、2番目のオプションが欲しいだけです。ありがとう
objective-c - FMResultSetをNSMutableArrayに変換しますか?
FMDBを試していますが、FMResultSetをNSMutableArrayに変換できれば、完全に機能するようです。
どうすればこれを達成できますか?