Actionscript 3 从AS3中的网络路径加载数据库文件

Actionscript 3 从AS3中的网络路径加载数据库文件,actionscript-3,networking,air,Actionscript 3,Networking,Air,我正在AdobeAIR上做一个项目,关于在牙科中心保存患者数据和他们的所有记录,我想在第一次打开程序时,在主计算机和同一网络上的其他计算机上创建数据库,询问数据库的路径,打开它并保存它的位置,当我第二次打开程序时,它会通过网络自动打开数据库,而不询问路径我试图将路径保存到共享对象中,但没有成功,伙计们? 很抱歉,我没有在此处发布代码(此处的代码正在运行,现在我使用的是fileReference,但现在使用的是file class,它的工作原理很神奇,但我想问,如果我在一台计算机上进行了更改,如果

我正在AdobeAIR上做一个项目,关于在牙科中心保存患者数据和他们的所有记录,我想在第一次打开程序时,在主计算机和同一网络上的其他计算机上创建数据库,询问数据库的路径,打开它并保存它的位置,当我第二次打开程序时,它会通过网络自动打开数据库,而不询问路径
我试图将路径保存到共享对象中,但没有成功,伙计们?
很抱歉,我没有在此处发布代码(此处的代码正在运行,现在我使用的是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";
    }
}