[Lazarus-es] Error al intentar abrir un TSQLQuery

Maxi maximiliano.duarte en gmail.com
Jue Sep 5 01:10:07 CEST 2013


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 <german_morre en yahoo.com.ar>
> *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org>
> *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
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130904/ef39dcce/attachment-0002.html>


More information about the Lazarus-es mailing list