首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用ADOQuery写的函数,改用ClientDataSet会报错,该怎么处理

2013-01-09 
用ADOQuery写的函数,改用ClientDataSet会报错本帖最后由 ldjssoft 于 2012-10-08 00:56:01 编辑以前用ADOQ

用ADOQuery写的函数,改用ClientDataSet会报错
本帖最后由 ldjssoft 于 2012-10-08 00:56:01 编辑 以前用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;



[解决办法]
试试:

Parameters.Refesh;

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

希望对你有帮助
[解决办法]
1.具体的报错信息呢?
2.你的Delphi是哪个版本?D7下的TClientDataSet无Parameters属性,有Params
改为:Params[I].Value := Param[I];试试

热点排行