2012-01-29 10 views
1

私は、チュートリアルhereを使用して、SimpleComponentでAutoCompleteTextViewを提供しています。それは完全にと同じようにですが、私はそれが速い(したがって、名前)聞いたので、fts3を使用するようにデータベースを変更しました。SQLiteの名前を変更fts3 rowid列

01-28 21:31:53.018: E/AndroidRuntime(16284): java.lang.IllegalArgumentException: column '_id' does not exist 
01-28 21:31:53.018: E/AndroidRuntime(16284): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314) 

私はどこにもオートインクリメントキーを宣言していないにもかかわらず:

コード内で何かがfts3テーブルに変更した後、私はこのエラーを取得するため、列_idを使用するようにハードワイヤードであると思われます(それはfts3のrowidに置き換えられているので)。エラーはAbstractCursorで発生するので、私はそれについて何もできません。

私はSELECT rowid,* FROM mytableを使用して、その後..私はので、任意の助けが高く評価され、SQLにはかなり新しいです何とか列名を変更することにより、_idとしてrowidを認識するためのコードを強制する方法があるかもしれないと思っています!

+0

私はまったく同じ問題を抱えています –

答えて

1

SQLiteの列の名前を変更するには、hereと記述することができます。これらすべての操作をトランザクションで行うことを強くお勧めします。 Androidでこれを行うときの詳細 - 私はあなたのソリューションでSQLスクリプトをどのように実行するのかわかりませんが、execSQL呼び出しを使用する場合はthisを覚えておいてください。

ところで、列の名前を変更したくない場合は、hereというテクニックを試してみてください。

+0

2番目の提案( 'を使って')はヒッチなしで働いていました。ありがとう! – Snailer

関連する問題