问题标签 [dbexpress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
17574 浏览

mysql - 无法加载 libmysql.dll

我第一次尝试使用 dbexpress 组件连接到 mysql

我收到了这个错误

连接失败:无法加载 libmysql.dll

我的德尔福版本:德尔福7

mysql 5.1.36(安装在我的 Windows 上的 wamp 服务器)。

任何人都可以帮助我吗

提前致谢

0 投票
1 回答
305 浏览

delphi - 使用 Firebird 让 DBX 识别布尔值

Firebird 常见问题解答解释了如何创建 BOOLEAN 域。可能最有趣的部分在最后,它说:

如果您在 .Net 下使用 OleDB 之类的连接库,则可以覆盖 OleDB 提供程序的 GetSchema 方法,因此您从查询中获得的 DataTables 具有本机 .Net 布尔值。

有什么办法可以用 DB Express 做到这一点?我正在使用来自http://sites.google.com/site/dbxfirebird/的 DBX 驱动程序,能够在我的数据集中取回 TBoleanField 实例而不是 TSmallintField 肯定会很好。

0 投票
1 回答
3204 浏览

delphi - 如何在 DBExpress 中进行多事务

我正在将 DBExpress 与 blackfish 一起使用。

如何进行多笔交易?

我有几个 GRID 都在一次编辑中,所有的都必须一次保存。开始编辑和发布是由最终用户决定的,因为他工作,并且在应用程序的不同位置,因此很难在一次事务中完成。

更新:

好的,问题是应用程序同时工作,我必须尽快提交新数据,以便其他用户可以访问它。

因此,网格信息将在发布后不久提交,或者与发布一起提交。

0 投票
2 回答
619 浏览

sql - 如何让 DBX 知道在 ApplyUpdates 期间不应更新来自联接的字段?

我有一些代码可以在网格上构建房间地图(图表),并在它们之间建立链接。它存储在 Firebird 数据库中,其中一个表中的房间和另一个表中的链接。数据通过 DB Express TSimpleDataset 数据集进行管理。

出口(链接)表的查询如下所示:

问题是,当我添加一个新出口并调用 ApplyUpdates 时,DBX 的 SQL 解析器似乎不理解 ROOMS 表中的字段只是为了方便而不是原始表的一部分。它生成以下内容:

加上适当的参数,具有可预测的结果。有谁知道我怎样才能理解不应该插入或更新 Xs 和 Ys?

0 投票
4 回答
2653 浏览

delphi - Microsoft Access 的 dbExpress 驱动程序

作为一个 dbExpress 新手,我想知道是否有 Microsoft Access 的 dbExpress 驱动程序?

0 投票
1 回答
4172 浏览

delphi - 如何将所有 TClientDataSet 记录标记为已插入?

我有一个复杂的事务,它将来自多个 TClientDataSets 的数据保存在数据库中。

其中一个 ClientDataSet 总是将数据附加到底层表,例如。生成 INSERT 语句,无论现有记录来自何处。

我现在强制插入:

有没有更简单的方法可以将所有记录标记为已插入?

0 投票
8 回答
4362 浏览

database - 数据库连接 Delphi

我使用 delphi 多年,但从未用于数据库,但最近开始研究和测试。

我必须说,我印象深刻,大多数事情都是自动发生的,我习惯于用 php 和 python 手动编写。

我要为朋友开发一个商业系统,(2 层)5 台用户计算机,1 台数据库服务器。

数据库服务器将是一台不错的机器,运行 (raid-1) 2 个硬盘驱动器(MySql5.1 或 Postgre 或 Firebird,欢迎提出建议)。

ADO

  • 便于使用
  • 易于部署(仅 mysqlconnector 安装程序)
  • 越慢?

数据库快递

  • 需要运送 4 个文件 [dbxconnections.ini, dbxdrivers.ini, mysqldll, driverdll]
  • 更复杂(更难使用)
  • ClientDataSet 增加了复杂性,但看起来真的很有用
  • 没有免费的 Postgre 驱动程序?

宙斯

  • 易于部署 (1 dll)
  • 便于使用

如您所见,所需的功能是:

  • 快速地
  • 便于使用
  • 易于部署

我无法在真实场景(客户端,服务器)中测试所有内容,所以我希望有经验的你们可以帮助我选择哪一个以及为什么。

编辑:谢谢大家,我想我会选择 ADO(可能)或 Zeos

提前感谢
亚瑟

0 投票
1 回答
1171 浏览

delphi - 如何安装 DBMonitor

这可能是一个非常简单的问题,但在这里。我刚刚更新了用于 Firebird 的 DevArt DBExpress 驱动程序的许可证。帮助文件说我可以使用他们的免费软件 DBMonitor 应用程序,但由于我使用的是 D2006,我必须使用这些说明:

“如果您是 Delphi Pro 版用户,那么您没有在调色板中安装 TSQLMonitor 组件,但它包含在 SQLExpr.pas 单元中,您需要手动将其安装到组件调色板中。”

我可以在代码中创建一个 TSQLMonitor 实例,对其进行配置并使用它,但是如果我确实想将它放在我的调色板上,我该怎么做呢?我想我可以将它放入它自己的单元并将其添加到 dcluser 包中,但这是我应该做的吗?

谢谢你的帮助。

0 投票
8 回答
3518 浏览

delphi - Delphi dbExpress 和 Interbase:UTF8 迁移步骤和风险?

目前,我们的数据库使用 Win1252 作为唯一的字符编码。我们很快将不得不在数据库表中支持 Unicode,这意味着我们必须为四个数据库和大约 80 个在内部 24/7 环境中运行的 Delphi 应用程序执行此迁移。对于 Delphi 应用程序是否有将数据库迁移到 UTF-8(或 UNICODE_FSS)的建议?下面列出了一些问题。非常感谢您的回答!

  • 是否有工具可以通过转储数据、使用 UNICODE_FSS 或 UTF-8 重新创建数据库并重新加载数据来帮助迁移现有数据库(大小在 250 MB 和 2 GB 之间,没有 Blob 字段)?
  • Delphi 2009、dbExpress 和 Interbase 7.5是否存在与 Unicode 字符集相关的已知问题?
  • 您会建议先将数据库升级到Interbase 2009吗?(此升级已计划,但优先级不高)
  • 我们可以简单地迁移数据库并且 Delphi 将自动处理 Unicode 字符集,还是我们也必须更改每个 Datamodule(dfm 和源代码)中的所有字符字段类型?
  • 您建议采用哪种策略与现有应用程序的正常开发和维护并行进行迁移?该应用程序在内部运行,因此开发和数据库管理在内部完成。

更新:来自 InterBase 论坛主题:InterBase 中的 Unicode 数据库 - 真的吗?(这不是我的主题,但它表明 InterBase XE 中仍然存在一些问题)。

以下是我提交的一些报告: QC#92867 - 仅当视图包含联合并且使用 ClientDataSet 时,来自视图的字符串字段为空白。在我的一些报告中发现这是缺少数据,这些报告不再有效。

QC#91494 - IB 字符列数据字符字段(例如:Char(1))在通过存储过程检索时用空白填充。测试失败 - 例如:如果 Active = "Y"。我大量使用带有表单的存储过程,但这些都不起作用。

QC#91355 - IBSqlMonitor 失败。IBSqlMonitor 的输出有些乱码,使得这个工具毫无用处。(所以,连我的铲子都坏了!)

未报告 - TClientDataSet 中的持久字段对于 TWideString 失败。

其他相关QC条目:

QC#94455 SQL Unicode 字符类型失败(InterBase XE)

0 投票
2 回答
550 浏览

.net - 在 Visual Studio 中调试和不调试时,.NET 程序的行为有何不同?

在关闭我的 .NET 应用程序时,我在 DBEXPSDA40.DLL(Dev Art MS SQL Server dbexpress 驱动程序)中遇到访问冲突。我的应用程序 (VB.NET) 调用一个 Delphi 编写的 COM Server,它使用 dbexpress 连接到 SQL Server。

如果我做同样的事情,但我的主机应用程序是本机 Delphi 应用程序或 Excel VBA,那么我看不到 A/V。如果我在带有调试的 VS IDE 中运行 VB.NET 应用程序,我也看不到它。

我已经在 dbexpress 单元中将 A/V 跟踪到一个 finalization 子句,该子句负责关闭驱动程序(在本例中是两个,一个用于 SQL Server,另一个用于 SQL Server Compact)

如果我能弄清楚在 .NET 环境中进行调试和不进行调试之间的区别,我或许可以知道在哪里进一步研究。