【问题标题】:Faulty sha() function in FireDAC in combination with the '!' characterFireDAC 中的错误 sha() 函数与“!”结合使用特点
【发布时间】:2014-10-13 04:49:18
【问题描述】:

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

'd68c15248886d3eb551990298ab1f99db788365a'

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

'd41ff23e0e6147a8fd2722f68e53f993a92784b0'

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

【问题讨论】:

    标签: mysql delphi delphi-xe4 firedac


    【解决方案1】:

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

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

    【讨论】:

    • 你也可以逃避它们。但是当你使用参数时,就不会发生这样的事情了。
    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多