2

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

' d68c15248886d3eb551990298ab1f99db788365a '

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

' d41ff23e0e6147a8fd2722f68e53f993a92784b0 '

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

4

1 回答 1

1

我在这里找到了答案:http: //docwiki.embarcadero.com/Libraries/XE7/en/FireDAC.Stan.Option.TFDResourceOptions.MacroExpand

目标 DBMS 在其自己的 SQL 方言中使用 '!'、'&' 符号,FireDAC 无法将它们识别为 SQL 构造,因此您必须进入 TADQuery ResourceOptions 并将 MacroExpand 设置为 False 才能正常工作。

于 2014-10-13T08:30:50.347 回答