平生做的第一个三层程序:
服务器端:1个DataSetProvider,1个adoquery
客户端:1个dcomconnection,一个clientdataset
将所有的数据连接设置好后(没有一句代码),连接成功,
但现在我想改变clientdataset连接的表,使用以下语句:
clientdataset.close;
clientdataset.commendtext:='select * from table';
clientdataset.open;
提示:can not perform this operation on an open dataset!
请高手指点!
服务器端:1个DataSetProvider,1个adoquery
客户端:1个dcomconnection,一个clientdataset
将所有的数据连接设置好后(没有一句代码),连接成功,
但现在我想改变clientdataset连接的表,使用以下语句:
clientdataset.close;
clientdataset.commendtext:='select * from table';
clientdataset.open;
提示:can not perform this operation on an open dataset!
请高手指点!
解决方案 »
- 调用Dll报写出错,请高手帮忙!
- 窗体继承问题
- Delphi7有没有能够加载多个图片的集合控件?
- 求助:TQuickRep的使用!将投240分
- dbcombobox1下拉选项有数据,但所选择的记录并不出现在dbcombobox1里。
- 安装delphi7出项的问题,请大家帮忙看看是什么原因?
- 请教Delphi中字符串的查找
- DBGRID焦点离开某一行将触发那一事件?注意是某一行,不是某一列!
- 哪里有基础教程下载?
- 我不知这社会能不能给专科应界毕业生一点点空间
- 我在类型库中定义了几个接口,在每个接口下面定义了一些方法,但是客户端只能调用缺省的接口方法,而其它的就不行了,报告说接口没有定义
- 关于在报表自定义页面打印时出现的问题?
(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数据库中的数据了!
Input: OleVariant): OleVariant;
begin
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add(input);
open;
end;
result:=DataSetProvider1.Data;
end;二、在客户端写如下语句:
procedure Tform1.FormCreate(Sender: TObject);
ClientDataSet1.close;
ClientDataSet1.data:=ClientDataSet.DataRequest('select * from table');
ClientDataSet.Active:=True;
end;当然这里的Clinetdataset1与服务端的DataSetProvider1是相连的。
begin
result := xxxProvider.Data;
end;
comanche(太可怕) 你这个能举个例子吗