读书人

用ADOQuery写的函数改用ClientDataS

发布时间: 2013-01-09 09:38:15 作者: rapoo

用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];试试

读书人网 >.NET

热点推荐