[Lazarus-es] Error al intentar abrir un TSQLQuery
Ismael L. Donis Garcia
ismael en citricos.co.cu
Mie Sep 4 22:21:22 CEST 2013
Si probe poner por todos lados y sin ningún efecto.
Lo puse en las siguientes partes:
procedure Tdm.p_rssc3();
begin
if trasc3.Active then begin
rssc3.IndexFieldNames:='';
trasc3.EndTransaction;
end;
rssc3.IndexFieldNames:='';
rssc3.Close;
end;
procedure Tdm.p_rssc3(sqlstr: string; blnread: boolean);
begin
p_rssc3();
rssc3.IndexFieldNames:='';
rssc3.Filter:='';
rssc3.IndexFieldNames:='';
rssc3.SQL.Clear;
rssc3.IndexFieldNames:='';
rssc3.SQL.Text := sqlstr;
rssc3.IndexFieldNames:='';
rssc3.ReadOnly := blnread;
rssc3.IndexFieldNames:='';
trasc3.StartTransaction;
rssc3.IndexFieldNames:='';
rssc3.Open;
end;
Sin ningún resultado satisfactorio. Me sigue diciendo que no tiene el campo "empor". Yo se que no está ya que está en la consulta anterior. No en la que quiero realizar cuando me da error.
No puedo usar order by en la consulta porque es una consulta calculada. Si miras bien en la consulta aparece "where (s.idsa is null)"
Donde "idsa" es la clave primaria de la tabla, por tal motivo la consulta no devuelve ningún registro ya que posteriormente es que se le agrega mediante la instrucción.
dm.rssc3.Append;
...
Como ves lo intentado de todas las formas. Por lo que no se si será un problema del TSQLQuery.
Estoy Usando Firebird 2.5.2 Update 1 como base de datos.
========
| ISMAEL |
========
----- Original Message -----
From: German
To: Spanish version of Lazarus List
Sent: Wednesday, September 04, 2013 3:47 PM
Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery
Hola Ismael
Probaste de agregar :
rsc3.IndexFieldNames := '';
dentro de tu procedimiento procedure Tdm.p_rssc3(sqlstr: string; blnread: boolean); ??
De cualquier manera no te convendria usar "order by" en tu query?, es decir agregar al final de tu cadena strsql:=strsql+ ' order by cuenta, sctaor, subcta, capor, capitulo, scapor, subcap, eleor, elemento, empor, empresa';
Luego si necesitas otro orden podes modificar el query ya que de cualquier manera lo cerras y volves a abrir.
saludos!
German
El 04/09/2013 04:35 p.m., Ismael L. Donis Garcia escribió:
Cuando intento abrir un TSQLQuery que previamente lo había abierto y después le había pasado como parámetro un grupo de índices cuando lo intento abrir de nuevo con otro SQL me dice que un campo no existe. Yo se que no existe porque no está en el SQL, estaba en el SQL con que lo había abierto anteriormente, pero no con el que lo estoy intentando abrir de nuevo.
Relizo lo siguiente:
strsql := 'select s.cuenta, s.subcta, s.capitulo, s.subcap, s.elemento, s.empresa, s.debe, s.haber, s.saldo, s.nat, s.descripcion, ';
strsql := strsql + 's.nota, s.nota1, s.nota2, s.nota3, s.sctaor, s.capor, s.scapor, s.eleor, s.empor from scsal s where (s.idsa is null)';
dm.p_rssc3(strsql, false);
después le paso un índice d ela siguiente forma:
dm.rssc3.IndexFieldNames:='cuenta; sctaor; subcta; capor; capitulo; scapor; subcap; eleor; elemento; empor; empresa';
Y cuando lo intento abrir de nuevo con:
strsql := 'select s.cuenta, s.subcta, s.capitulo, s.subcap, s.elemento, s.empresa, s.saldo, s.descripcion, ';
strsql := strsql + 's.sctaor, s.capor, s.scapor, s.eleor from scsal s where (s.idsa is null)';
dm.p_rssc3(strsql, false);
Me da error en la línea: rssc3.Open;
Me dice que falta el campo empor el cual use en la cunsulta anterior, pero que por supuesto no está en esta.
El procedimiento que llamo es:
procedure Tdm.p_rssc3();
begin
if trasc3.Active then trasc3.EndTransaction;
rssc3.Close;
end;
procedure Tdm.p_rssc3(sqlstr: string; blnread: boolean);
begin
p_rssc3();
rssc3.Filter:='';
rssc3.SQL.Clear;
rssc3.SQL.Text := sqlstr;
rssc3.ReadOnly := blnread;
trasc3.StartTransaction;
rssc3.Open;
end;
Se que el error me lo está dando por usar:
dm.rssc3.IndexFieldNames:=xxxx
Pero lo necesito usar.
E intentado resetear dicha propiedad por todas las vías antes de decir: rssc3.Open; pero no he encontrado la forma de como hacerlo sin que me de error.
Toda ayuda será bien venida.
Saludos Cordiales
========
| ISMAEL |
========
Only for the small landowners and Cubans companies
Website: www.sisconge.byethost15.com
www.sisconge.hol.es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------------------------------------------------------------------------
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130904/489924ca/attachment-0002.html>
More information about the Lazarus-es
mailing list