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 16-02-2005
yanelisroque yanelisroque is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
yanelisroque Va por buen camino
Post Respuesta

Hola!

De esa forma da error.
La tabla muestra formato mm/dd/aaaa, pero en realidad guarga como aaa-mm-dd. Yo estaba probando primero convertirla para poder compararla en la busqueda, pero me da error de incompatibilidad (datetime con datetimefield), y no se. Gracias.

var AnioTabla, MesTabla, DiaTabla, FechaTabla :Integer;

AnioTabla := YearOf(DataModule2.TITablaFecha);
MesTabla := MonthOf(DataModule2.TITablaFecha);
DiaTabla := DayOf(DataModule2.TITablaFecha);
FechaTabla := String (AnioTabla + '-' + MesTabla + '-' + DiaTabla);
Responder Con Cita
  #2  
Antiguo 16-02-2005
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
Cita:
Empezado por yanelisroque
De esa forma da error.
La tabla muestra formato mm/dd/aaaa, pero en realidad guarga como aaa-mm-dd.
Pero se trata de otro error: formato de fecha inadecuado. El QuotedStr es para encerrar el valor entre comillas que es lo que el servidor espera.


Cita:
Empezado por yanelisroque
pero me da error de incompatibilidad (datetime con datetimefield), y no se.
DateTimeField es un objeto, no un valor DateTime. Tendrías que usar la propiedad Value del objeto DateTimeField.

Y como te mencioné antes, muchos de estos problemas se solucionan y simplifican pasando los valores a la consulta mediante parámetros.

// Saludos
Responder Con Cita
  #3  
Antiguo 16-02-2005
yanelisroque yanelisroque is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
yanelisroque Va por buen camino
Post Respuesta2

Hola!

Si le pongo QuotedStr me da error: sintaxis error convirtiendo un datetime a un caracter string. Gracias.
if Menor.Checked = True then
DataModule2.QTTabla.SQL.Add('SELECT * FROM TTabla WHERE Fecha < ' + QuotedStr(Filtrar.Text) + ' ORDER BY Fecha');
if Mayor.Checked = True then
DataModule2.QTTabla.SQL.Add('SELECT * FROM TTabla WHERE Fecha > ' + QuotedStr(Filtrar.Text) + ' ORDER BY Fecha');
if Igual.Checked = True then
DataModule2.QTTabla.SQL.Add('SELECT * FROM TTabla WHERE Fecha = ' + QuotedStr(Filtrar.Text) + ' ORDER BY Fecha');

En el caso de un campo alfanumerico yo lo tengo asi y no da error pero con la fecha me da error.
WhereClause := 'NombreyApellidos LIKE ' + QuotedStr(Filtrar.Text + '%');
DataModule2.QTICuna.SQL.Add('SELECT * FROM TICuna WHERE ' + WhereClause + ' ORDER BY Fecha');
Responder Con Cita
  #4  
Antiguo 16-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues tendrás que aplicarle cuando menos FormatDateTime, y no sé si SQL Server al igual que Access, requiere almohadillas # delante y detras de la fecha, en ese caso podía quedar algo como
Código Delphi [-]
 QuotedStr('#'+FormatDateTime('mm/dd/yyyy',Edit1.Text)+'#');
Y quizás lo más simple pueda ser utilizar parámetros.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 17-02-2005
yanelisroque yanelisroque is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
yanelisroque Va por buen camino
Post Gracias

Hola!

El formatDateTime me da: [Error] BusquedaTIParvulos.pas(1107): There is no overloaded version of 'FormatDateTime' that can be called with these arguments.
Ya me funciona bien; lo q hice fue convertir la fecha q entra a aaa-mm-dd (separando el año, mes y dia y usando un string para formar la cadena) y comparo esa con la de la tabla y funciona bien. Muchas gracias por la ayuda.
Responder Con Cita
  #6  
Antiguo 16-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Prueba con:
Código SQL [-]
  FormatDateTime('mm/dd/yyyy',Edit1.Text);
y sino con:
Código SQL [-]
  QuotedStr(FormatDateTime('mm/dd/yyyy',Edit1.Text));

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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


La franja horaria es GMT +2. Ahora son las 03:41:53.


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