服务器端如何通过TQuery控件将查询的结果传送给客户端?(100分)

  • 主题发起人 主题发起人 shm
  • 开始时间 开始时间
S

shm

Unregistered / Unconfirmed
GUEST, unregistred user!
我想服务器端通过TQuery控件查询的结果传送给客户端,不如该如何实现?
我想要服务器端和客户端的源程序。请各位高手指点,我很着急,谢谢!
Email: shmhms@sina.com.cn
 
客戶端用ClientDataSet接收數據集
也就是你在服務器端執行了SQL語句以後,就可以在相應的ClientDataSet中得到結果
 
兄弟,讲得应该是三层的应用吧。找一下李维的书去看看,相信1个小时够了。
 
現在的人都比較懶
最基礎的應用都不想自己找資料
 
服务器端:添加控件ADOConnection1, TADOQuery1,如两层中一样设置好连接属性与SQL语句, 再添加一TDataSetProvider控件:DataSetProvider1,设其DataSet属性为AdoQuery1
然后运行服务器
客户端:添加控件DCOMConnection1设其ServerName为上述运行服务器(应用程序)名
添加控件ClientDataSet1将其RemoteServer属性设为DCOMConnection1,将ProviderName属性设为DataSetProvider
打开TADOQuery中SQL的检索数源: 客户端:ClientDataSet1.Active := True;就可以了
 
TQuery+TDataSetProvider+TClientDataSet
设TDataSetProvider的options属性中的子属性poAllowCommandText为true.
再动态设置TClientDataset的CommandText属性。再Tclientdataset.active:=true就OK了
 
給你個我以前的例子吧,不過有點亂
 
现在的难题是我不能操作客户端,该怎么办?
 
什麼叫不能操作客戶端?
不能在客戶端動態輸入SQL語句麼?
這樣就違背了三層結構的本質
實際應用中所有的SQL語句是放在服務端的
 
服务端用ADOQuery和Provider
客户端用ClientDataSet ProviderName关联服务端的Provider就可以了
 
我说的不能操作客户端是指它是一台上级领导来查看我的服务器数据的客户机,我不能直接操作,但要给它拷贝客户端程序是可以的。
客户端没有安装Delphi软件,我将服务器程序在客户机运行,然后,在服务器端作客户端的程序,添加DCOMConnection1,在ComputerName找到客户机的名字,点击Connected,出现错误:拒绝访问。为什么?
 
请回答我,谢谢!
 
客户端应该要有接受吧,至少你得通知客户端:已取到数据,winSocket
 
请告诉我:
在服务器端作客户端的程序,添加DCOMConnection1,在ComputerName找到客户机的名字,点击Connected,出现错误:拒绝访问。为什么?谢谢!
 
......
你用什麼控件連接?
如果是DCOMconnection那麼你全文搜索一下DCOM配置
如果是Socketconnection那麼執行Delphi安裝目錄下的 scktsrvr.exe
 

服务器端用DataSetProvider1、Query1.
客户端用DCOMConnection1、ClientDataSet1、DataBase1.
 
与DCOM配置有关。运行dcomcnfg配置一下。
 
这个现在比较流行的就是用三层解决了。
你给我邮箱我给你发一个简单的DEMO。
 
看看李维著的《delphi5.x多层分布式应用》一书,你的问题就可以解决了!
 
shm:服务器端用DataSetProvider1、Query1.
客户端用DCOMConnection1、ClientDataSet1、DataBase1.
請問:你怎麼把DataBase1放在客戶端?請解釋一下
 
后退
顶部