我对灵活移动环境相对较新。 我在flex mobile中使用sqlite。
我有一个基本的应用程序,它有一个欢迎屏幕和注册。
在欢迎屏幕中,如果表在本地db(sqlite)
中不存在,则会创建表在欢迎画面
<s:creationComplete>
dbFile = File.applicationStorageDirectory.resolvePath("testDB.db");
conn = new SQLConnection();
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
conn.addEventListener(SQLEvent.OPEN, openHandler);
conn.openAsync(dbFile);
</s:creationComplete>
in scripts
public var conn:SQLConnection;
private var insertUser:SQLStatement;
private var createUsersTable:SQLStatement = new SQLStatement();
private var getUser:SQLStatement = new SQLStatement();
public var dbFile:File;
private function openHandler(event:SQLEvent):void {
conn.removeEventListener(SQLEvent.OPEN, openHandler);
conn.addEventListener(SQLEvent.BEGIN, beginHandler);
conn.begin();
}
private function beginHandler(event:SQLEvent):void {
conn.removeEventListener(SQLEvent.BEGIN, beginHandler);
createUsersTable.sqlConnection = conn;
createUsersTable.text ="CREATE TABLE IF NOT EXISTS users(first_name varchar(100),email VARCHAR(100))";
createUsersTable.execute();
}
以上工作完美,表格已创建。
在注册屏幕中,我是否必须再次初始化db变量,如欢迎屏幕中的 s:creationComplete 。
如果我不重复并尝试访问conn(SQLConnection的变量),这是我得到的错误
TypeError:错误#1009:无法访问null的属性或方法 对象参考。
但是将来我将会有大约30个这样的屏幕,所以我是否应该在他们的s:creationComplete中为所有屏幕重复代码?
最后,我想在其他屏幕上轻松打开数据库连接并执行我的sqlite操作。
如果错误或请提出更好的方法,请纠正我。 非常感谢你
答案 0 :(得分:0)
我今天刚刚发布了对此的回复,它可能对您有所帮助 How to get a view to read data
我不确定您对编程的熟悉程度,但从上面发布的内容中,您将能够弄清楚正在发生的事情并选择一些最佳实践(如果您还不知道)他们=))。