Lo estaba ejecutando antes de asignar el SQL.Text, pero lo prob� movi�ndolo y tampoco funciona, da el mismo error:
En la prueba puse:
strsql := 'select mpdatge.mpdp, mpdatge.clave from mpdatge where
((mpdatge.entidad)=:pEntidad)';
ejecrsbuscar(strsql, true, false);
procedure Tfrmlogin.ejecrsbuscar(sqlstr: string; blnopen: boolean;
blnwrite: boolean);
begin
try try
if trabuscar.Active then trabuscar.Commit;
except on e:exception do
trabuscar.Rollback;
end;
finally
trabuscar.EndTransaction;
end;
rsbuscar.Close;
rsbuscar.SQL.Clear;
if blnopen then
begin
rsbuscar.ReadOnly := blnwrite;
rsbuscar.SQL.Text := sqlstr;
rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; //
aqu� da el error
trabuscar.StartTransaction;
rsbuscar.Open;
end;
end;
Saludos reiterados
=========
�� ISMAEL ��
=========
"----- Mensaje original -----
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 22 de diciembre de 2009 02:51
Asunto: Re: [Lazarus-es] Uso de par?metros
Hello Ismael,
Tuesday, December 22, 2009, 9:36:29 PM, you wrote:
ILDGa> Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro.
ILDGa> Lo trato de hacer de la siguiente forma pero da error: ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDGa> Como es que hay que pasarle el valor?
As� est� bien.
ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;
Si te da el error en el momento de la asignaci�n debe de ser que el SQL.Text no dispone de ese campo, aunque me extra�a que haga el "parsing" cada vez que asignas un par�metro.
A menos que rsbuscar est� "active", en ese caso si es posible que de un error de ese tipo (m�s tarde lo intento).
Best regards,
JoshyFun