Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-09

Error al intentar abrir un TSQLQuery

22 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ismael L. Donis Garcia

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

Reply by email

German
to Ismael L. Donis Garcia

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�:

Show quoted text 78 lines
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

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130904/89528f0f/attachment.html>

Reply by email

Ismael L. Donis Garcia
to German

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 |
========

Earlier message 83 lines
----- 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

Reply by email

Maxi
to Ismael L. Donis Garcia

Tenes campos creados en el.objeto?
El 04/09/2013 17:33, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�:

Show quoted text 174 lines
** 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.freepascal.org/pipermail/lazarus-es/attachments/20130904/ef39dcce/attachment.html>

Reply by email

Maxi
to Maxi

Ahora viendo mas detenido el codigo te digo que es por la propiedad indexnames; Todo cambio lo debes hacer cerrada la consulta.
Para que no se note un parpadeo entre cambios usas disablecontrols y enablecontrols.
Esto deja conjelado los controles y cuando vuelve ya muesta los datos nuevos.

De todos modos si algo va a ser dinamico yo usaria directamente una consulta y un order by desde la consulta.

with TSQLQuery.Create(nil) do
try
  asigno la conexion
  ... y demas cosas
  sql.text:= Format(CADENA_SQL,[parametro1,parametro2,parametro3,,,,,,,,,etc]) ;
  open;
  hago lo necesarios
Finally
  Free;
end;

CADENA_SQL la guado en una unidad con todas las consultas como constantes, y si hay que cambiar algo ya sabes donde est�.

CADENA_SQL:= 'select s.cuenta, s.subcta, s.capitulo, s.subcap, s.elemento, '+ ' s.empresa, s.debe, s.haber, s.saldo,
s.nat, s.descripcion, '+
' 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)' +

                           ' order by cuenta; sctaor; subcta; capor;

capitulo, scapor, subcap, eleor, elemento, empor,empresa';

Te sugiero el uso de vistas en el motor, te resuelven muchas cosas y mejoran la velocidad.

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Ismael L. Donis Garcia
to Maxi
Show quoted text 6 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Wednesday, September 04, 2013 8:17 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery
Show quoted text 40 lines
Ahora viendo mas detenido el codigo te digo que es por la propiedad indexnames; Todo cambio lo debes hacer cerrada la consulta. Para que no se note un parpadeo entre cambios usas disablecontrols y enablecontrols. Esto deja conjelado los controles y cuando vuelve ya muesta los datos nuevos. De todos modos si algo va a ser dinamico yo usaria directamente una consulta y un order by desde la consulta. with TSQLQuery.Create(nil) do try asigno la conexion ... y demas cosas sql.text:= Format(CADENA_SQL,[parametro1,parametro2,parametro3,,,,,,,,,etc]) ; open; hago lo necesarios Finally Free; end; CADENA_SQL la guado en una unidad con todas las consultas como constantes, y si hay que cambiar algo ya sabes donde est�. CADENA_SQL:= 'select s.cuenta, s.subcta, s.capitulo, s.subcap, s.elemento, '+ ' s.empresa, s.debe, s.haber, s.saldo, s.nat, s.descripcion, '+ ' 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)' + ' order by cuenta; sctaor; subcta; capor; capitulo, scapor, subcap, eleor, elemento, empor,empresa'; Te sugiero el uso de vistas en el motor, te resuelven muchas cosas y mejoran la velocidad. --

El TSQLQuery lo tengo puesto en tiempo de dise�o en un DataModule, al igual que el SQLTransaction y el IBConnection

TSQLTransaction.name:='trasc3';
TSQLQuery.name:='rssc3';

Como dije antes tengo este procedimiento:

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:='';
  rssc3.Filter:='';
  rssc3.SQL.Clear;
  rssc3.SQL.Text := sqlstr;
  rssc3.ReadOnly := blnread;
  trasc3.StartTransaction;
  rssc3.Open;
end;

Yo se que el error me lo est� dando la propiedad IndexFieldNames, porque de hecho si la quito, no me da el error. El problema es que en una consulta para visualizar un informe la necesito y por tal motivo la uso.

Ahora si muestro ese informe y trato de mostrar otro informe me da dicho error al intentar abrir de nuevo el TSQLQuery. Para mi ese es un bug del componente en si. Como que no coge la propiedad: rssc3.IndexFieldNames:='';

No puedo hacer vistas en la BD porque como ya dije antes es una consulta de multiple bases de datos y por tal motivo lo que hago es abrir la consulta vacia y despu�s le agrego los valores optenidos en otras consultas. Es decir los registros del TSQLQuery yo los lleno a partir de varias consultas mediante:

strsql:='xxxxx';
dm.p_rssc7(strsql, true, true)
while not dm.rssc7.EOF do begin
    dm.rssc3.Append;
    ....
   dm.rssc3.Post;
   dm.rssc7.Next;
end;

Saludos Reiterados
========
| ISMAEL |
========

Reply by email

Ismael L. Donis Garcia
to Maxi: Tenes campos creados en el.objeto? El 04/09/2013 17:33, "Ismael L. Donis Garcia" <ismael…

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 |
========

Earlier message 142 lines
----- 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

Reply by email

Maxi
to Ismael L. Donis Garcia: El TSQLQuery lo tengo puesto en tiempo de dise�o en un DataModule, al igual que el…

Prob�, asi

sqlquery1.disableConstrols;
sqlquery1.close;
sqlquery1.sql.text:= .... tu consulta
sqlquery1.indexfieldnames:= .... tus campos
sqlquery1.Open;
sqlquery1.Enablecontrols;
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Ismael L. Donis Garcia: Campos creados? No nunca en tiempo de dise�o le he agregado campos. Siempre lo he…

Ya te hago un demo, y te lo envio. Usas firebird?
si es asi, record� crear estos indices individuales, asi los aprovecha si est� la base en el motor, si es local o en memoria da igual.

El d�a 5 de septiembre de 2013 09:50, Ismael L. Donis Garcia <ismael en citricos.co.cu> escribi�:

Show quoted text 247 lines
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 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Maxi

me parece que es un bug del componente, te paso un demo que hice y me da el mismo error pero es aleatorio.
Te sugiero que trates de usar el order by en vez de lo indexname

El d�a 5 de septiembre de 2013 10:54, Maxi
<maximiliano.duarte en gmail.com> escribi�:

Show quoted text 264 lines
Ya te hago un demo, y te lo envio. Usas firebird? si es asi, record� crear estos indices individuales, asi los aprovecha si est� la base en el motor, si es local o en memoria da igual. El d�a 5 de septiembre de 2013 09:50, Ismael L. Donis Garcia <ismael en citricos.co.cu> escribi�: > 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 > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Ismael L. Donis Garcia
to Maxi: Prob�, asi sqlquery1.disableConstrols; sqlquery1.close; sqlquery1.sql.text:= .... tu…
Show quoted text 6 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, September 05, 2013 8:59 AM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery
Show quoted text 8 lines
Prob�, asi sqlquery1.disableConstrols; sqlquery1.close; sqlquery1.sql.text:= .... tu consulta sqlquery1.indexfieldnames:= .... tus campos sqlquery1.Open; sqlquery1.Enablecontrols;

Cuando lo pongo as� no funciona la propiedad indexfieldnames, no ordena los registros del TSQLQuery

Recuerda que yo agrego los registros mediante:

sqlquery1.append;
....
sqlquery1.post;

Recuerda que los registros no se obtienen directo de una consulta, incluso de una sola Base de Datos, e Incluso de un solo servidor.

Yo tengo varias conexiones a varios servidores de los cuales hago consultas y despu�s agrego dichos datos al TSQLQuery y despu�s ordeno dichos datos, una vez est�n dentro del TSQLQuery y se los entrego por �ltimo al reporte ordenados. Porque entregarlos ordenados?

Porque el LastReport no tiene una propiedad para ordenar los datos por m�ltiples �ndices. Eso para no decir que no lo tiene ni por un solo �ndice, m�s en mi caso que no los he contado pero que son como 11 �ndices en orden.

Respondiendo al otro mensaje.

Si uso Firebird 2.5.2 Update 1, pero como te dije antes olv�date de �ndices en las tablas porque ya los tienen, pero esos no me sirven para nada "solo para la consulta en esa BD", no para las otras BD que por ejemplo 1 puede estar de la otra hasta decenas de kil�metros de distancia.

Como te dije antes estoy 100% seguro que es un problema del componente y no de lo que yo estoy realizando. Voy a ponerme a realizarte un ejemplo bien sencillo dentro de una misma base de datos para hac�rtelo llegar.

Saludos Reiterados
========
| ISMAEL |
========

Reply by email

Ismael L. Donis Garcia
to Maxi: me parece que es un bug del componente, te paso un demo que hice y me da el mismo error…
Show quoted text 6 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, September 05, 2013 11:17 AM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery
me parece que es un bug del componente, te paso un demo que hice y me da el mismo error pero es aleatorio. Te sugiero que trates de usar el order by en vez de lo indexname

Ya me era casi seguro, de hecho te lo hab�a comentado en otros mensajes. Pero yo no tengo acceso a Internet y por tanto no puedo reportar el problema, por lo que dependo de que otros lo hagan por mi. Yo solo lo que puedo es buscar el problema y si doy con el tratar de arreglarlo en el c�digo fuente de mi componente. Pero entonces cada vez que actualice tendr�a que estar corrigiendo. Eso si encuentro el problema.

Como ya te coment� antes por el tipo de consulta me es imposible, imposible, imposible usar el order by.

Saludos Reiterados
========
| ISMAEL |
========

Reply by email

Ismael L. Donis Garcia
to Maxi
Show quoted text 10 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, September 05, 2013 2:08 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Si agregas registros a una tabla en tu motor, y haces un select, si puedes usar el order by. N logro entender porque no lo puedes hacer.

Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos.

No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar.

Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos.

Saludos Reiterados
========
| ISMAEL |
========

Reply by email

Martin Gomez
to Ismael L. Donis Garcia

2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu>

Show quoted text 15 lines
Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos.

?Y usar un memorydataset?
De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback)

Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte.

Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130905/7094c803/attachment.html>

Reply by email

Ismael L. Donis Garcia
to Martin Gomez

No, porque nunca realizo el Commit.

Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria.

Se llena en memoria, pero nunca se actualiza en la tabla.

Saludos Cordiales
========
| ISMAEL |
========

Earlier message 35 lines
----- Original Message ----- From: Martin Gomez To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 3:28 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. ?Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. Albert Einstein ------------------------------------------------------------------------------

Reply by email

Maxi
to Ismael L. Donis Garcia

Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s.
El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�:

Show quoted text 64 lines
** No, porque nunca realizo el Commit. Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. Se llena en memoria, pero nunca se actualiza en la tabla. Saludos Cordiales ======== | ISMAEL | ======== ----- Original Message ----- *From:* Martin Gomez <mmgomez en gmail.com> *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, September 05, 2013 3:28 PM *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> > Si pero eso que dices es para mi algo impensable desde el punto de vista > de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el > disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, > adem�s de estar controlando una serie de par�metros para que otro usuario > no vaya a borrarte dichos datos. > > No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa > por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a > pensar. > > Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery > y puedo arreglar el c�digo del componente, aunque tenga que estarlo > arreglando cada vez que actualice. Y la otra es que alguien reporte el bug > del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. > ?Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------------------------ _______________________________________________ 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.freepascal.org/pipermail/lazarus-es/attachments/20130905/1c9b76dc/attachment-0001.html>

Reply by email

Ismael L. Donis Garcia
to Maxi

Si pero pierdes mucho tiempo en el acceso al disco. Por tal motivo y si no es estrictamente necesario no lo uso. Y este no es el caso.

Lo que pasa es que tiene un bug el TSQLQuery, para mi en esa direcci�n es donde hay que trabajar, y no ponerse uno a hacer cosas por tratar de evitar un error en un c�digo de Lazarus que al final lo que hacen es perjudicar en el rendimiento de tu aplicaci�n.

Yo esta noche voy a ver si le meto cabeza para ver si lo puedo solucionar en el TSQLQuery. Caso contrario ver porque v�a puedo reportar el error si ninguno de los miembros de la lista lo hace.

Aunque creo que eso no es un error del TSQLQuery. Para mi entender esa propiedad la hereda de otra clase, pero bueno eso lo mirar� esta noche porque ya me retiro del trabajo.

Saludos Reiterados y ma�ana les cuento que puede hacer esta noche. ========
| ISMAEL |
========

Earlier message 57 lines
----- Original Message ----- From: Maxi To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 4:16 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s. El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: No, porque nunca realizo el Commit. Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. Se llena en memoria, pero nunca se actualiza en la tabla. Saludos Cordiales ======== | ISMAEL | ======== ----- Original Message ----- From: Martin Gomez To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 3:28 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. ?Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. Albert Einstein --------------------------------------------------------------------------

Reply by email

Maxi
to Ismael L. Donis Garcia

Haz una �ltima prueba, para poder dar un reporte completo, prueba de crear y destruir el objeto entre consulta y consulta. Me parece un herror de inicializacion
El 05/09/2013 18:04, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�:

Show quoted text 110 lines
** Si pero pierdes mucho tiempo en el acceso al disco. Por tal motivo y si no es estrictamente necesario no lo uso. Y este no es el caso. Lo que pasa es que tiene un bug el TSQLQuery, para mi en esa direcci�n es donde hay que trabajar, y no ponerse uno a hacer cosas por tratar de evitar un error en un c�digo de Lazarus que al final lo que hacen es perjudicar en el rendimiento de tu aplicaci�n. Yo esta noche voy a ver si le meto cabeza para ver si lo puedo solucionar en el TSQLQuery. Caso contrario ver porque v�a puedo reportar el error si ninguno de los miembros de la lista lo hace. Aunque creo que eso no es un error del TSQLQuery. Para mi entender esa propiedad la hereda de otra clase, pero bueno eso lo mirar� esta noche porque ya me retiro del trabajo. Saludos Reiterados y ma�ana les cuento que puede hacer esta noche. ======== | ISMAEL | ======== ----- Original Message ----- *From:* Maxi <maximiliano.duarte en gmail.com> *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, September 05, 2013 4:16 PM *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s. El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: > ** > No, porque nunca realizo el Commit. > > Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos > los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. > > Se llena en memoria, pero nunca se actualiza en la tabla. > > Saludos Cordiales > ======== > | ISMAEL | > ======== > > ----- Original Message ----- > *From:* Martin Gomez <mmgomez en gmail.com> > *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> > *Sent:* Thursday, September 05, 2013 3:28 PM > *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery > > > 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> > >> Si pero eso que dices es para mi algo impensable desde el punto de vista >> de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el >> disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, >> adem�s de estar controlando una serie de par�metros para que otro usuario >> no vaya a borrarte dichos datos. >> >> No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me >> pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se >> podr�a pensar. >> >> Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery >> y puedo arreglar el c�digo del componente, aunque tenga que estarlo >> arreglando cada vez que actualice. Y la otra es que alguien reporte el bug >> del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. >> > > ?Y usar un memorydataset? > De todas maneras lo est�s grabando en el disco al hacer un ?Append al > TSQLQuery (aunque luego lo reviertas con un rollback) > > Otra alternativa ser�a crear una tabla temporal con un nombre que no > exista, y eliminarla al finalizar el reporte. > > > -- > Try not to become a man of success but rather to become a man of value. *Albert > Einstein* > > ------------------------------ > > _______________________________________________ > 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.freepascal.org/pipermail/lazarus-es/attachments/20130905/e248ce57/attachment-0001.html>

Reply by email

Ismael L. Donis Garcia
to Maxi

No entiendo como destruirlo ya que es creado en tiempo de dise�o no puedo decir:

SQLQuery1.Close;
SQLQuery1.Free;
SQLQuery1.SQL.text:= 'select * from articulos';

Ya que al asignarle el SQL no va a existir el objeto en memoria y por tal motivo dar� error.

En todo caso prueba lo que mencionas en el ejemplo que me mandaste.

Anoche no tuve mucho tiempo de investigar, lo poco que revis� no me dio resultado positivo alguno. Veremos si tu tienes m�s suerte que yo.

Hoy tengo un d�a muy complicado, pero de todos modos voy a seguir revisando.

Saludos Reiterados
========
| ISMAEL |
========

Earlier message 80 lines
----- Original Message ----- From: Maxi To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 5:20 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Haz una �ltima prueba, para poder dar un reporte completo, prueba de crear y destruir el objeto entre consulta y consulta. Me parece un herror de inicializacion El 05/09/2013 18:04, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: Si pero pierdes mucho tiempo en el acceso al disco. Por tal motivo y si no es estrictamente necesario no lo uso. Y este no es el caso. Lo que pasa es que tiene un bug el TSQLQuery, para mi en esa direcci�n es donde hay que trabajar, y no ponerse uno a hacer cosas por tratar de evitar un error en un c�digo de Lazarus que al final lo que hacen es perjudicar en el rendimiento de tu aplicaci�n. Yo esta noche voy a ver si le meto cabeza para ver si lo puedo solucionar en el TSQLQuery. Caso contrario ver porque v�a puedo reportar el error si ninguno de los miembros de la lista lo hace. Aunque creo que eso no es un error del TSQLQuery. Para mi entender esa propiedad la hereda de otra clase, pero bueno eso lo mirar� esta noche porque ya me retiro del trabajo. Saludos Reiterados y ma�ana les cuento que puede hacer esta noche. ======== | ISMAEL | ======== ----- Original Message ----- From: Maxi To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 4:16 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s. El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: No, porque nunca realizo el Commit. Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. Se llena en memoria, pero nunca se actualiza en la tabla. Saludos Cordiales ======== | ISMAEL | ======== ----- Original Message ----- From: Martin Gomez To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 3:28 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. ?Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. Albert Einstein ----------------------------------------------------------------------

Reply by email

German
to Ismael L. Donis Garcia

El 06/09/2013 11:10 a.m., Ismael L. Donis Garcia escribi�:

Hola Ismael

En tu proceso una vez que ya ejecutaste el query haces un SQLQuery.free, pero luego antes de usarlo debes crearlo nuevamente con SQLQuery := TSQLQuery.Create(nil); de otra manera no podras utilizarlo pues el objeto no existe..

Saludos!

Show quoted text 165 lines
No entiendo como destruirlo ya que es creado en tiempo de dise�o no puedo decir: SQLQuery1.Close; SQLQuery1.Free; SQLQuery1.SQL.text:= 'select * from articulos'; Ya que al asignarle el SQL no va a existir el objeto en memoria y por tal motivo dar� error. En todo caso prueba lo que mencionas en el ejemplo que me mandaste. Anoche no tuve mucho tiempo de investigar, lo poco que revis� no me dio resultado positivo alguno. Veremos si tu tienes m�s suerte que yo. Hoy tengo un d�a muy complicado, pero de todos modos voy a seguir revisando. Saludos Reiterados ======== | ISMAEL | ======== ----- Original Message ----- *From:* Maxi <mailto:maximiliano.duarte en gmail.com> *To:* Spanish version of Lazarus List <mailto:lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, September 05, 2013 5:20 PM *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Haz una �ltima prueba, para poder dar un reporte completo, prueba de crear y destruir el objeto entre consulta y consulta. Me parece un herror de inicializacion El 05/09/2013 18:04, "Ismael L. Donis Garcia" <ismael en citricos.co.cu <mailto:ismael en citricos.co.cu>> escribi�: Si pero pierdes mucho tiempo en el acceso al disco. Por tal motivo y si no es estrictamente necesario no lo uso. Y este no es el caso. Lo que pasa es que tiene un bug el TSQLQuery, para mi en esa direcci�n es donde hay que trabajar, y no ponerse uno a hacer cosas por tratar de evitar un error en un c�digo de Lazarus que al final lo que hacen es perjudicar en el rendimiento de tu aplicaci�n. Yo esta noche voy a ver si le meto cabeza para ver si lo puedo solucionar en el TSQLQuery. Caso contrario ver porque v�a puedo reportar el error si ninguno de los miembros de la lista lo hace. Aunque creo que eso no es un error del TSQLQuery. Para mi entender esa propiedad la hereda de otra clase, pero bueno eso lo mirar� esta noche porque ya me retiro del trabajo. Saludos Reiterados y ma�ana les cuento que puede hacer esta noche. ======== | ISMAEL | ======== ----- Original Message ----- *From:* Maxi <mailto:maximiliano.duarte en gmail.com> *To:* Spanish version of Lazarus List <mailto:lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, September 05, 2013 4:16 PM *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s. El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu <mailto:ismael en citricos.co.cu>> escribi�: No, porque nunca realizo el Commit. Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. Se llena en memoria, pero nunca se actualiza en la tabla. Saludos Cordiales ======== | ISMAEL | ======== ----- Original Message ----- *From:* Martin Gomez <mailto:mmgomez en gmail.com> *To:* Spanish version of Lazarus List <mailto:lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, September 05, 2013 3:28 PM *Subject:* Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu <mailto:ismael en citricos.co.cu>> Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. /Albert Einstein/ ------------------------------------------------------------------------ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org <mailto: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 <mailto: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 <mailto: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 <mailto: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.freepascal.org/pipermail/lazarus-es/attachments/20130906/b095042b/attachment-0001.html>

Reply by email

Ismael L. Donis Garcia
to German

Ante todo disculpen que no haya respondido antes. El sabado no trabaj�. Y hoy recien llego. (he estado fuera por varias causas).

German recuerda que el componente est� puesto en tiempo de dise�o en un DataModule por lo que no se debe descargar ya que perder�as la funcionalidad de estar como un objeto disponible para otras clases.

Adem�s si hago lo que dices despu�s tendr�a que asignarle el TSQLTransation. �sea tendr�a que decir tambi�n.
       SQLQuery1 := TSQLQuery.Create(nil);
       //SQLQuery1.DataBase:=IBConnection1;
       SQLQuery1.Transaction:=SQLTransaction1;

Eso si tengo TSQLTransaction tambi�n el TIBConection asignado ya previamente al TSQLTransaction.

Pero te digo m�s. Aun as� sigue dando el mismo error. Ya lo prov�

Saludos Reiterados
========
| ISMAEL |
========

Earlier message 113 lines
----- Original Message ----- From: German To: Spanish version of Lazarus List Sent: Friday, September 06, 2013 7:46 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery El 06/09/2013 11:10 a.m., Ismael L. Donis Garcia escribi�: Hola Ismael En tu proceso una vez que ya ejecutaste el query haces un SQLQuery.free, pero luego antes de usarlo debes crearlo nuevamente con SQLQuery := TSQLQuery.Create(nil); de otra manera no podras utilizarlo pues el objeto no existe.. Saludos! No entiendo como destruirlo ya que es creado en tiempo de dise�o no puedo decir: SQLQuery1.Close; SQLQuery1.Free; SQLQuery1.SQL.text:= 'select * from articulos'; Ya que al asignarle el SQL no va a existir el objeto en memoria y por tal motivo dar� error. En todo caso prueba lo que mencionas en el ejemplo que me mandaste. Anoche no tuve mucho tiempo de investigar, lo poco que revis� no me dio resultado positivo alguno. Veremos si tu tienes m�s suerte que yo. Hoy tengo un d�a muy complicado, pero de todos modos voy a seguir revisando. Saludos Reiterados ======== | ISMAEL | ======== ----- Original Message ----- From: Maxi To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 5:20 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Haz una �ltima prueba, para poder dar un reporte completo, prueba de crear y destruir el objeto entre consulta y consulta. Me parece un herror de inicializacion El 05/09/2013 18:04, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: Si pero pierdes mucho tiempo en el acceso al disco. Por tal motivo y si no es estrictamente necesario no lo uso. Y este no es el caso. Lo que pasa es que tiene un bug el TSQLQuery, para mi en esa direcci�n es donde hay que trabajar, y no ponerse uno a hacer cosas por tratar de evitar un error en un c�digo de Lazarus que al final lo que hacen es perjudicar en el rendimiento de tu aplicaci�n. Yo esta noche voy a ver si le meto cabeza para ver si lo puedo solucionar en el TSQLQuery. Caso contrario ver porque v�a puedo reportar el error si ninguno de los miembros de la lista lo hace. Aunque creo que eso no es un error del TSQLQuery. Para mi entender esa propiedad la hereda de otra clase, pero bueno eso lo mirar� esta noche porque ya me retiro del trabajo. Saludos Reiterados y ma�ana les cuento que puede hacer esta noche. ======== | ISMAEL | ======== ----- Original Message ----- From: Maxi To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 4:16 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery Existen tablas temporales, las creas y usas y borras a gusto y la puedes levantar despu�s. El 05/09/2013 17:03, "Ismael L. Donis Garcia" <ismael en citricos.co.cu> escribi�: No, porque nunca realizo el Commit. Y de ello puedes estar m�s que seguro porque ni tan siquiera lleno todos los campos requeridos de la tabla, ni tan siquiera lleno la llave primaria. Se llena en memoria, pero nunca se actualiza en la tabla. Saludos Cordiales ======== | ISMAEL | ======== ----- Original Message ----- From: Martin Gomez To: Spanish version of Lazarus List Sent: Thursday, September 05, 2013 3:28 PM Subject: Re: [Lazarus-es] Error al intentar abrir un TSQLQuery 2013/9/5 Ismael L. Donis Garcia <ismael en citricos.co.cu> Si pero eso que dices es para mi algo impensable desde el punto de vista de l�gica, ya que estar�a obteniendo los datos y despu�s salvandolos en el disco, para despu�s volverlos a leer. Eso si que es perdida de tiempo, adem�s de estar controlando una serie de par�metros para que otro usuario no vaya a borrarte dichos datos. No, no eso para mi, ni pensarlo. Para ni forma de trabajar eso ni me pasa por la cabeza, para mi es la chapucer�a m�s grande de la cual se podr�a pensar. Primero lo que voy a tratar de ver si encuentro el error en el TSQLQuery y puedo arreglar el c�digo del componente, aunque tenga que estarlo arreglando cada vez que actualice. Y la otra es que alguien reporte el bug del componente a ver si lo arreglan lo cual ser�a lo mejor para todos. ?Y usar un memorydataset? De todas maneras lo est�s grabando en el disco al hacer un ?Append al TSQLQuery (aunque luego lo reviertas con un rollback) Otra alternativa ser�a crear una tabla temporal con un nombre que no exista, y eliminarla al finalizar el reporte. -- Try not to become a man of success but rather to become a man of value. Albert Einstein ------------------------------------------------------------------

Reply by email