我采用datasnap技术,做成了三层结构,
服务器端采用sqlconnection+sqlquery+datasetprovide的方法连接oracle数据库与客户端,在客户端采用clientdataset+DSprovideconnection+sqlconnection的方法。
如果想动态的取数据,服务器端sqlquery的SQL语句写为:select * from A where Fname=:Param1,将datasetprovide的poAllowcommandtext设置为“true”,然后在客户端,将clientdataset中将参数传入,代码如下:
var
pm:Tparam;
begin
ClientDataSet1.Close;
ClientDataSet1.ProviderName:='DataSetProvider1';
pm:=Tparam.Create(nil);
pm.Name:='param1';
pm.DataType:=ftString;
ClientDataSet1.Params.Clear;
ClientDataSet1.Params.AddParam(pm);
ClientDataSet1.Params.ParamByName('param1').AsString:=edit1.Text ;
ClientDataSet1.Open;
pm.Free;
end;
运行的时候,出现“灾难性故障”的对话框。请问这错在哪里呢?可以这样的将参数传给服务器吗?
对于服务器的sqlquery1控件,我将它的active无论设置为true,还是false,都不行。
求高人指点指点啊。数据库技术
服务器端采用sqlconnection+sqlquery+datasetprovide的方法连接oracle数据库与客户端,在客户端采用clientdataset+DSprovideconnection+sqlconnection的方法。
如果想动态的取数据,服务器端sqlquery的SQL语句写为:select * from A where Fname=:Param1,将datasetprovide的poAllowcommandtext设置为“true”,然后在客户端,将clientdataset中将参数传入,代码如下:
var
pm:Tparam;
begin
ClientDataSet1.Close;
ClientDataSet1.ProviderName:='DataSetProvider1';
pm:=Tparam.Create(nil);
pm.Name:='param1';
pm.DataType:=ftString;
ClientDataSet1.Params.Clear;
ClientDataSet1.Params.AddParam(pm);
ClientDataSet1.Params.ParamByName('param1').AsString:=edit1.Text ;
ClientDataSet1.Open;
pm.Free;
end;
运行的时候,出现“灾难性故障”的对话框。请问这错在哪里呢?可以这样的将参数传给服务器吗?
对于服务器的sqlquery1控件,我将它的active无论设置为true,还是false,都不行。
求高人指点指点啊。数据库技术
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货