[Lazarus-es] Error al intentar abrir un TSQLQuery
Ismael L. Donis Garcia
ismael en citricos.co.cu
Jue Sep 5 14:50:31 CEST 2013
Campos creados? No nunca en tiempo de diseño le he agregado campos. Siempre lo he trabajado de la forma que explico más abajo.
No, yo solo inserte los objetos TIBConnection, TSQLTransaction y TSQLQuery en un DataModule y san se acabo.
Después los uso con procedimientos púbicos de la siguiente manera.
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.IndexFieldNames:=''; //Esta propiedad se la puse ahora pero hace caso omiso de ella donde quiera que la ponga.
rssc3.Filter:='';
rssc3.SQL.Clear;
rssc3.SQL.Text := sqlstr;
rssc3.ReadOnly := blnread;
trasc3.StartTransaction;
rssc3.Open;
end;
Repito que si no uso la propiedad IndexFieldNames, pero me es necesaria para mostrar un reporte. Si no muestro ese reporte todo funciona bien. Y si le quito dicha propiedad al reporte también todo funciona bien menos el reporte que no me sale de la forma correcta. Ya que al LastReport hay que pasarle los datos organizados porque carece de una propiedad IndexFieldNames. Porque si la tuviera podría hacer:
TfrDBDataSet.DataSet.IndexFieldNames:='xxxxxx';
Y no tendría que usar la propiedad IndexFieldNames del TSQLQuery. Pero aun así creo que eso es un bug del TSQLQuery. Pero por sierto que me tiene trancado de tal forma que no se como resolverlo.
Esta tarde trataré de mirar el código del TSQLQuery a ver si puedo dar con el problema. O talves Maxi que tu también dominas más este lenguaje le podrías hechar una miradita. Porque la verdad que ya no se porque vía mirar desde un usuario normal, ósea sin urgar en el código de los componenetes de Lazarus.
Saludos Reiterados
========
| ISMAEL |
========
----- Original Message -----
From: Maxi
To: Spanish version of Lazarus List
Sent: Wednesday, September 04, 2013 7:10 PM
Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery
Tenes campos creados en el.objeto?
El 04/09/2013 17:33, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribió:
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
_______________________________________________
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/20130905/947bdbe4/attachment-0002.html>
More information about the Lazarus-es
mailing list