2

Delphi XE4 を使用していますが、FireDAC コンポーネント (V8.0.5.3365) と MySQL ハッシュ関数sha()に問題があります。たとえば、MySQL サーバーの通常のデータベース ツールでsha('testtest1!')を使用すると、結果は次のようになります。

d68c15248886d3eb551990298ab1f99db788365a

FireDAC TADQuery 関数から同じハッシュ関数を使用すると、結果は次のようになります。

d41ff23e0e6147a8fd2722f68e53f993a92784b0

この異なる出力は、ハッシュされた文字列に「!」が含まれている場合にのみ発生します。それ以外の場合、ハッシュされた文字列は同じです。私が間違っていることはありますか??

4

1 に答える 1

1

ここで答えを見つけました: http://docwiki.embarcadero.com/Libraries/XE7/en/FireDAC.Stan.Option.TFDResourceOptions.MacroExpand

ターゲット DBMS は独自の SQL 方言で「!」、「&」記号を使用し、FireDAC はそれらを SQL 構造として認識できないため、TADQuery ResourceOptions に移動し、MacroExpand を False に設定する必要があります。

于 2014-10-13T08:30:50.347 に答える