一、 如何判断当前机器中是否安装了SQL SERVER (目前想通过读注册表来判断, 有其他方法也行)二、 如何通过当前程序去执行同级路径下的另外一个执行文件。

解决方案 »

  1.   

    第一个问题:特殊情况比较多,不太好说。第二个问题:既然和delphi应用程序在同一目录下,直接用winexec方法调用程序名就行了,
    如:winexec(pchar('*.exe'),sw_show);最后,接分!!!!
      

  2.   

    感谢两位★★ ,分是一定要给的。 
    不过还得等第一个问题。只按最简单的方式,就当机器没装SQL SERVER,注册表里什么都没有。
      

  3.   

    问题1:判断计算机中是否已装有SQL server 
    方法一:
    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;
    方法三MS-SQL中必有一个Master数据库,那么我们不妨做一个connection,连接此数据库,看是否成功。如果不行,再根据返回代码或者直接判断此机没装sql或者sql 有问题。
    局限性是:
    若此 sql的sa有口令或者它是其它用户登录的,你必须知道其登录方法。
    方法四:一个无聊的办法,使用findfrist findnext搜索计算机中的文件,看看能不能找到sqlservr.exe文件
      

  4.   

    一般的电脑装SQLserver2000在C:\Program Files\Microsoft SQL Server有个文件夹,看看有没有这个文件夹,或者查找一下电脑里有没有SQLserver2000所必需的可执行文件。呵呵,这个是bt的办法,不要听我的哦!对了,现在SQLserver2000还有免安装的绿色版本.
      

  5.   

    wudi_1982
    ////////////
    抢分专家...
      

  6.   

    wudi_1982
    ////////////
    抢分专家...
    我不是抢分专家,我是骗分专家。
      

  7.   

    第一个问题也不用那么复杂,ms sql server安装完成后,有一个服务,是mssqlserver,检查
    操作系统是否有此服务即可,其他的都不一定
      

  8.   

    还是检查注册表比较好。
    在Windows控制面板里面安装删除程序也是通过注册表搜索的。
      

  9.   

    创建OLE对象或者检查进程表中的SQLSERVR.EXE
      

  10.   

    还是delphi区里的兄弟们热心, 多谢大家!!! 结帖。