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 26-08-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Problema para insertar un dato de tipo fecha en SQL Server 2000

Estimados

Buenas Noches, tengo el siguiente problema:

En una tabla tengo un campo fecha definido como Smalldatetime, cuando creo un procedimiento almacenado en el motor este parametro debe ser pasado como String para que pueda ser guardado.

Si creo este mismo procedimiento almacenado (de insercion de registro en la tabla) mediante codigo delphi que seria

.....
datamodule.Adoquery.SQL.ADD(Insert Into nTabla Values(:campo1,:campo2,:campo3)) donde el campo2 es de tipo smalldatetime me aparece un error que arroja el motor que me impide realizar la insercion.
el resto de la instruccion es
datamodule.Adoquery.Parameters.Parambyname('campo1').value:=dato1;
datamodule.Adoquery.Parameters.Parambyname('campo2').value:=dato2;
datamodule.Adoquery.Parameters.Parambyname('campo3').value:=dato3;
.....

Si alguien ya paso por esto y lo pudo solucionar le agradecere me cuente que tengo que corregir en el codigo.

Saludos
Alejandro Arancibia
CHILE

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ FUERZA MINEROS !!!!!!!!!!!!!!!!!!
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #2  
Antiguo 26-08-2010
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
El problema es que SQL Server permite la inserción de fechas depende del formato de fecha con el que esté configurado el servidor, un formato universal es el siguiente:

yyyymmdd

por ejemplo si tienes la fecha 24-set-2010 debes convertirlo a este valor: 20100924

Saludos
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 26-08-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
creo que el problema de entrada es que no deberías de tener que hacer ninguna conversión de texto a fecha o viceversa...

sql server maneja, define y distingue perfectamente los tipos de datos para las fechas.
__________________

Responder Con Cita
  #4  
Antiguo 26-08-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Lamentablemente al pasar el dato como fecha desde el datetimepicker1.date al parametro crenado por codigo la instruccion de insercion arroja un error.

Luego probare lo que suguieren acerca del pasar la fecha en formato yyyymmdd

Gracias por sus comentarios y luego les cuento que sucedio.

Saludos
Alejandro Arancibia
CHILE
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #5  
Antiguo 26-08-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues habría que ver como le estas pasando el parámetros y cuál es el error que te marca.

Lo siguiente funciona perfecto en SQL Server 2000 - 2008:

Código Delphi [-]
with ADOQuery do begin
 sql.clear;
sql.add('Update UnaTabla');
 sql.add('set Fecha = :Fecha');
 parameters.paramByname('fecha').value := UnDateTimePicker.DateTime;
 ExecSQL;
end;

si tu campo es de tipo "tiempo" pues bastaría con enviar solo el tiempo. Es decir, .Time en lugar de DateTime.
__________________

Responder Con Cita
  #6  
Antiguo 03-09-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
El error que arroja el motor es el Siguiente:

[Microsoft][ODBC SQL Server driver] Caracteristica opcional no implementada

Utilizando el ejemplo que dejastes que es el mismo que tengo en mi codigo.

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #7  
Antiguo 13-09-2010
vinicc vinicc is offline
Miembro
 
Registrado: ago 2006
Posts: 31
Poder: 0
vinicc Va por buen camino
Si aún no has solucionado tu problema podrías probar con esto:

a) parambyname('fecha').AsDateTime := Date;
b) parambyname('Fecha').asstring := formatdatetime('mm/dd/yyyy',Date);
c) parambyname('Fecha').asstring := formatdatetime('yyyy/mm/dd',Date);

Es posible que te estés conectando a la base de datos a través de obdc, si es el caso verifica el idioma que está predefinido para la base de datos.

Ok, espero que te sirva.
Responder Con Cita
  #8  
Antiguo 21-10-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Question Filtro por fecha

Finalmente nada funciono y tube que crear el procedimiento almacenado en el motor de base de datos SQL SERVER 2000.

La idea era realizar las consultas desde el codigo del programa y no tener que hacer un procedimiento almacenado por cada consulta.

Gracias a todos quienes aportaron.. un dato mas con SQL SERVER 2005 no hay ningun problema con las fechas.
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #9  
Antiguo 21-10-2010
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Hola Alejandro

has probado con la inserción de datos desde el mismo Sql... quisas sea un problema de configuracion como dicen por ahí... en algunas ocaciones te puede dar problemas hasta el separador de Fechas... yo tenia en un datetimepicker como separador el guion "-"... y cuando hacia el insert me daba error... asi que probe con el slash "\" y tambien cambie ese parametro en la configuración regional del computador.. y santo remedio

yo realizo la inserción desde delphi como en el ejemplo que te dejo ContraVeneno...

Salu2

PS: Otro Chileno más que utiliza Delphi... que bien.. ya no somos tan poquitos..
__________________
BlueSteel
Responder Con Cita
  #10  
Antiguo 21-10-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Smile La solución

aquí esta el codigo por si le sirve a alguien mas


SQL.Add('where ((fecnac>=Convert(datetime,:lv_desde,102)) and (fecnac<=Convert(datetime,:lv_hasta,102)))'); Parameters.ParamByName('lv_desde').Value:=DateTimePicker1.date; Parameters.ParamByName('lv_hasta').Value:=DateTimePicker2.date;


Pd: Con la inserción del campo fecha no tengo problemas solo al consultar en un rango de fechas.

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #11  
Antiguo 21-10-2010
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por Alejandro73 Ver Mensaje
Con la inserción del campo fecha no tengo problemas solo al consultar en un rango de fechas.
Hola Alejandro....

pero en que momento preguntas por como hacer una consulta.... siempre hablas de insertar un dato...

Aqui por ejemplo.. tengo una consulta de Ordenes durante un tiempo definido...

Código Delphi [-]

// Datos : Modulo de Datos
// AQ_VOrden -> Ado Query
// vDes y vHas son TDateTimePicker

Datos.AQ_VOrden.SQL.Clear;
 Datos.AQ_VOrden.SQL.Add('Select *');
 Datos.AQ_VOrden.SQL.Add('From Orden_Proveedor');
 Datos.AQ_VOrden.SQL.Add('Where Ord_Fecha Between :Var1 And :Var2');
 Datos.AQ_VOrden.SQL.Add('Order By Ord_Numero');
 Datos.AQ_VOrden.Parameters[0].Value := vDes.Date;
 Datos.AQ_VOrden.Parameters[1].Value := vHas.Date;
 Datos.AQ_VOrden.Open;

Bueno... Salu2
__________________
BlueSteel
Responder Con Cita
  #12  
Antiguo 21-10-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Sorry

Perdon pero este tema ya me tenia un poco confundido, te envie un mensaje a tu correo te llego?

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #13  
Antiguo 21-10-2010
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por Alejandro73 Ver Mensaje
Perdon pero este tema ya me tenia un poco confundido, te envie un mensaje a tu correo te llego?

Saludos
no.. nada.... pero a cual correo???...

Salu2
__________________
BlueSteel
Responder Con Cita
  #14  
Antiguo 21-10-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Mensaje Correo

Te envie un mensaje privado y uno a tu correo esto lo obtengo de tu perfil pero claro esta no aparece ninguna direccion solo un Link.

Si puedes me envias tu correo a alerob25@gmail.com

Espero no estar cometiendo una falta y que luego el administrador o el moderador me de un buen reto.

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
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
Fecha de SQL Server 2000 atrus MS SQL Server 2 07-01-2008 17:37:44
Convertir Campo en SQL SERVER a otro tipo de dato subzero MS SQL Server 1 29-06-2007 02:07:54
problema al insertar con MS SQL Server 2000 alastor MS SQL Server 13 07-11-2006 16:57:24
problema al insertar dato tipo date a un stringGrid emil SQL 2 11-07-2003 18:41:34


La franja horaria es GMT +2. Ahora son las 19:44: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