FlashBuilder 4.6を使用していて、作業中のシンプルなアプリがあります。sqlite dbを使用し、1。)新しいレコードを追加できるmxmlコンポーネントがあります2.)リストコンポーネントを使用してdb内のレコードを一覧表示し、クリックすると3.)入力フィールドを使用して選択したdbレコードを変更します
すべての側面が正常に機能しており、dbの作成(まだ存在しない場合)、リストコンポーネントにすべてのレコードが表示され、新しいエントリの追加が機能して正常に保存されます...
問題はUPDATE関数にあります。他のコンポーネントを使用して新しいレコードを追加し、それらを一覧表示するため、テーブルがデータベースに存在することを知っています...(データベースとテーブルの名前がすべての関数で一貫していることを確認しました)が、何らかの理由で次を実行しようとすると吐き出すUPDATEルーチン
SQLError: 'Error #3115: SQL Error.', details:'no such table: 'tblquiz'', operation:'execute', detailID:'2013'
これは、ユーザーがdbレコードを更新できるようにするために実行しようとしているactionscript3コードです。
private function updateQuestion():void
{
var dbFile:File = File.applicationDirectory.resolvePath("database.db");
var dbConnection:SQLConnection = new SQLConnection();
dbConnection.open(dbFile);
var statement:SQLStatement = new SQLStatement();
statement.sqlConnection = dbConnection;
// TAKE THE FORM FIELD VALUES AND USE THIS SQL STATEMENT TO UPDATE THE DATABASE RECORD WHERE THE ID MATCHES DATA.ID
statement.text = "UPDATE tblquiz SET question = '" + fieldQuestion + "', answerA = '" + fieldAnswerA + "', answerB = '" + fieldAnswerB + "', answerC = '" + fieldAnswerC + "' WHERE id = " + data.id;
trace(statement.text);
statement.execute();
// GO BACK TO THE LIST COMPONENT TO SEE IF THE UPDATE WORKED
navigator.popView();
}
ここで何が欠けていますか?データベースとテーブルを参照する他のすべては正常に機能します。グーグルでこのエラーに光を当てるものは何も見つかりませんでした。USBで接続されたデバイスと、開発中のデスクトップマシンのAIRエミュレータでエラーが発生します。
前もって感謝します!
更新:問題は解決しました...アプリでデータベースの異なるパスを使用しました...一部の場所ではapplicationDirectoryを使用し、他の場所ではapplicationStorageDirectoryを使用しました....すべてを次のように変更しました:
File.applicationStorageDirectory.resolvePath("database.db");
...これはiOSとAndroidの両方で機能する方法だと私は信じています(Androidは現時点ではすべてImに関係していますが)。あなたの助けに感謝します-私が以前にそれを逃したとは信じられません。睡眠不足のせいにします。