Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sqlite/delphi中切换连接中的数据库文件需要做什么_Sqlite_Delphi_Firedac - Fatal编程技术网

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

在sqlite/delphi中切换连接中的数据库文件需要做什么,sqlite,delphi,firedac,Sqlite,Delphi,Firedac,我希望这不是令人尴尬的用户错误,但下面是: 我想更改连接的数据库参数并重新打开它。此代码将继续显示(并允许编辑)原始表连接,而不是刷新。有什么“刷新”或刷新我必须打电话吗 dmMain.conMain.close; dmMain.conMain.Params.Values['Database'] := secondDatabase; dmMain.conMain.Open; dmMain.tblTimings.Active := true; 随后我尝试了conMain.Connected:=f

我希望这不是令人尴尬的用户错误,但下面是:

我想更改连接的数据库参数并重新打开它。此代码将继续显示(并允许编辑)原始表连接,而不是刷新。有什么“刷新”或刷新我必须打电话吗

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

随后我尝试了conMain.Connected:=false,但没有效果。

根据Delphi文档,您需要将第二个数据库附加到现有连接上

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB');
要删除数据库,请使用
DETACH

这里有完整的文档:

这不应该发生(所有链接的数据集都应该关闭),所以我称之为bug(您在代码中做得很好)。请参见方法说明:

t自定义连接。关闭

关闭连接

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB');
调用Close以断开与数据库远程源的连接 信息在停用连接组件之前,所有 关联的数据集已关闭。调用Close与设置相同 连接的属性为false

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

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB');
注意:如果先前活动的连接关闭后重新打开, 必须单独重新打开任何相关数据集;重新开放 连接不会自动重新打开关联的数据集


非常感谢。我读到的文档是关于同时访问多个数据库的,虽然我正在尝试替换主数据库,但我会尝试一下!
tblTimings
或其他相关对象是否仍处于活动状态?是的,我希望它在连接关闭时自动关闭,但我会尝试一下。谢谢你的主意。