2011-10-20 18 views
2
"SELECT * FROM locations 
JOIN section_has_location ON locations.location_id = section_has_location.location_id 
WHERE section_has_location.chapter_id =2 
    AND section_has_location.section_id=2" 

に私はエラーを取得する:SQLiteエラーの原因: 'エラー#3132:データ型が一致しません。'アドビのAIR

SQLError: 'Error #3132: Data type mismatch.', details:'could not convert text value to numeric value.', operation:'execute', detailID:'2300'

これらはテーブルです:

CREATE TABLE locations ( 
    location_id INTEGER, 
    name  TEXT, 
    mask_id  TEXT, 
    x   REAL, 
    y   REAL, 
    content  TEXT, 
    image_url TEXT, 
    type  TEXT 
); 

CREATE TABLE section_has_location ( 
    chapter_id INTEGER, 
    section_id INTEGER, 
    location_id INTEGER 
); 

エラーを起こさないようにと、私は、クエリを修正するにはどうすればよいですか?

更新:すべてのデータをエクスポートし、新しいクリーンなデータベースにインポートしました。これはそのエラーを解決したようです。

答えて

2

私はちょうどあなたのコードを取って、テーブルを作成し、クエリを実行し、それは正常に動作します。

あなたの行ったことは、カラムのタイプが編集されていてもテーブルが更新されていないと推測されます。列を作成するか、可能であれば両方の表を削除して再作成する方が簡単かもしれません

+0

ありがとう、これは本当に変です。 DBを見ると、列の型は間違いなく正しいです。申し訳ありませんが、私はこれをAdobe AIRで使用していることを言い忘れていましたが、それは私が考えたいと思うような違いはありません。 – davivid

+0

@davividこれを見てください:http://opensourcehacker.com/2008/03/14/a-short-story-about-why-to-rtfm/あなたは同じ状況になるかもしれない –

+0

AIRはそのようにそれに影響するべきではありません:Sその本当に奇妙です。おそらく、これをストアドプロシージャに変換してみて、クエリ文字列を使用するのではなく呼び出してください。 – Purplegoldfish

関連する問題