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 17-12-2009
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Question Podeis decirme que hay mal en esta consulta

La Consulta es la siguiente

Código Delphi [-]
    if not (DataSourcePrin.DataSet.State=dsInsert) then    //OJO SOBRE EL DATASOURCE PRINCIPAL
    begin
      //Mostramos por tipo documento
      IBQLSGrabando.Active:=True;
      IBQLSGrabando.Active:=False;
      IBQLSGrabando.SQL.Clear;
      IBQLSGrabando.SQL.Add('SELECT * from LOTES_SALIDA WHERE '+
                                  '(LOTES_SALIDA.FECHA = ''''17/12/2009'''') AND'+
                           '(UPPER( LOTES_SALIDA.TIPO_DOCUMENTO) = UPPER(''''Salida de personal'''')) AND'+
                            '(UPPER( LOTES_SALIDA.NUMERO_DOCUMENTO) = UPPER(''''0''''))');
      IBQLSGrabando.Active:=True;

La base de datos es firebird, uso un IbQuery y el error
es

SQL Error code = -104
Token Unknown - line 1, column 58
17.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 17-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La verdad es que ese montón de comillas no tiene buena pinta...
¿Y si usas QuotedStr o parámetros?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 17-12-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Te sobra una comilla a ambos lados de 17/12/2009, Salida de personal y 0.
O sea todos los sitios donde tienes comillas serían 3 a cada lado no 4. Aunque para evitar problemas es mejor como dice Neftalí usar la función QuotedStr o parámetros.
__________________
No hope, no dreams, no love, my only escape is Underground
Responder Con Cita
  #4  
Antiguo 18-12-2009
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
efectivamente te sobra un par de comillas a cada lado... podrias intentar utilizar la funcion estandar: quotedStr()

Quedaria algo como:

Código:
IBQLSGrabando.SQL.Add(
   'SELECT * '
 +' from LOTES_SALIDA '
 +' WHERE (LOTES_SALIDA.FECHA = '+QuotedStr('17/12/2009')+')'
 +' AND (UPPER( LOTES_SALIDA.TIPO_DOCUMENTO) = UPPER('+QuotedStr('Salida de personal')+'))'
 +' AND (UPPER( LOTES_SALIDA.NUMERO_DOCUMENTO) = UPPER('+QuotedStr('0')+'))'
 );
Espero no hbaerhecho mal las cuentas en los parentesis...

saludos
Responder Con Cita
  #5  
Antiguo 18-12-2009
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Gracias a todos soluionado con el QuotedStr, me solto un error del String en la fecha, pero recordando los viejos tiempos cambie el orden del dia y el mes y funciono perfectamente, no se por que pasa, si alguien puede darme una explicación, aunque me temo que es una cuestión de idioma
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 18-12-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Cita:
Empezado por José Luis Garcí Ver Mensaje
recordando los viejos tiempos cambie el orden del dia y el mes y funciono perfectamente, no se por que pasa, si alguien puede darme una explicación, aunque me temo que es una cuestión de idioma
A mí me pasa lo mismo, tengo que cambiar el día por el mes para que me coja bien las fechas. No es por la base de datos, pues usando VB o Access no da problemas. Tampoco la configuración regional y de idioma pues está todo puesto en español.
Asique lo único que se me ocurre es que sea el IDE que está en inglés (D2009), no sé si será por eso.
__________________
No hope, no dreams, no love, my only escape is Underground
Responder Con Cita
  #7  
Antiguo 18-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Y no será una configuración de la instalación del servidor?
No se si en IB/FB funcionará, pero en SQL Server funciona perfectamente (y evita muchos problemas) utilizar el "formato chino" y te olvidas del orden del mes y el año.

No hacen falta separadores y se coloca como YYYYMMDD

Código SQL [-]
   ...
   where LastTimeUpdate < '20091217'
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 18-12-2009
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.051
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En firebird las fechas son anglosajonas 'mm/dd/aaaa', pero también puedes ponerlo de esta forma más cómoda: 'dd.mm.aaaa', así, con el punto de separador.
Responder Con Cita
  #9  
Antiguo 18-12-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
¿Y no será una configuración de la instalación del servidor?
No creo porque ya te digo que sólo pasa con Delphi, en todo lo demás las fechas se usan en formato dd/mm/aaaa.
__________________
No hope, no dreams, no love, my only escape is Underground
Responder Con Cita
  #10  
Antiguo 18-12-2009
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.051
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Axel_Tech Ver Mensaje
No creo porque ya te digo que sólo pasa con Delphi, en todo lo demás las fechas se usan en formato dd/mm/aaaa.
Repito :
En firebird las fechas son anglosajonas 'mm/dd/aaaa', pero también puedes ponerlo de esta forma más cómoda: 'dd.mm.aaaa', así, con el punto de separador.

Para ser más exacto, creo recordar que son 3 formas posibles:

DD.MM.YYYY
MM/DD/YYYY
YYYY-MM-DD

Última edición por Casimiro Notevi fecha: 18-12-2009 a las 16:35:40.
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
quien puede decirme porque me da un Access Violation esimon Internet 2 21-01-2009 05:03:25
Está bien esta consulta Select count? enecumene MySQL 12 30-08-2007 03:54:29
podeis decirme porque no funciona este codigo?¿?¿? kassel PHP 4 14-02-2004 01:47:03
podeis decirme porque no funciona este codigo?¿?¿? kassel Conexión con bases de datos 1 26-01-2004 14:50:01


La franja horaria es GMT +2. Ahora son las 22:27:48.


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