【问题标题】:Delphi current directory database is not updating Ms AccessDelphi 当前目录数据库未更新 Ms Access
【发布时间】:2016-09-01 04:00:03
【问题描述】:

我在将 DbLogSystem.mdb 连接到我的程序时遇到问题。

1) 当我尝试使用该程序插入/更新记录时,它将继续并成功执行, 2) 当我尝试使用 MS Access 重置/删除所有记录时,它将继续, 但是当我运行我的程序时,数据/记录仍然存在。

可能的错误是什么?

提前致谢。

以下是可能导致问题的连接字符串:

mydir := GetCurrentDir;
ADOConnection_get_data.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=puzzle33;Data Source='+ mydir +'\DbLogSystem.mdb;Persist Security Info=False';

或者有什么方法可以将我的 .exe 程序链接到具有相同路径文件夹的数据库?

【问题讨论】:

  • exe 文件位于 Win32\Debug 文件夹中吗?可能你有两个数据库,一个在项目“根”文件夹(位于源文件的位置),另一个在 Win32\Debug 文件夹中?
  • 我把它和exe放在同一个文件夹里。

标签: delphi ms-access


【解决方案1】:

我相信您可以只使用相对路径来始终将您的 .exe 程序与同一文件夹中的数据库链接

ADOConnection_get_data.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=puzzle33;Data Source=.\DbLogSystem.mdb;Persist Security Info=False'

正如 Zam 所说,检查您没有在 Release 和 Debug 文件夹中使用两个不同的数据库。

另外,您确定要提交更改吗?您可能正在使用 CommitUpdates(因此您的更改永远不会真正到达数据库),或者您可能有一个从未提交的活动事务(因此当您退出应用程序时它会回滚)。

【讨论】:

  • 我将数据库放在exe的同一个文件夹中。并使用您给定的代码。我使用访问手动删除记录但没有生效..这个问题的建议方法是什么?再次感谢您。
  • 您没有收到任何错误?,您只是不断看到从 Access 中删除的记录?。在这种情况下,您可能没有任何错误,但您在 Access 和 Delphi 上使用两个不同的数据库(请记住,Delphi 创建了 Release 和 Debug 文件夹,您的应用程序在此处加载数据库)。此外,您可能正在删除这些记录,但在 Delphi 上看不到它,因为数据已经加载,您必须刷新它。
  • 基本上,如果您的应用程序正在显示一个表格,并且您通过另一个应用程序修改了该数据,那么您需要在您的应用程序上重新加载该数据以查看差异(在您的应用程序上调用 refresh 方法)数据集)。
猜你喜欢
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
相关资源
最近更新 更多