いつも大変お世話になります。
環境
DelphiXE2
DB2 V9.7
Windows7 x64
現在上記環境にて、DBXPRESSを用いたDB2接続サンプルを下記のように作成しました。
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConnection1.Close;
SQLConnection1.Params.Values['User_Name'] :='db2admin';
SQLConnection1.Params.Values['Password'] := 'XXXXXXX';
SQLConnection1.Params.Values['Database'] :='SAMPLE';
SQLConnection1.open;
end;
すると下記のようなエラーが発生し、つづいてアドレス違反となってしまいます。
---------------------------
デバッガ例外通知
---------------------------
プロジェクト sample.exe は例外クラス TDBXError (メッセージ '手続き DBXRow_GetUInt8 が見つかりません')を送出しました。
---------------------------
ちなみに、TSQLConnectionのプロパティに直接値を記述し、Connected を Trueにした場合はエラーが発生しません。
また、Delphi2007で同様の配置、コーディングを行うと、エラーが発生せず、正常に接続ができているようです。
同様の状態に直面した方や、解決方法をご存知の方がいらっしゃいましたら、情報いただけますと幸いです。
よろしくお願いいたします。
2010のQCですが、ドライバDLLのバージョンが古いと同じエラーが出るみたいですね。
ttp://qc.embarcadero.com/wc/qcmain.aspx?d=77519
DB2だとdbxdb2.dllてDLLになるみたいなのでsystem32等に古いバージョンのdbxdb2.dllが無いか調べて見てはどうでしょう?
auさん
さっそくのご回答、ありがとうございます。
ご指摘の通り、SysWOW64フォルダに古いdll(2007年当時)が配置されていました。
こちらを退避しました所、接続が可能になりました!
素早いご回答に感謝いたします。
本当にありがとうございました。
ツイート | ![]() |