Android API に大きな問題があります。SQL データベースにいくつかの値を挿入しようとしていますが、キーが既に存在する場合は更新したいと考えています。
通常、SQL では問題ありませんが、Android では常にエラーがスローされます。
私のコード:
"IF EXISTS (SELECT * FROM "+table+" WHERE Name='"+key+"')" +
" UPDATE "+table+" SET (Value='"+Value+"') WHERE Name='"+key+"'" +
" ELSE" +
" INSERT INTO Table1 (Name,Value) VALUES ('"+key+"','"+Value+"')";
私がいつも得たエラー:
09-19 19:56:46.311: E/AndroidRuntime(32454): Caused by:
android.database.sqlite.SQLiteException: near "CASE": syntax error (code 1): , while compiling: CASE WHEN EXISTS (SELECT * FROM Settings WHERE Name='AppVersion')THEN UPDATE Settings SET (Value='0.5 beta') WHERE Name='AppVersion'ELSE INSERT INTO Table1 (Name,Value) VALUES ('AppVersion','0.5 beta')`
「CASE」も使用しようとしましたが、どちらも機能しません。
"CASE WHEN EXISTS (SELECT * FROM "+table+" WHERE Name='"+key+"')" +
"THEN UPDATE "+table+" SET (Value='"+Value+"') WHERE Name='"+key+"'" +
"ELSE INSERT INTO Table1 (Name,Value) VALUES ('"+key+"','"+Value+"')";
仕組みを誰か教えてください。
PS .: 下手な英語でごめんなさい。