Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-08-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 19
JuanPa1 Va por buen camino
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......
Responder Con Cita
  #2  
Antiguo 25-08-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
como asignas la consulta? asi como:
adoquery1.sql.add('instruccion sql...')
si es asi, mejor utiliza:
adoquery1.sql.text := 'instruccion sql...';
Responder Con Cita
  #3  
Antiguo 25-08-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 19
JuanPa1 Va por buen camino
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?
Responder Con Cita
  #4  
Antiguo 26-08-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 19
JuanPa1 Va por buen camino
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?
Responder Con Cita
  #5  
Antiguo 28-08-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 19
JuanPa1 Va por buen camino
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';
Responder Con Cita
  #6  
Antiguo 28-08-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
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...
Responder Con Cita
  #7  
Antiguo 28-08-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Poder: 19
JuanPa1 Va por buen camino
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..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Validacion de longitud en un campo. Delphiboy Conexión con bases de datos 1 10-12-2005 19:36:37
Como hago para colocar una sentencia sql en varias lineas de codigo en delphi Shidalis OOP 5 16-08-2005 18:24:36
Longitud cero en SQL Anunakis SQL 6 14-04-2004 16:21:45
Longitud de Cadena (en píxeles!!!) Jose_Pérez API de Windows 2 01-06-2003 13:28:00


La franja horaria es GMT +2. Ahora son las 04:09:51.


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
Copyright 1996-2007 Club Delphi