Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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.339
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 10:05:05.


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