【转贴】 方法一: var registerTemp: TRegistry; begin registerTemp:=TRegistry.create; with registertemp do begin rootkey := HKEY_LOCAL_MACHINE; if OpenKey('Software\Microsoft\MSSQLServer\Setup', True) then begin if valueexists('SQLPath') then 已装 else begin 未装 end; end; end; registertemp.CloseKey; registertemp.Free; 可以判断是否有装,没装的话也可以用一个命令自动安装,不过这得把SQLSERVER打包进去方法二: procedure Tfrm_DBParamSet.GetSQLServerLsit; var SQLServer: Variant; ServerList: Variant; i, nServers: integer; begin lst_SQLSrvList.Items.Clear; try SQLServer := CreateOleObject('SQLDMO.Application'); ServerList := SQLServer.ListAvailableSQLServers; nServers := ServerList.Count; for i := 1 to nservers do lst_SQLSrvList.Items.Add(ServerList.Item(i)); SQLServer := NULL; serverList := NULL; except Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,'+#13+#10+'请直接输入SQL Server服务器名称!','信息提示',MB_OK+MB_ICONINFORMATION); end; end;
try
SQLServer := CreateOleObject('SQLDMO.Application');//直接建立一个SQLSERVER 如果没有肯定会抛出异常,不知道对不。
except
showmessage('NO SQLSERVER');
exit;
end;
方法一:
var registerTemp: TRegistry;
begin
registerTemp:=TRegistry.create;
with registertemp do
begin
rootkey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\Microsoft\MSSQLServer\Setup', True) then
begin
if valueexists('SQLPath') then
已装
else
begin
未装
end;
end;
end;
registertemp.CloseKey;
registertemp.Free;
可以判断是否有装,没装的话也可以用一个命令自动安装,不过这得把SQLSERVER打包进去方法二:
procedure Tfrm_DBParamSet.GetSQLServerLsit;
var
SQLServer: Variant;
ServerList: Variant;
i, nServers: integer;
begin
lst_SQLSrvList.Items.Clear;
try
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
nServers := ServerList.Count;
for i := 1 to nservers do
lst_SQLSrvList.Items.Add(ServerList.Item(i));
SQLServer := NULL;
serverList := NULL;
except
Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,'+#13+#10+'请直接输入SQL Server服务器名称!','信息提示',MB_OK+MB_ICONINFORMATION);
end;
end;
如何查找系统中的服务, 可以参考网上的资料,关键词:SrvcManager
我也提供一个很好的办法。
MS-SQL中必有一个Master数据库,那么我们不妨做一个connection,连接此数据库,看是否成功。如果不行,再根据返回代码或者直接判断此机没装sql或者sql 有问题。
局限性是:
若此 sql的sa有口令或者它是其它用户登录的,你必须知道其登录方法。