SQLite3 AttachDatabase命令不起作用

时间:2012-03-20 17:13:23

标签: c# database sqlite unity3d

我正在尝试连接Unity3d项目中的两个SQLite数据库,但我遇到了一些麻烦。

我的数据库路径和文件名是正确的(检查并确认),我可以分别从每个数据库中查询/插入/ etc ....但是,当我运行ATTACH命令时,它会返回一个错误,指出我的SQL逻辑无效。我查看了许多参考资料和示例,所有这些都表明我的命令应按预期运行。

以下是一些相关代码:

//open TEMP database
DBAccess.OpenOrCreateDB("/Resources/Data/SaveGames/" + GameController.user.username +   
    "/", GameController.user.username + "_TEMP");

//attach SAVEGAME database and transfer data from TEMP database
DBAccess.NonQuery("ATTACH DATABASE '" + Application.dataPath + "/Resources/GameData/" 
    + GameController.user.username + "/" + GameController.user.username + DBAccess.DBEXT 
    + "' AS LOAD_DB;");

//copy records from TEMP database to save game database
//(omitted because not relevant to issue)    

//detach SAVEGAME database
DBAccess.NonQuery("PRAGMA LOAD_DB.journal_mode=delete; DETACH DATABASE LOAD_DB;");  

//close database
DBAccess.CloseDB();

这样做的目的是将游戏中的变化数据库复制到玩家的保存游戏数据库文件中。

我的错误调试打印出以下内容:

DBAccess -- Cannot perform command with statement: <ATTACH '/Users/scottwindsor/ADITL/
Assets/Resources/GameData/New User/New User.db' AS LOAD_DB;>

看起来我的SQL命令应该可行......任何帮助都会受到赞赏。

技术规格:

  • 平台:OSX(Lepoard,我认为)
  • 编译器:Unity3D(游戏引擎)
  • 语言:C#
  • SQL:SQLite3.dll
  • 使用IDBCommand.ExecuteNonQuery()将非查询命令发送到数据库。
  • 使用IDBCommand.ExecuteReader()将所有其他命令/查询发送到数据库。

0 个答案:

没有答案