我正在维护一个使用SQLite3数据库的现有flex桌面应用程序。我是Flex编程的新手。 数据库最初有一些测试值,我通过删除导入具有相同表名的新数据的现有表来更改。 现在,一旦我运行应用程序,我仍然会看到旧数据,并且在检查数据库表时,在那里找到测试值并且新值已经消失。 我检查了代码是否有任何insert或import语句但找不到。有人遇到过类似的问题吗?是因为数据库缓存,如果是,那么如何清除此缓存?什么可能是这个奇怪问题背后原因的暗示?
答案 0 :(得分:0)
Flex创建一个位置以在机器中本地保存数据。在我的机器中,路径位于我的用户ID AppData \ Roaming \ ProjectName \ Local Store \ Database \ dbname.db
我的代码负责人(第9行,dbWorkFile变量):
public function SQLCon(strQuery:String):SQLResult
{
try
{
var dbStatement:SQLStatement = new SQLStatement();
var dbFile:File = File.applicationDirectory.resolvePath("DataBase/question.db"); //file in the compiled folder
var dbWorkFile:File = File.applicationStorageDirectory.resolvePath("DataBase/question.db");//Location of roaming database
if(!dbWorkFile.exists){
dbFile.copyTo(dbWorkFile);
}
conn = new SQLConnection();
conn.open(dbWorkFile);
....
为了面对类似鬼问题的人的利益而留下这个答案:)