【发布时间】:2016-10-06 11:45:41
【问题描述】:
我正忙于一个项目,其中数据库必须以这样的方式嵌入,如果它应该被复制到任何计算机上,您可以运行它而无需再次建立与数据库的连接。我试过这个:
path:=extractFilePath('MEDA_p.exe');
dmMEDA.conMeda.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0; Data Source= '+path+'dbMEDA.accdb; Persist Security info=false';
dmMEDA.conMeda.Connected:=true;
但不断收到“堆栈溢出”错误。或者如果我这样做:
dmMeda.conMEDA.open;
path:=extractFilePath('MEDA_p.exe');
dmMEDA.conMeda.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0; Data Source= '+path+'dbMEDA.accdb; Persist Security info=false';
dmMEDA.conMeda.Connected:=true;
dmMEDA.conMeda.close;
我得到“对象打开时不允许操作”。
有什么帮助吗?
更新:
我已经尝试了一些建议,例如添加双引号并使用连接并将其设置为 false,然后再设置为 true,但是当我尝试使表(活动)为 true 时,我得到另一个“堆栈溢出错误”
dmMEDA.tbllogs.Active:=true;
我该怎么办?
【问题讨论】:
-
你在IDE中打开连接了吗?如果是这样,请在运行程序之前在 IDE 中将其设置为 active = false。
-
我不知道那个路径变量是干什么用的,但是如果你打算将它用作可写数据的路径,那就是等待发生的意外。不要假设您可以写入应用所在的文件夹。
标签: delphi