在sqlite / delphi中连接切换数据库文件需要做些什么

时间:2016-08-12 01:37:59

标签: sqlite delphi firedac

我希望这不是一些令人尴尬的用户错误,但这里有:

我想更改连接的数据库参数并重新打开它。此代码继续显示(并允许编辑)原始表连接而不是刷新。是否有某种'冲洗'或刷新我必须打电话?

dmMain.conMain.close;
dmMain.conMain.Params.Values['Database'] := secondDatabase;
dmMain.conMain.Open;
dmMain.tblTimings.Active := true;

我随后尝试了conMain.Connected:= false无效。

2 个答案:

答案 0 :(得分:1)

这不应该发生(所有链接的数据集都应该关闭),所以我称之为一个错误(你在代码中正确地做到了)。请参阅Close方法说明:

  

<强> TCustomConnection.Close

     

关闭连接。

     

调用“关闭”以断开与远程数据库源的连接   信息。在取消激活连接组件之前,全部   相关数据集已关闭。调用关闭与设置相同   Connected属性为false。

     

在大多数情况下,关闭连接会释放分配的系统资源   连接。

     

注意:如果先前活动的连接已关闭然后重新打开,   必须单独重新打开任何关联的数据集;重新开放   连接不会自动重新打开关联的数据集。

答案 1 :(得分:-3)

根据Delphi文档,您需要ATTACH第二个数据库到现有连接。

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB');

要删除数据库,请使用DETACH

完整文档在此处:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_SQLite_with_FireDAC