Actionscript 3 从AS3中的网络路径加载数据库文件
我正在AdobeAIR上做一个项目,关于在牙科中心保存患者数据和他们的所有记录,我想在第一次打开程序时,在主计算机和同一网络上的其他计算机上创建数据库,询问数据库的路径,打开它并保存它的位置,当我第二次打开程序时,它会通过网络自动打开数据库,而不询问路径Actionscript 3 从AS3中的网络路径加载数据库文件,actionscript-3,networking,air,Actionscript 3,Networking,Air,我正在AdobeAIR上做一个项目,关于在牙科中心保存患者数据和他们的所有记录,我想在第一次打开程序时,在主计算机和同一网络上的其他计算机上创建数据库,询问数据库的路径,打开它并保存它的位置,当我第二次打开程序时,它会通过网络自动打开数据库,而不询问路径我试图将路径保存到共享对象中,但没有成功,伙计们? 很抱歉,我没有在此处发布代码(此处的代码正在运行,现在我使用的是fileReference,但现在使用的是file class,它的工作原理很神奇,但我想问,如果我在一台计算机上进行了更改,如果
我试图将路径保存到共享对象中,但没有成功,伙计们?
很抱歉,我没有在此处发布代码(此处的代码正在运行,现在我使用的是fileReference,但现在使用的是file class,它的工作原理很神奇,但我想问,如果我在一台计算机上进行了更改,如果使用多台计算机打开数据库,是否会保存该代码?)
让我们看看你做了什么,犯了什么错误。。任何东西我们不是说“这就是答案”的魔术师!试着使用一个对象,它可以很容易地完成任务。谢谢你的评论。我设法用file类解决了它,但需要尝试一下,看看它是否保存在多台计算机上。你为什么不使用常规表单提交到php?这是最好的设计——封装后端。在所有其他原因中,你可以看到,每当你在后端或连接上更改任何内容时,你都必须更新air应用程序,而不仅仅是php。我想尝试一下,但它有两个缺点,第一个缺点是它应该在线,而网络正在工作时是离线的,当我离线使用php时,我需要安装mySQL服务器,我不需要安装,因为它将是复杂的安装,我希望它非常简单
import flash.filesystem.File;
import flash.net.SharedObject;
import flash.net.FileReference;
import flash.events.Event;
import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.data.SQLResult;
import flash.data.SQLSchema;
import flash.errors.SQLError;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.data.SQLMode;
var myDatabase: File = new File();
var dbFilter: FileFilter = new FileFilter("Database", "*.db");
var connection: SQLConnection = new SQLConnection();
var setting: SharedObject = SharedObject.getLocal("shardd");
if (setting.data.firstRun == undefined) {
setting.data.firstRun = 0;
trace("First Run");
chooseDatabaseLocation();
} else {
trace("Not First Run");
//setting.data.firstRun = 0;
myDatabase.nativePath = setting.data.databaseFile;
openDatabase();
}
function chooseDatabaseLocation() {
myDatabase.browseForOpen("Open Database", [dbFilter]);
myDatabase.addEventListener(Event.SELECT, databaseSelected)
}
function databaseSelected(Event) {
trace("databaseSelected");
setting.data.databaseFile = myDatabase.nativePath;
openDatabase();
}
function openDatabase() {
trace("openDatabase: "+myDatabase.nativePath);
connection = new SQLConnection();
connection.addEventListener(SQLEvent.OPEN, loadInfo);
connection.openAsync(myDatabase, SQLMode.UPDATE);
}
function loadInfo(SQLEvent):void
{
trace("loadInfo");
var stat:SQLStatement = new SQLStatement();
stat.sqlConnection = connection;
stat.text = "SELECT id, direct FROM general_info WHERE id=1";
stat.execute(-1, new Responder(showInfo));
}
function showInfo(evt:SQLResult){
trace("showInfo");
if (evt.data != null)
{
direct_txt.text = evt.data[0].direct;
}else{
direct_txt.text = "No data";
}
}