问题标签 [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.
mysql - FireDAC 中的错误 sha() 函数与“!”结合使用 特点
我正在使用 Delphi XE4,但 FireDAC 组件 (V8.0.5.3365) 和 MySQL 哈希函数sha()存在问题。例如,当我在 MySQL 服务器上的普通数据库工具中使用sha('testtest1!')时,结果是
' d68c15248886d3eb551990298ab1f99db788365a '
当我使用 FireDAC TADQuery 函数中的相同哈希函数时,结果是:
' d41ff23e0e6147a8fd2722f68e53f993a92784b0 '
这种不同的输出仅在散列字符串包含“!”时发生,否则散列字符串是相同的。有什么我做错了吗?
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
mysql - 如何使用 Delphi XE 6 将多条记录附加到表中?
我正在使用 Delphi XE 6、FireDAC 和 MySQL 5.6
我的 FORM 有一个 TABSHEET 存储客户记录的许多 TDBEDIT 字段。
CUSTOMER 表是 TFDTABLE。这些 TDBEDIT 字段将使用与该 CUSTOMER 表相关的数据源。
要附加新的客户记录,逻辑是:
- 调用 CUSTOMER 表 APPEND
- 那些 TDBEDIT 字段将为空白。用户可以输入。
- 用户可以单击 CANCEL 按钮取消此添加
- 用户可以点击 OK 按钮确认添加新记录。然后,调用 CUSTOMER 表 POST
我想要 5 个标签页,以便用户最多可以输入 5 个客户记录。然后,单击 OK 按钮将这 5 条记录添加到 CUSTOMER 表中。
我怎样才能做到这一点?
使用现有逻辑,我必须为同一个远程物理 MySQL 客户表使用 5 个 TFDTABLE。
这似乎效率不高,尤其是当客户表很大时。
然后,我必须为每个 TFDTABLE 使用 5 个数据源,以便 5 个 TDBEDIT 字段集中的每一个都可以使用一个数据源。
然后,调用 5 TFDTABLE APPEND 方法在每个标签页中创建 5 组空白 TDBEDIT 字段...等...等...
这种方法似乎有点愚蠢,还有其他方法吗?
sql-server - Delphi EMS FireDAC:如何使用 EMS 将参数从客户端传递到服务器?
我正在使用EMS
Delphi 中的简单客户端服务器应用程序(即:用于未来的 iOS 应用程序)。
在客户端单元上,我有EMSProvider
并且EMSFireDACClient
它通过数据源从数据库(MSSQL)中获取数据。
在服务器单元上,我拥有FDConnection
并TFDQuery
处理我的数据库。到目前为止,一切正常。
问题:现在我需要将一些参数从客户端传递到服务器并获取结果数据。我应该如何使用EMS
?中的任何功能或程序EMS
?
关于源代码,一切都由相应的组件处理。所以编码部分非常少。
提前致谢。
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 的任何类。
我希望我能够足够清楚地描述我的问题。任何帮助,将不胜感激。
sqlite - SQLite FireDAC 尾随空格
我正在使用 Delphi XE7 和 FireDAC 来访问 SQLite。
当我将数据放入 TEXT 字段时,任何尾随空格或 #0 字符都会被截断。
我可以在 SQLite 或 FireDAC 中进行更改以保留尾随空格吗?
sql-server - Delphi EMS FireDAC:无法打开数据集 [FDMemTable]
我正在使用 Delphi 中的 EMS(即:用于未来的 iOS 应用程序)的简单客户端服务器应用程序。
这个问题是我上一个问题的延续,但有一个不同的错误。
这是我之前的问题,有不同的问题,我遵循了 Marco 给出的建议。
问题:现在当我将参数从客户端传递到服务器时出现错误。
因此,我有一个带有 Param的 TFDMemTable 属性 (DatSTableName: QRowParam ) 的Image1,这会引发错误。
因此,我有一个不带参数的 TFDMemTable 属性(DatSTableName: QRows )的Image2,它可以工作。
问题: 如果我使用从客户端到服务器的通用调用,它可以工作并且我得到了所有数据。其中我使用了没有参数 TFDQuery 的Image2 TFDMemTable。但是,如果我将参数从客户端传递到服务器,则会在客户端出现错误,其中我使用了带有参数 TFDQuery 的Image1 TFDMemTable。
任何人都可以建议我,我应该如何进一步解决这个问题?
提前致谢。
delphi - 为什么 TFDMemTable 比 TClientDataSet 慢?
Embarcadero 官方说“TFDMemTable 比 TClientDataSet 快”,但是我做了一点速度测试,TFDMemtable 比 TClientDataset (Delphi XE7) 慢。
这是测试结果截图:
这是测试应用程序源。
sqlite - FireDAC:节省 SQLite DB 的时间
我是 FireDAC 的新手,遇到了问题。我想在 Delphi XE7 中使用 FireDAC 读写 SQLite 数据库。我尝试过的大多数方法都有效,但是我在将 TTime 保存到 SQLite DB 时遇到了问题。
这有效:
这不会:
为什么?第一个字段是“REAL”,第二个字段是“NUMERIC”,如下所述:https ://www.sqlite.org/datatype3.html
谢谢,卢马
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 个小时来解决这个问题,但没有成功。
任何帮助是极大的赞赏。