检查在ODB安装驱动程序,您必须检查这个注册表键
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
从那里你可以很容易地编写一个Delphi函数来检测是否安装MySQL的ODBC驱动程序
{$APPTYPE CONSOLE}
uses
Windows,
Classes,
Registry,
SysUtils;
function ODBC_DriverInstalled(const DriverName:string) : Boolean;
Var
Reg : TRegistry;
Providers: TStrings;
i : Integer;
begin
Reg:=TRegistry.Create;
Result:=False;
try
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly('SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers') then
begin
Providers:=TStringList.Create;
try
Reg.GetValueNames(Providers);
for i := 0 to Providers.Count-1 do
begin
if CompareText(DriverName,Providers[i])=0 then
begin
Result:=True;
Break;
end;
end;
finally
Providers.Free;
end;
end;
finally
Reg.Free;
end;
end;
begin
try
Writeln(ODBC_DriverInstalled('MySQL ODBC 5.1 Driver'));
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.
要安装,您可以使用几个选项之一inno setup
(它可以读取Windows注册表,以检查odbc驱动程序),然后安装包含在安装文件内的驱动程序。还可以使用简单的HTTP GET从应用程序直接从应用程序中下载驱动程序,并通过一个下载地址位于:here
一次问题比多个问题要好。对于易于学习的安装程序,请查看InnoSetup,如果您想要在没有安装程序的情况下运行,您可能会看到有关将您的运行时DLL嵌入到主要可执行文件中的资源的问题,如果它们可以解压并设置,需要。 –
+1 thnaks。同意,这可能应该是我的问题。但是OSBC驱动程序不是DLL ......我仍然不确定如何安装它。也许我应该问如何在这里检测它,因为我想从Delphi和Ank如何在MySql论坛上安装它。感谢您的帮助 – Mawg
当然,您可以使用MSI或其他类似形式的MySQL连接器/ ODBC的可再发行形式? –