2011-06-18 6 views
0

私は選択クエリのカーソルを作成しています。 WHEREセクションのルックアップ値はパスである変数を参照するため、パスにはいくつかの完全なストップがあります。androidのsqLite prob where句

クエリにはこのようなエラーはありません。エラーは、参照値である名前、つまりその中に停止しているパスで名前が付けられたcolという名前ではありません。変数にsqlEscapeユーティリティを使用するとエラーは発生しますが、ルックアップは失敗します。

お願いします。

+0

いくつかのコードは便利です...推測は楽しいですが、おそらくそれはあなたにとって有用ではありません。 –

答えて

0

あなたのコードのビットがなければ、言い難いが、私はあなたが一緒にこのような句入れている推測している:

String value = "some.thing.or.other"; 
String where = "FIELD = " + value; 

がパラメータwhere句の代わりに

String value = "some.thing.or.other"; 
String where = "FIELD = ?"; 
SQLiteDatabase db = fDbOpener.getReadableDatabase(); 
Cursor results = db.query(TABLE_NAME, COLUMNS_LIST, where, new String[] { value }, null, null, null); 
を構築してみを

今すぐクエリメソッドを実行すると、SQLiteは値としてwhere句に値を代入します。つまり、値の解釈を試みないため、完全な停止を誤って構文に間違えることはありません。

+0

ありがとうマーク - それはそれを修正しました。 – ron