问题标签 [firedac]

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 投票
1 回答
102 浏览

mysql - FireDAC 中的错误 sha() 函数与“!”结合使用 特点

我正在使用 Delphi XE4,但 FireDAC 组件 (V8.0.5.3365) 和 MySQL 哈希函数sha()存在问题。例如,当我在 MySQL 服务器上的普通数据库工具中使用sha('testtest1!')时,结果是

' d68c15248886d3eb551990298ab1f99db788365a '

当我使用 FireDAC TADQuery 函数中的相同哈希函数时,结果是:

' d41ff23e0e6147a8fd2722f68e53f993a92784b0 '

这种不同的输出仅在散列字符串包含“!”时发生,否则散列字符串是相同的。有什么我做错了吗?

0 投票
5 回答
9499 浏览

mysql - 使用参数 Delphi XE7 Firedac

这里的任何帮助都会很棒。

我正在尝试使用参数来动态更改“ORDER BY”

下面是我尝试过的代码,但尽管遵循了文档,但我仍然收到错误“[FIREDAC][PHYS][MYSQL] You have an error in your SQL syntax ... near "ORDER BY some_field" at line 4'

我已将 ParamCreate 设置为 True

我的数据库是 MySQL

0 投票
0 回答
1101 浏览

mysql - 如何使用 Delphi XE 6 将多条记录附加到表中?

我正在使用 Delphi XE 6、FireDAC 和 MySQL 5.6

我的 FORM 有一个 TABSHEET 存储客户记录的许多 TDBEDIT 字段。

CUSTOMER 表是 TFDTABLE。这些 TDBEDIT 字段将使用与该 CUSTOMER 表相关的数据源。

要附加新的客户记录,逻辑是:

  1. 调用 CUSTOMER 表 APPEND
  2. 那些 TDBEDIT 字段将为空白。用户可以输入。
  3. 用户可以单击 CANCEL 按钮取消此添加
  4. 用户可以点击 OK 按钮确认添加新记录。然后,调用 CUSTOMER 表 POST

我想要 5 个标签页,以便用户最多可以输入 5 个客户记录。然后,单击 OK 按钮将这 5 条记录添加到 CUSTOMER 表中。

我怎样才能做到这一点?

使用现有逻辑,我必须为同一个远程物理 MySQL 客户表使用 5 个 TFDTABLE。

这似乎效率不高,尤其是当客户表很大时。

然后,我必须为每个 TFDTABLE 使用 5 个数据源,以便 5 个 TDBEDIT 字段集中的每一个都可以使用一个数据源。

然后,调用 5 TFDTABLE APPEND 方法在每个标签页中创建 5 组空白 TDBEDIT 字段...等...等...

这种方法似乎有点愚蠢,还有其他方法吗?

0 投票
1 回答
1523 浏览

sql-server - Delphi EMS FireDAC:如何使用 EMS 将参数从客户端传递到服务器?

我正在使用EMSDelphi 中的简单客户端服务器应用程序(即:用于未来的 iOS 应用程序)。

在客户端单元上,我有EMSProvider并且EMSFireDACClient它通过数据源从数据库(MSSQL)中获取数据。

在服务器单元上,我拥有FDConnectionTFDQuery处理我的数据库。到目前为止,一切正常。

问题:现在我需要将一些参数从客户端传递到服务器并获取结果数据。我应该如何使用EMS?中的任何功能或程序EMS

关于源代码,一切都由相应的组件处理。所以编码部分非常少。

提前致谢。

0 投票
1 回答
2738 浏览

mysql - FireDAC,将“secure-auth=OFF”传递给客户端库

我正在尝试使用 DelphiXE6 中的 FireDAC 从安装了 MySQL 5.6 客户端库的客户端计算机连接到不支持安全密码的旧 mysql 服务器(4.1 之前),但未成功。默认情况下,这样的连接将被客户端(而不是服务器)拒绝,并给出错误:

现在,在命令行客户端上,让它工作就像添加--skip-secure-auth参数一样简单。以下工作正常:

但是,在 FireDAC 中,我无法找到将该参数传递给客户端库的方法。将“ secure-auth=off”添加到 TFDConnection 参数不起作用,该参数将被忽略。

我确实尝试在客户端上设置 my.ini 以禁用安全身份验证,但这也没有任何效果。

在这一点上,我似乎陷入了困境。协议选项的 MYSQL_SECURE_AUTH 和 secure_auth 字段在 FireDAC.Phys.MySQLCli 中定义,但我似乎无法从 TFDConnection 转到包含 MySQLcli 的任何类。

我希望我能够足够清楚地描述我的问题。任何帮助,将不胜感激。

0 投票
1 回答
610 浏览

sqlite - SQLite FireDAC 尾随空格

我正在使用 Delphi XE7 和 FireDAC 来访问 SQLite。

当我将数据放入 TEXT 字段时,任何尾随空格或 #0 字符都会被截断。

我可以在 SQLite 或 FireDAC 中进行更改以保留尾随空格吗?

0 投票
1 回答
3348 浏览

sql-server - Delphi EMS FireDAC:无法打开数据集 [FDMemTable]

我正在使用 Delphi 中的 EMS(即:用于未来的 iOS 应用程序)的简单客户端服务器应用程序。

这个问题是我上一个问题的延续,但有一个不同的错误。

这是我之前的问题,有不同的问题,我遵循了 Marco 给出的建议。

问题:现在当我将参数从客户端传递到服务器时出现错误。

因此,我有一个带有 Param的 TFDMemTable 属性 (DatSTableName: QRowParam ) 的Image1,这会引发错误。

问题 TFDMemTable

因此,我有一个不带参数的 TFDMemTable 属性(DatSTableName: QRows )的Image2,它可以工作。

工作 TFDMemTable

问题: 如果我使用从客户端到服务器的通用调用,它可以工作并且我得到了所有数据。其中我使用了没有参数 TFDQuery 的Image2 TFDMemTable。但是,如果我将参数从客户端传递到服务器,则会在客户端出现错误,其中我使用了带有参数 TFDQuery 的Image1 TFDMemTable。

任何人都可以建议我,我应该如何进一步解决这个问题?

提前致谢。

0 投票
0 回答
4707 浏览

delphi - 为什么 TFDMemTable 比 TClientDataSet 慢?

Embarcadero 官方说“TFDMemTable 比 TClientDataSet 快”,但是我做了一点速度测试,TFDMemtable 比 TClientDataset (Delphi XE7) 慢。

这是测试结果截图:

在此处输入图像描述

这是测试应用程序源

0 投票
1 回答
975 浏览

sqlite - FireDAC:节省 SQLite DB 的时间

我是 FireDAC 的新手,遇到了问题。我想在 Delphi XE7 中使用 FireDAC 读写 SQLite 数据库。我尝试过的大多数方法都有效,但是我在将 TTime 保存到 SQLite DB 时遇到了问题。

这有效:

这不会:

为什么?第一个字段是“REAL”,第二个字段是“NUMERIC”,如下所述:https ://www.sqlite.org/datatype3.html

谢谢,卢马

0 投票
1 回答
1164 浏览

macos - 使用 FireDac 和 OSX Mavericks 连接到远程 Oracle XE11 数据库

我制作了一个小应用程序,它应该连接到在虚拟机(W8.1)中运行的远程 Oracle 数据库。

在成功的连接上,应该会弹出一个显示消息。

我按照这些步骤确保我的应用程序能够连接: 在 Mac OS/X 上安装 Oracle Instantclient 而不设置环境变量?

该应用程序使用 FireDac 的 OracleFireDAC.Phys.Oracle驱动程序进行连接和TFDGUIxLoginDialog登录。

指导错误

确实没有什么特别的:

这在 Windows 8.1 和 10 中运行良好且快速。

但是在小牛队中,我得到了OID generation failed如图所示的错误。

如果我使用虚拟机 IP 或 DNS 名称进行连接并不重要。它根本不会连接。

Oracle 的 SQL Developer 能够连接。

Oralce SQL Developer 大约需要 15 到 20 秒才能建立到数据库的连接。

我的应用程序甚至没有尝试那么长时间来连接。约 7 秒后失败。

也许在稳定的连接可用之前它会超时?

如果是这样,有没有办法在抛出错误之前延长登录过程时间?

或者这可能是一个完整的其他问题?

请注意,我花了大约 5 个小时来解决这个问题,但没有成功。

任何帮助是极大的赞赏。