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