我正在使用Delphi XE4并且遇到FireDAC组件(V8.0.5.3365)和MySQL哈希函数 sha()的问题。 例如,当我在MySQL服务器上的普通数据库工具中使用 sha(' testtest1!')时,结果是
'的 d68c15248886d3eb551990298ab1f99db788365a '
当我使用FireDAC TADQuery函数中的相同哈希函数时,结果是:
'的 d41ff23e0e6147a8fd2722f68e53f993a92784b0 '
这种不同的输出仅在散列字符串包含'!'时才会发生,否则散列字符串是相同的。 有什么我做错了吗?
答案 0 :(得分:1)
我在这里找到答案: http://docwiki.embarcadero.com/Libraries/XE7/en/FireDAC.Stan.Option.TFDResourceOptions.MacroExpand
目标DBMS使用'!','&'它自己的SQL方言和FireDAC中的符号无法将它们识别为SQL构造,因此您必须进入TADQuery ResourceOptions并将MacroExpand设置为False,然后才能工作。