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 21-01-2006
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Question Comillas y fechas

Buenas estoy trabajando con SQLServer 2000 y delphi 7, uso el sgte codigo:
Código:
Q1.Close;
Q1.SQL.Clear;
Q1.SQL.Add('SELECT N_Caso, F_Denuncia, S_NombDenunciado
FROM  T_Caso 
WHERE F_Denuncia=:Param1');
Q1.Parameters[0].Value:=DateTimePicker1.Date;
Q1.Open;
Pero me bota error "Caracteristica no implementada". Hize pruebas en el SQL Server y las fechas deben ir con comillas simples es decir asi:

Código:
SELECT N_Caso, F_Denuncia, S_NombDenunciado
FROM  T_Caso 
WHERE F_Denuncia='20/10/2003'
Si no se pone las comillas separa la cadena y no encuentra nada, ahora bien como hacer para mandar esta fecha al adoquery con comillas o como hacer para mandar la fecha del datetimepicker al adoquery, gracias d antemano.
Responder Con Cita
  #2  
Antiguo 21-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No estoy seguro porque ADO difiere de otros querys pero intenta establecer explícitamente el tipo de parámetro:

Código Delphi [-]
Q1.Parameters[0].DataType := ftDate;

antes de abrir la consulta.

// Saludos
Responder Con Cita
  #3  
Antiguo 21-01-2006
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Gracias Roman por la rapida respuesta, pero ya probe esa forma...incluso probe poner los datos de entrada en al Adoquery y definir el parametro como datetime, para luego solo mandar el parametro pero tampoco me funciono...creo q es por el SQL Server ya q la misma sentencia uso en access y funciona bien..
Responder Con Cita
  #4  
Antiguo 23-01-2006
piccolo2101 piccolo2101 is offline
Miembro
 
Registrado: oct 2005
Posts: 63
Poder: 19
piccolo2101 Va por buen camino
Lightbulb

Hola,

yo estoy trabajando con lo mismo y me funciona bien. ¿Has probado poner directamente una fecha y ver si ejecuta bien?

Código Delphi [-]
Q1.Close;
Q1.SQL.Clear;
Q1.SQL.Add('SELECT N_Caso, F_Denuncia, S_NombDenunciado
FROM  T_Caso 
WHERE F_Denuncia=''dd/mm/yyyy'''); // p.e 23/01/2006
Q1.Parameters[0].Value:=DateTimePicker1.Date;
Q1.Open;

Un saludo.
Responder Con Cita
  #5  
Antiguo 24-01-2006
Avatar de Jonnathan
Jonnathan Jonnathan is offline
Miembro
 
Registrado: may 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 64
Poder: 19
Jonnathan Va por buen camino
Tal vez podrías probar algo como:
Código Delphi [-]
...
Q1.SQL.Add('SELECT N_Caso, F_Denuncia, S_NombDenunciado
FROM  T_Caso 
WHERE F_Denuncia=:Param1');
Q1.Parameters[0].DataType := ftString;
Q1.Parameters[0].Value:=DateToStr(DateTimePicker1.Date);
Q1.Open;
A los parámetros de tipo string delphi les pone las comillas. Si tienes problemas con el formato de la fecha tranformada y el formato que admite el servidor entonces usa la funcion FormatDateTime en vez de DateToStr, prueba y nos dices que tal. Saludos.
__________________
"En el siglo de la estupidez todas las casas comienzan por la fachada" (Fuckowsky)
Planeta Insólito, La Pluma Inspirada
Responder Con Cita
  #6  
Antiguo 24-01-2006
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Gracias Piccolo probe tu forma y funciona super gracias
Responder Con Cita
  #7  
Antiguo 26-01-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Usa la función de Delphi

A mi me pasaba igual con MySQL y las fechas y descubir que:

Las fechas para MySQL por default son en formato AAAA-MM-DD y deben ir
entre comillas sencillas o dobles.

Ahora, como le haces para ponerle las comillas, que es tu pregunta...pues la funcion QuotedStr precisamente hace eso, le pasas una cadena y te devuelve la misma cadena pero con comillas sencillas de manera que para lo que quieres hacer quedaria asi:

Código Delphi [-]
MiQuery.SQL.Add('SELECT FECHA,NOMBRE FROM TABLA WHERE FECHA=:PARAMETRO');
MiQuery.ParamByName('PARAMETRO').AsString := QuotedStr('2001-01-01');
MiQuery.Open;

obviamente en el código de ejemplo hay que sustituir la fecha por la que quieras tomandola del datetimepicker usando una función para cambiar a cadena.

Ojala te sirva.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Las horribles fechas, control de fechas Huer OOP 6 18-10-2005 19:11:49
Consultar fechas en firebird (SQL) pepitu Firebird e Interbase 7 28-09-2005 19:19:23
Filtrar fechas en QuickReport blamsa Impresión 1 06-05-2005 14:15:46
Comillas en SelectSQL (IBDataSet) oliverinf Firebird e Interbase 3 03-09-2004 23:13:52
Tiempo que hay entre dos fechas cmgenny Varios 3 03-10-2003 20:06:37


La franja horaria es GMT +2. Ahora son las 13:43:39.


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