Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Longitud de una sentencia sql con TADOQRY en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=34941)

JuanPa1 25-08-2006 22:28:56

Longitud de una sentencia sql con TADOQRY en Delphi
 
Hola a todos, estoy desarrollando una aplicación en delphi y estoy utilizando TADOQRY para las consultas a la base de datos, pero resulta que cuando la sentencia sql es muy larga me sale un error que dice "String literals may have at most 255 elements", entonces es porque la sentencia es demasiado larga porque si le quito una parte funciona perfectamente. Hay algo q solucione esto u obligadamente debo utilizar otro componente TADOQRY para el resto de sentencia que me falta?
Gracias......

luisgutierrezb 25-08-2006 23:19:11

como asignas la consulta? asi como:
adoquery1.sql.add('instruccion sql...')
si es asi, mejor utiliza:
adoquery1.sql.text := 'instruccion sql...';

JuanPa1 25-08-2006 23:27:36

Longitud de una sentencia sql con TADOQRY en Delphi
 
Exacto estoy utilizando la instruccion qry.SQL.Add('sentencia sql');
Entonces no hay problema si en lugar del .Add utilizo el .Text? Solo cambio esa parte o algo mas?

JuanPa1 26-08-2006 00:16:22

Le he cambiado a la propiedad .Text y me sigue saliendo el mismo error que me daba con la propiedad .Add.
Hay otra alternativa para solucionar esto?

JuanPa1 28-08-2006 17:35:38

La sentencia sql es esta:
frmClientes.qry_reporte.SQL.Text := 'select BranchName,visit.category,RegDate,categry.contents,count(visit.category) as atendidos,avg(datediff(ss,StartTime,EndTime) - (datediff(ss,StartTime,EndTime)/60)*60)) as segundos from visit,categry where visit.category=categry.category and RegDate = '' ' + dia + ' '' and DATEDIFF(ss,StartTime,EndTime)>=20 group by visit.category,visit.BranchName,visit.RegDate,categry.contents order by visit.category';

maeyanes 28-08-2006 19:01:27

Prueba usando alias para las tablas, por ejemplo:

Código SQL [-]
select a.campo1, b.campo1 from tabla1 a, tabla2 b where a.campo1 = b.campo1;

Con eso puedes hacer el query más corto...


Saludos...

JuanPa1 28-08-2006 20:11:37

Lo resolvi el problema partiendo la sentencia en 2 utilizando el signo de concatenacion + de delphi. Por lo visto el error es porque el numero de caracteres de una linea en delphi tiene un limite.
De todas formas con lo tuyo tambien logre reducir la longitud de esta sentencia.
Gracias..


La franja horaria es GMT +2. Ahora son las 20:31:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi