このコードを 32 ビットの Delphi アプリケーションで実行すると、MySql への接続が正常に確立されます。
{$APPTYPE CONSOLE}
{$R *.res}
uses
AdoDb,
ActiveX,
SysUtils;
Var
LConn : TADOConnection;
begin
try
CoInitialize(nil);
try
LConn:=TADOConnection.Create(nil);
try
LConn.ConnectionString:='Driver={MySQL ODBC 5.1 Driver};Server=127.0.0.1;Database=mysql;User=*****; Password=*****;Option=3';
LConn.Connected:=True;
Writeln('Connected');
finally
LConn.Free;
end;
finally
CoUninitialize;
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.
しかし、同じコード コードはこの例外で失敗します
EOleException: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません
コードが 64 ビット アプリケーションとしてコンパイルされている場合。問題は、なぜ同じコードが 64 ビット アプリケーションで失敗するのかということです。