![]() |
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? |
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. |
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. |
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.
|
Cita:
|
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 :-) |
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 :-) |
Gracias por las Respuestas
|
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.
|
vaya veo que nadie me da una respuesta, seguire investigando y si encuentro la solucion la compartire
|
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.
|
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. |
Cita:
Deberías intentar NO ESCRIBIR EN MAYÚSCULAS, eso se hace bastante incómodo y no ayuda a que te ayuden. :o Cita:
¿Te da error? ¿Al compilar? ¿Al ejecutar? ¿Cual? ¿No te da error, pero no inserta? ¿Alguna excepción? :confused::confused: |
Gracias amigo por contestar.
mira el error que me manda es :
|
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 |
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 :) |
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 |
Cita:
|
Cita:
|
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 |
| La franja horaria es GMT +2. Ahora son las 05:15:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi