FireDAC中的sha()函数错误与“'!'字符

时间:2014-10-13 04:49:18

标签: mysql delphi delphi-xe4 firedac

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

'的 d68c15248886d3eb551990298ab1f99db788365a '

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

'的 d41ff23e0e6147a8fd2722f68e53f993a92784b0 '

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

1 个答案:

答案 0 :(得分:1)

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

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