如何编程实现获得SQL Server 服务器的服务器名和用户名,有相应的函数吗?

解决方案 »

  1.   

    @@servername  服务器名如: select @@servername@@version  日期、版本、处理器类型... ...
      

  2.   

    我想在delphi中得到,如ADOConnection 中 connectionstring  有data source =.....
     data source 就是SQL Server 服务器的服务器名
      

  3.   

    to:  seima(西玛) 明白你的意思。
    应该可以做到。
    可是,我还不会。抱歉!!!如果是一般的c/s,不用在delphi中获得服务器的服务器名。将ADOConnection的 connectionstring保存在.ini文件中,程序启动调用即可。用友的u8等软件都是这样的。可是修改.ini改变ADOConnection,也可以在提供ADOConnection的connectionstring的修改界面。(读、写.ini文件)  
      

  4.   

    //uses ADODBPromptDataSource(getactivewindow,'');//返回constring
      

  5.   

    也可以用com的方式穷举,不过如果客户端没有安装sqlserver的话,就无效了。
    所以推荐上面的这个。
      

  6.   

    to:MichealLee()
    可是修改.ini改变ADOConnection,也可以在提供ADOConnection的connectionstring的修改界面。(读、写.ini文件)password不应该保存在ini中的,那样太危险了。我的做法是分割connectionstring,得到password前的部分,和passwrod后面的部分,中间的password是死的。function SplitConStr( Source : ansistring ):tstrings;
    //分割连接字符串,返回除password部分外的两部分字符串
    //Result.String[0]为第一部分字符串
    //Result.String[1]为第二部分字符串
    //Copy Right 549@9:59 2003-7-28
    begin
      Result := tstringlist.Create;
      Result.Add( copy( Source, 1, pos( 'Password', pchar( Source ) ) - 1 ) );
      Result.Add( copy( Source, pos( 'Password', pchar( Source ) ), length( Source ) ) );
      Result.Strings[1]:=copy( Result.Strings[1], pos( ';',Result.Strings[1]) + 1, length( Result.Strings[1] ) - 1 );
    end;
      

  7.   

    function TDCMainForm.GetSQLServerList(AList: TStrings): Boolean;
    var
       i: integer;
       vSQLServer: Variant;
       vServerList: Variant;
    begin
      Result := False;
      if AList = nil then Exit;
      AList.Clear;
      try
        vSQLServer := CreateOleObject('SQLDMO.Application');
        vServerList := vSQLServer.ListAvailableSQLServers;
        for i := 1 to vServerlist.Count do
          AList.Add (vServerlist.item(i));
        Result := True;
      finally
        vSQLServer := NULL;
        vServerList := NULL;
      end;
    end;
      

  8.   

    如果你在连接数据库服务器时,数据库的配置是放在一个.ini的文件中时,
    那么可以通过读取该.ini文件来获取服务器名和当前用户名。
    我就是这样配置连接数据库的,方便!