局域网是通过登陆域来访问服务器的,DELPHI的程序在有些电脑可以连上SQL服务器,有些却出现拒绝访问或不存在连接?怎么解决?谢谢

解决方案 »

  1.   

    连接local的基本没问题,如果是局域网内的,情况就很多了,如果服务器端安装了防火墙,而且设置了一些规则都可以出现你说的问题。
      

  2.   

    1 捕获isql
    2 查询一个系统表
      

  3.   

    Function GetSQLServerList(var List: TListBox): boolean;//取得SQLSERVEREB服务器列表涵数。
    var
      i: integer;
      SQLServer: Variant;
      ServerList: Variant;
    begin
      Result := False;
      List.Clear;
      try
        SQLServer := CreateOleObject('SQLDMO.Application');
        ServerList := SQLServer.ListAvailableSQLServers;
        for i := 1 to Serverlist.Count do
          list.Items.Add (Serverlist.item(i));
          Result := True;
      Finally
        SQLServer := NULL;
        ServerList := NULL;
      end;
    end;
      

  4.   

    delphi怎样列出SQL服务器列表和SQL数据库表名?关注中,帮你顶!
      

  5.   

    在SQL的服务器上写一个存储过程取得表的名称
    用Delphi读取存储过程
      

  6.   

    转自超级猛料
    -------------------------------------------如何显示装有SQL SEVER2000的机器名
    如有三台电脑a,b,c,a和b装有SQL SEVER2000,如何在一个列表里显示a和b?: qiubolecn(来自差生市)
      两个方法,一个是用 
    netenumserver它的servertype为SV_TYPE_SQLSERVER    二是用procedure TForm1.Button1Click(Sender: TObject);
    var
       SQLServer:Variant;
       ServerList:Variant;
       i,nServers:integer;
       sRetValue:String;
    begin
      SQLServer := CreateOleObject('SQLDMO.Application');
      ServerList:= SQLServer.ListAvailableSQLServers;
      nServers:=ServerList.Count;
      for i := 1 to nservers do
          ListBox1.Items.Add(ServerList.Item(i));
      SQLServer:=NULL;
      serverList:=NULL;
    end;
      

  7.   

    得到数据库中表名
    select name from sysobjects
    where  type='u'
      

  8.   

    利用SQLDMO可以实现.
    具体文章见下面的链接
      

  9.   

    得到数据库名称
    select name from sysdatabases