我在想这里的客户端PC.当有人来运行我的应用程序时,他们可能没有安装MySql Connector/ODBC.
现在,我可以尝试连接信息方案(或mysql)数据库(这是更好的?) - 但是,如果失败,它可能只意味着数据库服务器已关闭.我可以 ping它,但它可能已经启动并且MySql进程当前没有运行.
我想我无论如何都可以安装连接器,即使它看起来很草率,但如果这样做会显着减慢我的应用程序的启动时间.
什么是最好的方法?
当我安装时,我如何从Delphi中做到这一点,因为连接器将在d/b服务器上可用,谁知道IP地址?
或者......目前我的应用程序是一个简单的.EXE,没有安装程序.我应该创建一个也安装ODBC连接器的安装吗?(如果是这样,任何人都可以推荐一个好的免费软件安装生成器(没有广告软件或工具栏安装)?
我希望这很清楚.如果没有,请问我.
谢谢.
要检查已安装的ODB驱动程序,您必须检查此Windows注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
Run Code Online (Sandbox Code Playgroud)
从那里你可以轻松编写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.
Run Code Online (Sandbox Code Playgroud)
要安装,您可以使用多个选项inno setup(可以读取Windows注册表以检查odbc驱动程序),然后安装安装文件中包含的驱动程序.您也可以使用简单的HTTP GET直接从您的应用程序下载驱动程序,并通过此处的下载地址
| 归档时间: |
|
| 查看次数: |
2994 次 |
| 最近记录: |