用ADOQuery写的函数,改用ClientDataSet会报错

大风吹过脸颊 2012-10-08 12:50:19
以前用ADOQuery写的函数,现在改用ClientDataSet会报错,不知道是哪里有问题,请大家帮我看看,下面这个是ADO的

procedure TDtM.JsSearch(ADOQueryName:TADOQuery;sSql:string; const Param: array of Variant);
var
I, intLen: Integer;
begin
with ADOQueryName do
begin
Close;
SQL.Clear;
sqlstr:=sSql;
SQL.Text := sqlstr;
ParamCheck := True;
intLen := Length(Param);
if intLen > 0 then
begin
for I := 0 to intLen - 1 do
Parameters[I].Value := Param[I];
end;
Open;
end;
end;


这个是改成ClientDataSet以后的

procedure TDtM.JsSearch(ClientDataSetName:TClientDataSet;sSql:string; const Param: array of Variant);
var
I, intLen: Integer;
begin
with ClientDataSetName do
begin
Close;
CommandText := sqlstr;
// ParamCheck := True;
intLen := Length(Param);
if intLen > 0 then
begin
for I := 0 to intLen - 1 do
Parameters[I].Value := Param[I];
end;
Open;
end;
end;


...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
somemak 2012-10-18
  • 打赏
  • 举报
回复
1.具体的报错信息呢?
2.你的Delphi是哪个版本?D7下的TClientDataSet无Parameters属性,有Params
改为:Params[I].Value := Param[I];试试
大风吹过脸颊 2012-10-08
  • 打赏
  • 举报
回复
执行到这一行,无法往下执行了

Parameters[I].Value := Param[I];
kaikai_kk 2012-10-08
  • 打赏
  • 举报
回复
报什么错了?
lsqwy 2012-10-08
  • 打赏
  • 举报
回复
试试:

Parameters.Refesh;

Parameters[I].Value := Param[I];

希望对你有帮助
lipengpeng8188 2012-10-08
  • 打赏
  • 举报
回复
哪行报错了。。

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧