Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   problemas al introducir fechas a sql 2000 (https://www.clubdelphi.com/foros/showthread.php?t=50719)

alfil123 26-11-2007 19:38:35

problemas al introducir fechas a sql 2000
 
hola amigos:
tengo un problema al introducir una fecha a un campo datetime del sql2000, lo primero es que estoy usando un datimepicker, a este datime lo transformo con datetostr(dtp_FechaS.Date), luego llamo a un procedimiento que asu ves llama a un procedimimeinto almacenado para insertar los datos en la tabla,

el procedimiento con el que invoco el procedimiento almacenado es es
EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Cod_Animal)+','+QuotedStr(Cod_Raza)+','+QuotedStr(Cod_pozagalponNac)+','+QuotedStr(Cod_Tip oAnimal)+','+QuotedStr(Fecha_nacimiento)+)

y este es el procedimiento almacenado en si
CREATE PROCEDURE sp_Insertar_TAnimal
@Cod_Animal varchar(20),
@Cod_Raza varchar(20),
@Cod_pozagalponNac varchar(20),
@Cod_TipoAnimal varchar(20),
@Fecha_nacimiento datetime,

AS
BEGIN
INSERT INTO TAnimal VALUES(@Cod_Animal,@Cod_Raza,@Cod_pozagalponNac,@Cod_TipoAnimal,@Fecha_nacimiento)
END


Y despues de hacer todo esto se me muestra el mensaje "Error converting data type varchar to datetime"

enecumene 26-11-2007 20:48:54

Hola, lo que el error mismo te esta diciendo es que estas intentando insertar datos tipos string en un campo de tipo fecha, para mi el problema esta en esta parte:

Código Delphi [-]
EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Cod_Animal)+','+QuotedStr(Cod_Raza)+','+QuotedStr(Cod_pozagalponNac)+','+QuotedStr(Cod_Tip oAnimal)+','+QuotedStr(Fecha_nacimiento)+')

supongo que los datos lo estas sacando por medio de componentes edits y datetimepicker, como dices, entonces creo que deberia ser asi:

Código Delphi [-]
EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Edit1.text)+','+QuotedStr(Edit2.text)+','+QuotedStr(Edit3.text)+','+QuotedStr(Edit4.text)+  ','+QuotedStr(DateTimePicker.Date)+')

que me corrijan los maestros.

Saludos.

luisgutierrezb 26-11-2007 21:40:57

en que formato mandas la fecha hacia el store procedure?? yo te recomiendo que uses el formato ISO 'YYYYMMDD' entre comillas simples como el ejemplo, al menos yo, no eh batallado para manejar las fechas asi

ContraVeneno 26-11-2007 23:20:57

también puedes utilizar la función "FormatDateTime"

Neftali [Germán.Estévez] 27-11-2007 10:44:17

Cita:

Empezado por luisgutierrezb (Mensaje 248533)
yo te recomiendo que uses el formato ISO 'YYYYMMDD'

Coincido con Luis; Yo siempre utilizo este (creo que es el formato chino) y hasta ahora sin problemas...

afunez2007 19-12-2008 00:51:10

Debes indicar el formato de fecha y hacer cambios en la query
 
Lo primero quue debes hacer es especificar el formato de fecha asi:

Código Delphi [-]
ShortDateFormat:='dd/mm/yyyy';


o si utilizas formato americano seria asi:

Código Delphi [-]
ShortDateFormat:='mm/dd/yyyy';


Luego deberas cambiar la fecha en texto, incluyendo un DateToStr de la siguiente forma:

Código Delphi [-]
EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Edit1.text)+','+QuotedStr(Edit2.text)+','+QuotedStr(Edit3.text)+','+QuotedStr(Edit4.text)+  ','+QuotedStr(DatetoStr(DateTimePicker.Date))+')

Yo siempre lo hago de esa forma y no me da problemas

Saludos


La franja horaria es GMT +2. Ahora son las 14:43:25.

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