我使用的是Delphi XE4,FireDAC组件(V8.0.5.3365)和MySQL哈希函数sha()有问题。例如,当我在sha('testtest1!')服务器上的普通数据库工具中使用MySQL时,结果是
'd68c15248886d3eb551990298ab1f99db788365a‘
当我使用来自FireDAC TADQuery函数的相同哈希函数时,结果是:
'd41ff23e0e6147a8fd2722f68e53f993a92784b0‘
这种不同的输出只在散列字符串包含'!‘时发生,否则哈希字符串是相同的。我做错什么了吗??
发布于 2014-10-13 08:30:50
我在这里找到了答案:http://docwiki.embarcadero.com/Libraries/XE7/en/FireDAC.Stan.Option.TFDResourceOptions.MacroExpand
目标DBMS使用它自己的SQL方言中的'!‘、& '&’符号,FireDAC不能将它们识别为SQL结构,因此您必须进入TADQuery ResourceOptions并将MacroExpand设置为False,这样它才能工作。
https://stackoverflow.com/questions/26333047
复制相似问题