假设一公司有四台电脑:A、B、C。它们通过网络相连。可以互访!其参数如下:
 A :ip地址:168.18.0.1  ;计算机名字为AA,有一个Delphi数据库可执行应用程序,并无Delphi应用程序。
 B :ip地址:168.18.0.2 ;  计算机名字为BB,数据库ms sql server2000程序,实例名也就是服务器名为(local),次机上有一个xxx数据库,次数据库是A机将要通过局域网访问的。
 C: ip地址:168.18.0.3  ; 计算机名字为CC, 数据库ms sql server2000程序,实例名也就是服务器名为(local)。
   Question:怎样才可以通过A机顺利访问B机的数据库,需要怎样设置A机或者在原始数据库可执行应用程序中,添加一些什么代码?请给出详细的操作过程,并保证操作顺利成功!定当满分相曾!请高手指教!

解决方案 »

  1.   

    用ado连接,连接字符串一步步设置就行了
      

  2.   

    你的这个设想其实就是三层结构,即客户端都不直接操作数据库,对数据库(BB)的访问都是通过服务端(AA)来实现的
      

  3.   

    最简单的办法就是新建一个*.udl文件,
    然后:
    adoconnection.connectionstring:='File Name=路径+*.udl';使用时只要在客户端配置一下*.udl,让其连接到B即可
      

  4.   

    什么是.udl文件呀?
    能否具体的介绍一下它的用法?
    怎么在客户端设置呀?
      

  5.   

    .udl是系统中的一个,类似于odbc
    c:\program files\common files\system\ole db\data links下面
    DBDEMOS.UDL把它拷到你可执行目录下unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls, ShellApi;type
      TForm1 = class(TForm)
        Button1: TButton;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      spath:String;
    begin
      spath:=ExtractFilepath(Application.ExeName)+'\DBDEMOS.UDL';
      ShellExecute(handle,'open',pchar(spath),'','',SW_SHOWNORMAL);
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      spath:String;
    begin
      spath:=ExtractFilepath(Application.ExeName)+'\DBDEMOS.UDL';
      try
        adoconnection1.Connected := false;
        Adoconnection1.ConnectionString := 'File Name='+spath;
        adoconnection1.Connected := true;
        showmessage('ok');
      except
        showmessage('error');
      end;
    end;end.