怎样判断计算机中是否已装有SQL server

解决方案 »

  1.   

    只知道一个方法,呵呵,试下
      try
         SQLServer := CreateOleObject('SQLDMO.Application');//直接建立一个SQLSERVER 如果没有肯定会抛出异常,不知道对不。
      except
        showmessage('NO SQLSERVER');
        exit;
      end;
      

  2.   

    【转贴】
    方法一:
    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;
      

  3.   

    还应该有一种方法,就是查找打开的服务列表,是否存在 MSSQLServer。
    如何查找系统中的服务, 可以参考网上的资料,关键词:SrvcManager
      

  4.   

    各位说的很有理。
    我也提供一个很好的办法。
    MS-SQL中必有一个Master数据库,那么我们不妨做一个connection,连接此数据库,看是否成功。如果不行,再根据返回代码或者直接判断此机没装sql或者sql 有问题。
    局限性是:
      若此 sql的sa有口令或者它是其它用户登录的,你必须知道其登录方法。
      

  5.   

    JonnySun(智者寡言) 叫我干啥
      

  6.   

    >>>JonnySun(智者寡言) 叫我干啥意思是說你回答正确!