我正在使用DelphiXE4,FireDAC组件(V8.0.5.3365)和MySQL哈希函数sha()有问题。
例如,当我使用sha('testtest1!')时在MySQL服务器上的普通数据库工具中,结果是
'd68c15248886d3eb551990298ab1f99db788365a'
当我使用FireDAC TADQuery函数中的相同哈希函数时,结果是:
'd41ff23e0e6147a8fd2722f68e53f993a92784b0'
只有哈希字符串包含“!”时才会发生这种不同的输出,否则哈希字符串相同。
我做错什么了吗??
最佳答案
我在这里找到了答案:
http://docwiki.embarcadero.com/Libraries/XE7/en/FireDAC.Stan.Option.TFDResourceOptions.MacroExpand
目标DBMS使用'!'在它自己的SQL方言和FireDAC中,“&”符号不能将它们识别为SQL构造,因此您必须进入TADQuery ResourceOptions并将MacroExpand设置为False,然后它才能工作。
关于mysql - FireDAC中的sha()函数与“!”结合使用时出错字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26333047/