在三层数据库中服务器已经与SQL2000连接好,数据库别名是mybook.请问在客户端中是不是可以和单机版一样用TQUERT组件,在其属性里使用数据库的别名

解决方案 »

  1.   

    讲三层的书不是太多,我推荐一本《Delphi深度编程及其项目应用开发》,里面有一个三层实例,看了肯定大有启发。我也是刚学三层的,不过建议别用delphi做三层,太没前途了,改.net吧。
      

  2.   

    应用程序服务器端可以用adoconnection连接数据库,外加datasetprovider控件和adoquery控件客户端的datamodule 可用socketconnection或者dcomconnection连接应用程序服务器端
    客户端数据操作或查询可用clientdataset控件.一两句话说不清楚,去找本书看看就知道了。
      

  3.   

    一个三层的例子:应用服务器的编写:
    (1)新建一个工程
    (2)点击“File”“New”“Other”,选择Multiter页标签的Remote Data Module
    (3)设置CoClassName(例:输入TestServer),点击OK就会进入Remote Data Module编辑框
    (4)在编辑框中可以添加任何与数据库相连的组件,既然你的机器上装了sql server ,你就可以 添加一个ADOConnection和ADOTable,进行数据库的连接设置。这里我要提醒一句,就是在用ADOConnection连接数据库的时候,最好把登陆数据库的密码保存下来,并且ADOTable1.active不要设置为True!!!然后再添加一个DataSetProvider1(在Data Access页中),并将其DataSet设置为TADOTable1.
    (5)编译运行此程序,就算注册了
    客户端的编写:
    (1)新建一个工程文件
    (2)在其中添加SocketConnection1(在DataSnap页中),将它的Host设置为你的应用服务器所在的机器名,在ServerName的下拉列表框中选择应用服务器的名称,port默认为211(注意:TSocketConnection靠的是TCP/IP协议进行通讯,所以要在应用服务器端需额外运行Scktsrvr.exe程序,该程序在..\\Borland\Delphi6\Bin目录里)
    (3)然后添加一个ClientDataSet1(在Data Access中),将其RemoteServer设置为SocketConnection1,将PorviderName设置为DataSetProvider1,
    (4)再添加一个DataSouce1和一个DbGrid1,将DataSouce1.DataSet设置为ClientDataSet1,DBGrid1.DataSource设置为DataSource1
    (5)在FormCreate中编写代码如下:
      procedure TForm1.FormCreate(Sender:TObject);
      begin
          SocketConnection1.Connected:=True;
          ClientDataSet1.Active:=True;
      end;
    (6)编译运行,你的客户端就可以读取Sql Server数据库中的数据了!