問題タブ [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 - FMDB クエリが LIKE で正しく動作しない
SQLite のラッパーである FMDB を使用しています。http://github.com/ccgus/fmdb
ここに私のクエリ行があります:
これを使用して、アスリートの正確な名前を入力すると、結果が返されます。しかし、名前を検索できるように、LIKE を使用しようとしています。しかし、単に ? の代わりに %?% を追加すると、... 何も返されません。そして、エラーはありません。
誰かが以前にこれに遭遇し、私が間違っていることを知っていますか?
みんな、ありがとう!
sqlite - FMDBを使用したクエリが結果を返さない
元々自動インクリメントで設定されておらず、すでに数百のレコードがあるSQLiteデータベースで次に高いPKを取得しようとしています。それで、私はそれがうまくいくように思われる以下の方法を作りました、しかし私はこれから何の結果も得ることができません。データベースからデータを取得する方法は他にもいくつかありますが、何が間違っているのか理解できず、目を細めてしまうので、助けを求めたいと思いました。
ログは次のことを示しています。
2012-01-25 22:56:29.398引用符[6992:f803] PRINT FIRST SUBJECT_ID =(null)(gdb)
ヘッダーは次のようになります。
database - Integer を SQLite に挿入すると爆発するのはなぜですか?
FMDB executeUpdate を使用して、以下の挿入ステートメントで EXC_BAD_ACCESS を取得します。FMDatabase の bindObject toColumn で発生します。
NSlog ステートメントでは、正しい値が得られますが、update ステートメントが爆発します。ここで何が間違っているのかわかりません。
私は FMDatabase コードを調べましたが、最初の変数のように見えます。NSInteger と NSNumber の両方で保存しようとしましたが、どちらも同じクラッシュを引き起こしました。
クラッシュする FMDatabase の正確な行は次のとおりです。
subject_id を NSInteger (または NSNumber) として渡し、エラーを出しています。
objective-c - FMDB および LIKE 句
iOS 用の FMDB ラッパーをパラメーターと LIKE 句で動作させるのに問題があります。実際、FMDB を使用する SQLite で LIKE 句をまったく機能させるのに問題があります。
「Adam」に一致するように `Name LIKE '%dam%' を使用してみました。また、以下のようにパラメーターとして指定しようとしましたが、どれも機能しません。
条件に一致するアイテムがテーブルに確実に存在しますが、FMDB がそれらを返さない理由がわかりません。
objective-c - FMDB を使用してデータベースに保存すると、NSInteger の解釈時にクラッシュする
以下の関数が呼び出されると、EXC_BAD_ACCESS クラッシュが発生します。FMDB は、WHERE 句でこの subject_id 列にヒットしたときに、2 つの NString と爆弾を通過するため、subject_id NSInteger の解釈に問題があるようです。
この問題は、FMDB 挿入の問題に関する別の投稿で遭遇したものと同じであり、これは私の subject_id メンバーの問題に要約されます。ヘッダーで間違った宣言を使用していると思います。ここにあります:
(注:残りの部分を理解したので、これを主に編集しました。)
iphone - sqlite と fmdb ラッパーを使用した iphone データベース - 遅い UI
sqlite と fmdb ラッパーを使用して、iphone 用のデータベースを作成しました。
データベースには約 3500 行あります。これには 14 列あります。ID 用に 1 つ、名前/主な検索用語用に 1 つ、代替検索用語用に 9 つの他の列、短い説明用に他の 3 つの列があります。
私のアプリの最初のビューは、Google に少し似た検索バーを表示する導入画面です。検索バーを実装すると、目的の結果を含むテーブルを含む別のビューが表示されます。ビュー間のこの最初の遷移には 1 ~ 2 秒の遅延があります。さらに、テーブルではシームレスなスクロールが許可されていません。最後に、表のセルを選択すると、シームレスに最終ビューに移動しますが、表ビューに戻ろうとすると、さらに 1 ~ 2 秒の遅延が発生します。
3500 行で 5 列しかない小さなデータベースでこのアプリを実行しました。この場合、9 つの代替検索語がデータベースから削除されます。iPhone でこのようなアプリを実行すると、かなり効率的です... わずかな遅延がありますが、実際には目立ちません... おそらく遅延に気付きませんでした (ただ私が使用している大規模なデータベースではそれほど明らかではなかった場合は、小さな遅延は正常であると想定しています。
私は sqlite データベースを微調整する必要があるという結論に達したので、主な質問が 2 つあります。
- sqlite dbのプラグマ設定(同期、ジャーナルモード、キャッシュサイズなど)を変更すると効率が向上することを読みました。これらの設定を mozilla プラグインで変更すると、保存されないようです... プラグインを開いて閉じると、設定が古いデフォルトに戻ります。これらを xcode 経由で設定できることがわかりました...これらの設定を FMDB ラッパーのどこで設定するのか疑問に思っていますか?
- インデックスを作成すると速度が大幅に向上すると聞いたことがあります。何をインデックス化すればよいかよくわかりませんが、インデックス化する場合、FMDB ラッパーのコーディングを変更する必要がありますか? さらに、データベース内のすべてのデータを使用したいという理想的な状況を考慮して、インデックスを作成する必要があるのは何ですか?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"CustomCell";
objective-c - charを使用したFMDBクエリ
私は現在、単語のデータベースに対してクエリを実行しようとしています。データベースは、単語の最初の文字と単語の長さでアクセスできるように構成されています。ただし、文字と長さを使用して検索すると問題が発生します。
残念ながら、クエリは値を返しません。入力、文字列、および整数としてcharを使用してこれを試しました。
rubyを使用して同じクエリを実行できるため、かなり混乱しています。
そして、453の結果を取得します。
sqliteテーブルには次の列があります。
私が見逃しているかもしれないものについてのアイデアはありますか?
どうもありがとう!
objective-c - 正しい使用法FMDB/メモリ
同様の質問で問題の解決策を見つけることができませんでした。fmdbラッパーを使用してsqliteデータベースから大量のデータを抽出しています。fmdbユーティリティクラスに次のようなメソッドがあります。
それは私の情報を一連の辞書に保存します。ビューコントローラで、次のようにメソッドを呼び出します。
これで、このメソッドを呼び出して新しい連絡先で配列を更新するたびに、割り当てツールで観察したときに蓄積し続ける一貫したリークが発生します。これは、データベースからロードした直後にcurrentConnectionsを解放し、このメソッドを再度呼び出さない場合でも発生するため、データベースの実装に問題があると思われます。他の誰かがこの問題を処理しましたか?
iphone - 誰かが fmdb の FMDatabaseQueue の使い方を説明できますか?
FMDatabaseQueue が fmdb に新たに追加され、バックグラウンド スレッドの db 呼び出しを処理できるようになりました。それは私が必要としているもののようですが、クエリ/更新リクエストを作成および処理する方法を説明するドキュメントが見つかりません。
誰もそれを経験したことがありますか?サンプルコードまたは説明を投稿できますか?
ありがとう
ブランチ: github.com/ccgus/fmdb/tree/threadtests
クラスはそこにありますが、キューの使用方法がわかりません。
ios - IOSFMDBグッドプラクティス
メインスレッドを使用してデータベースに行を挿入/行を選択することをお勧めしますか、それともこの操作を行うために非同期キューをディスパッチする必要がありますか?この場合..これを達成するための正しいことは何ですか?
ありがとう!