各位大哥好,小弟在学习C/s编程中遇到一个问题,请指教(内详)(300分)

  • 主题发起人 主题发起人 copyyour
  • 开始时间 开始时间
C

copyyour

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了一个服务器端和一个客户端
服务器端控件为:ADOConnection1 ADODataSet1 DataSetProvider1
客户端控件为:SocketConnection1 ClientDataSet1 DataSource1
现在的问题是这样的,用以上控见我用ADOConnection1连接了一个数据库,里面有表一
和表二两个表,我用ADODataSet1能在客户端取得表一的内容,并把它显示在
客户端的DBGrid1控件中,但是现在我想在客户端增加一个DBGrid控件,
用来显示另外一个表的的内容,我始终没办法取得数据库中另外一个表的的内容。
我试着在服务器端增加了ADODataSet2 DataSetProvider2,并且在ADODataSet2中写了区
的表二的SQl语句,但是我在客户端始终不知道怎样取得
表二的内容,希望那位大哥能指教小第,谢谢了
另外我在客户端也添加了SocketConnection2 ClientDataSet2 DataSource2

那位大哥能讲讲具体方法吗,小弟真心谢谢,300分重谢


 
我县描述一下我的做法吧!咱们唯一不同的是我在客户端的连接使用了DCOMConnection
其实和socketConnection是一样的,服务器端就不用启动scktsrvr.exe了。
新建一个工程后,添加Remote Data Moudle模块。
在上面添加ADOConnection连接一个数据库。
再添加两个ADODataSet控件。分别设置他们的CommandText属性。
如:
ADODataSet1.CommandText:='Select * from tab1';
ADODataSet2.CommandText:='Select * from tab2';
添加两个DataSetProvider。设置他们的DataSet属性分别为ADODataSet1和ADODataSet2。
然后编译程序。
再新建一个工程,添加DCOMConnection,设置ServerName属性为刚才编译过的服务器。
添加两个ClientDataSet,设置他们的RemoteServer属性,ProviderName属性分别为
DataSetProvider1和DataSetProvider2。
添加两个DataSource,分别指向DataSetProvider1和DataSetProvider2。
添加两个DBGrid,设置他们的DataSource属性分别为DataSource1和DataSource2。
然后设置DataSetProvider1和DataSetProvider2的Active属性为True,这是应该在
DBGrid1和DBGrid2中看到两个表的内容。
刚上传了演示程序可通过
http://iapollo.diy.163.com/mywork/delphi/test_midas.rar
下载。
 
咦!
ClientDataSet2的provider设置成 DataSetProvider2不行吗?那太奇怪了!
获得表2的内容所需的步骤跟获得表1一模一样(服务器和客户端两方面)。
----------
哦,兄弟,不需要SocketConnection2了!!!
具体设置:
ClientDataSet2.remotsertver=SocketConnection1;
ClientDataSet2.providername=DataSetProvider2;
DataSource2.dataset=ClientDataSet2;
dbgrid2.datasource=DataSource2;

OK!!!!


(这不是三层结构吗?为何说cs?)
 
谢谢两位大哥,已经明白了,呵呵,希望以后能多多帮助小弟
 
多人接受答案了。
 
to copyyour:
呵呵!我还当不了大哥,我也只不过是一初学者罢了,互相帮助吗!
 
后退
顶部