在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
或其他相关对象是否仍处于活动状态?是的,我希望它在连接关闭时自动关闭,但我会尝试一下。谢谢你的主意。