[Lazarus-es] Error al intentar abrir un TSQLQuery

Maxi maximiliano.duarte en gmail.com
Jue Sep 5 02:17:17 CEST 2013


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




More information about the Lazarus-es mailing list