私は現在、Flexを学ぶためのトレーニングビデオをフォローしており、ビデオの方向にできるだけ近づこうとしています。エラーを修正する方法を見つけようとしています。
エラー#2044:未処理のSQLErrorEvent:。errorID = 3115、operation = execute、message = Error#3115:SQLエラー。、details =そのようなテーブルはありません:'archivelist'
テーブルは、トレーニングに従ってこのコードで作成する必要があります。
<fx:Script>
<![CDATA[
import mx.utils.OnDemandEventDispatcher;
public var ArchiveFile:File;
public var dbConnection:SQLConnection;
private function createDatabase():void
{
ArchiveFile = File.applicationStorageDirectory.resolvePath("archive.db");
dbConnection = new SQLConnection();
dbConnection.addEventListener(SQLEvent.OPEN, onDatabaseOpen);
dbConnection.addEventListener(SQLEvent.CLOSE, onDatabaseClose);
dbConnection.openAsync(ArchiveFile);
}
private function onDatabaseOpen(evt:SQLEvent):void
{
trace("Database is now open");
var statement:SQLStatement = new SQLStatement();
statement.sqlConnection = dbConnection;
statement.text = "CREATE TABLE IF NOT EXISTS archivelist (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT , journal TEXT)";
statement.execute();
}
private function onDatabaseClose(evt:SQLEvent):void
{
trace("Database is now closed");
}
private function saveJournal():void
{
var statement:SQLStatement = new SQLStatement();
statement.sqlConnection = dbConnection;
statement.text = "INSERT INTO archive (title , journal) VALUES ('"+title_txt.text+"','"+journal_txt.text+"')";
statement.execute();
title_txt.text = "";
journal_txt.text = "";
}
]]>
次に、このコードを使用して別のビューで呼び出されます
<fx:Script>
<![CDATA[
import flash.data.SQLConnection
import flash.filesystem.File
import mx.collections.ArrayCollection;
public var ArchiveFile:File
public var dbConnection:SQLConnection;
public var selectQuery:SQLStatement;
private function createDatabase():void
{
ArchiveFile = File.applicationDirectory.resolvePath("archive.db");
dbConnection = new SQLConnection();
dbConnection.addEventListener(SQLEvent.OPEN, onDatabaseOpen);
dbConnection.addEventListener(SQLEvent.CLOSE, onDatabaseClose);
dbConnection.openAsync(ArchiveFile)
}
private function onDatabaseOpen(evt:SQLEvent):void
{
trace("Database is now open");
selectQuery = new SQLStatement();
selectQuery.sqlConnection = dbConnection;
selectQuery.text = "SELECT * FROM archivelist ORDER BY title ASC";
selectQuery.addEventListener(SQLEvent.RESULT, onQueryResult);
selectQuery.execute();
}
private function onQueryResult(evt:SQLEvent):void
{
archivefiles.dataProvider = new ArrayCollection(selectQuery.getResult().data);
}
private function onDatabaseClose(evt:SQLEvent):void
{
trace("Database is now Closed");
}
]]>
ビデオでは、トレーナーがdatabase.dbと呼ばれるビューの下に青いファイルを持っていることに注意することが重要です。彼らはこのファイルまたはそれを作成する方法を提供していません。私自身の意味では、データベースの名前をアーカイブに変更し、テーブルの名前をアーカイブリストに変更しました。私の最終的な目標は、複数のビューがアクセス/書き込みできる1つのデータベースを作成することです。ベストプラクティスを使用しているので、できるだけトレーニングに近づこうとしています。私は与えられたどんな助けにも大いに感謝します。誰かがこれが新しい質問だと感じたら、事前に謝罪します。私はこれをグーグルで調べて、トレーニングビデオですべてのキャラクターを数時間チェックしました。みんな違うやり方をしているようで、ベストプラクティスのやり方をしようとしています。
ありがとうございました