FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error En Campo Fecha
RESULTA QUE CUANDO CONSULTO UN DETERMINADO REGISTRO DE LA BASE DE DATOS EN EL CUAL EN UNA COLUMNA DE TIPO DATETIME. HAGO LA SIGUIENTE CONSULTA.
BIEN CUANDO HAY UN REGISTRO EN EL QUE AUN NO TIENE UNA FECHA. AL REGRESAR UN CAMPO DE TIPOD FECHA PARA CARGARLO AL tDATETIME ME MANDA EL SIGUIENTE ERROR IS NOT A VALID DATE. ALGUIEN SABER COMO PONER UNA FECHA EN UN TDATE CUANDO EL CAMPO DE LA BASE DE DATOS DE TIPO FECHA ESTA VACIO? |
#2
|
|||
|
|||
Añádele la información:
TDateTime necesita un formato de dd/mm/yyyy hh:mm:ss En este caso puedes hacer dos opciones Fregistro.dtp_fecha_turno.DateTime:=StrToDate(FieldByname('fecha_turnado').AsString); El dato fecha_turnado puede ser vacío ¿verdad? If FieldByname('fecha_turnado').Value is null then << lo que quieras >> Posicionarlo como "clear" de tal manera que en la base queda en blanco. Asígnarle una fecha por defecto, o si el campo es un formato dd/mm/yyyy deberás añadirle la hora. Sino, también puedes capturar el código crítico Try Fregistro.dtp_fecha_turno.DateTime:=StrToDate(FieldByname('fecha_turnado').AsString); Except << aquí metes el código para el error >>> por ejemplo: Fregistro.dtp_fecha_turno.DateTime := nil End;//del try No recuerdo si se le asigna con nil. Sino puedes utilizar la opción de asignarle la fecha por defecto que requieras. Saludos. |
#3
|
||||
|
||||
siempre y cuando tu fecha sea fecha... me refiero a que el campo fecha, este definido como fecha... por que una fecha es una fecha, ¿o no?. No se porque la manía de creer que una fecha es una cadena... pero bueno... de echo, uan fecha es un número.
__________________
Última edición por ContraVeneno fecha: 06-09-2010 a las 18:37:17. |
#4
|
||||
|
||||
contraveneno
probe de mil formas de insertar fecha, ahora bien lo que utilizo es ADO, ahora el ejemplo que pones no hay ninfun problema el problema es cuando en el campo de tipo fecha no tengo registrada una fecha es decir esta vacio.
|
#5
|
||||
|
||||
¿No puedes preguntar antes de asignar si el campo es nulo?
__________________
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. |
#6
|
||||
|
||||
Listo Resuelto El Problema
JEJEJE CAPTURE LA EXCEPCION JEJEJE DEJO EL CODIGO
AHORA BIEN ME SIGUE LA DUDA DEL POR QUE NO PUEDO USAR PARAMETROS PARA GENERAR MIS CONSULTAS: LO QUE PARA UNOS ES FACIL HACER UN SERT DE LA SIGUIENTE MANERA :
YO LO TENGO QUE HACER ASI
AHORA LO QUE PREGUNTO ES HAY AKLGUNA EXTRAÑA RAZON DEL PORQUE ALGUNOS PUEDEN USAR PARAMETROS Y OTROS NO, O DEPENDE DE LA BASE DE DATOS O DE LOS COMPOMENTES QUE SE USAN PARA ACCEDER A ELLOS O DE LAS USES. MIS USES
MIS COMPONENTE SON ADOCONEXION,ADOQUERY,ADOSTOREPROCEDURE. Y MI BASE DE DATOS ES SQLSERVER 2000 CONTRAVENENO, QUE USES TIENES REGISTRADAS, QUE BASE DE DATOS USAS Y QUE COMPONENTES? ESPERO ME RESPONDAN :-) Última edición por microbiano fecha: 07-09-2010 a las 17:24:42. Razón: modificar el mensaje |
#7
|
||||
|
||||
sigue mi duda con parametros
bueno resulta que ya investigue y al parecer no encuentro la respuesta a mi duda del porque no puedo usar parametros en las instrucciones sql lo que para unos hacer un insert es tan facil como
yo tengo que hacer lo siguiente
AHORA LO QUE PREGUNTO ES HAY AKLGUNA EXTRAÑA RAZON DEL PORQUE ALGUNOS PUEDEN USAR PARAMETROS Y OTROS NO, O DEPENDE DE LA BASE DE DATOS O DE LOS COMPOMENTES QUE SE USAN PARA ACCEDER A ELLOS O DE LAS USES. mis uses
IS COMPONENTE SON ADOCONEXION,ADOQUERY,ADOSTOREPROCEDURE. Y MI BASE DE DATOS ES SQLSERVER 2000 CONTRAVENENO, QUE USES TIENES REGISTRADAS, QUE BASE DE DATOS USAS Y QUE COMPONENTES? ESPERO ME RESPONDAN :-) |
#8
|
||||
|
||||
Gracias por las Respuestas
Última edición por microbiano fecha: 07-09-2010 a las 23:50:06. Razón: dar gracias |
#9
|
||||
|
||||
O me equivoco o el hilo nuevo que has abierto es una copia de este, si es el mismo entonces no debes abrir otro, sigue aquí hasta que soluciones el problema. Borro el otro. Saludos.
|
#10
|
||||
|
||||
vaya veo que nadie me da una respuesta, seguire investigando y si encuentro la solucion la compartire
|
#11
|
||||
|
||||
El problema, amigo, es que no se entiende bien cuál es el problema, qué es lo que has hecho y qué ha ocurrido después. O sea, no te has explicado bien... o no te hemos entendido nosotros.
|
#12
|
||||
|
||||
mi Estimado amigo Casimirotengo la duda del porque para unos es tan facil ahcer un insert con parametros ejemplo
y si yo trato de hacerlo me dice que la aplicacion utiliza un valor de tipo no valido para la operacion actual entonces lo que hago es
bien la pregunta es : ¿ por que para unos les funciona la primera opcion de los parametros y a mi no? se debe a: * la base de datos (utilizo sqlserver2000) * las uses que tenemos registradas( Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,) Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls,ADODB,ComObj,DateUtils; * los compomente utilizados(ADOCONEXION,ADOQUERY y ADOSTOREDPROC. y le pregunte a contraveneno que si me podia decir que componentes usa, que base de datos y que uses tiene registradas. Última edición por microbiano fecha: 08-09-2010 a las 16:45:50. Razón: para aclarar ejemplo |
#13
|
||||
|
||||
Yo pensé que ya lo habías resuelto después de esta respuesta.
Deberías intentar NO ESCRIBIR EN MAYÚSCULAS, eso se hace bastante incómodo y no ayuda a que te ayuden. Cita:
¿Te da error? ¿Al compilar? ¿Al ejecutar? ¿Cual? ¿No te da error, pero no inserta? ¿Alguna excepción?
__________________
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. |
#15
|
||||
|
||||
Buenas,
hombre, a bote pronto, por el error que te da, diría que le estas pasando un tipo de dato que no es el mismo que tienes en la base de datos, quiero decir que "cuota" es de tipo numérico y le estas pasando una cadena de texto con wcuota, ¿puede ser?. Un saludo |
#16
|
||||
|
||||
Es que estás haciendo cosas distintas:
En el primero: Parameters.ParamByName('servicio').Value:=wservicio; Parameters.ParamByName('cuota').Value:=wcuota; El campo "servicio" de qué tipo, y la variable "wservicio" de qué tipo es? En el segundo: sql.Add(' '+QuotedStr(wservicio)+', '); sql.Add(' '+Inttostr(wcuota) +')'); Aquí estás pasando el valor de la variable wservicio entre comillas, sin embargo, en el modelo anterior... no!!! Es lo único que puedo sacar con tan pocos datos |
#17
|
||||
|
||||
haber lo entiendo el problema es simple haber por que algunos para sus instrucciones de insercion usan parametros y les funciona de maravilla y en cambio a mi no,
solo quiero saber si es por el manejador de base de datos los componentes o a que se debe |
#18
|
||||
|
||||
Cita:
|
#19
|
||||
|
||||
Repito lo de arriba, si no nos das pistas... adivinos no somos
|
#20
|
||||
|
||||
CAsimiro Gracias por responder no se que mas pistas quieres: uso ADODBConexion,ADODBquery y ADoStoredProcedu.
y quiero hacer un insert pero cuando trato de trabajar con parametro me dice que la operacion utiliza un valor de tipo no valido para la operacion. lo unico que pregunto es si hay que declarar algun USES para usar parametros?. el tipo de datos en la base de datos son varchar(50) y cuota es numeric Última edición por microbiano fecha: 10-09-2010 a las 00:16:05. Razón: modificar mensaje |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
error al insertar campo de tipo fecha con paramtero | microbiano | Conexión con bases de datos | 14 | 30-08-2010 18:01:31 |
Error en campo fecha, con SQL Server 2005 | Carmelo Cash | Conexión con bases de datos | 3 | 21-08-2008 21:33:59 |
error al buscar campo tipo fecha | fernando1973 | SQL | 2 | 18-05-2007 14:22:37 |
Error al hacer insert (campo fecha) en firebird con fibplus | Acanol | Firebird e Interbase | 7 | 15-06-2006 09:05:07 |
Error en update campo tipo fecha | dridly | SQL | 1 | 24-09-2004 14:27:37 |
|