Problemas con Smalldatetime

18/04/2006 - 15:58 por Adal | Informe spam
Tengo un programa en VS2005 y utilizo SQL 2000, primero utilzaba el Servidor
A con "Microsoft SQL Server Desktop Engine" con un SO "Microsoft Windows NT
5.2 (3790)" y al intentar guardar fechas me arrojaba un error de que estas no
podian ser guardadas, porque no podian ser convertidas a un formato de
smalldatetime, luego lo resolvi, y el formato en el cual las guardaba era
mes/dia/año. Luego, por diversas cuestiones, tuve que cambiar de maquina a un
Sevidor B, el cual tiene las siguientes características: "Microsoft SQL
Server Enterprise Edition" con "Microsoft Windows NT 5.2 (3790)", y
nuevamente me arroja el mismo problema, saben como podría reconfigurar el
Servidor B para que no me arroje este problema o porque me esta arroja el
problema.
El error que me saca es el siguiente:
"System.Data.SqlClient.SqlException: The conversion of char data type to
smalldatetime data type resulted in an out-of-range smalldatetime value"

Preguntas similare

Leer las respuestas

#1 Adal
18/04/2006 - 17:34 | Informe spam
He estado haciendo pruebas y cuando me conecto a la BD, con autentificación
de Windows no me arroja ningun tipo de problema, no obstante, si en mi
aplicación me conecto con autentificación de SQL, entonces si me arroja
problemas con el almacenamiento de fechas en Smalldatetime, pero sigo sin
saber porque???? y/o como podria resolver el problema.

"Adal" wrote:

Mostrar la cita
#2 Adal
19/04/2006 - 02:27 | Informe spam
Ya estuve revisando y al parecer el problema se debe a la configuracion
regional de cada PC. Ya es una ganancia saber eso, ahora el problema es como
hacer un codigo estandar y que esta sea independiente de la configuración de
cada PC. Lo que hasta el momento se me ha ocurrido es hacer una versión para
cada region, lo bueno, ke en las maquinas de la red, solo hay dos tipos
diferentes de configuracinoes, no obstante, lo que se m ocurrio esto es
impractico, por ello de antemano agradezco de antemano si alguien me puede
brindar una solución o idea de como pueda corregir esto.

"Adal" wrote:

Mostrar la cita
#3 Gilberto López
19/04/2006 - 06:50 | Informe spam
Hola Adal,

No vi antes tus mensajes, en efecto estos problemas son por la configuración
regional de cada máquina y pasan cuando tratas una fecha como una cadena, no
dices como estás tratando de grabar la fecha, pero por lo que te aparece me
da la impresión que estás haciendo una sentencia SQL que luego ejecutas. Los
problemas de regionalización no son nada nuevo y de hecho apenas te has
topado con la punta del iceberg, por lo que esto para tu fortuna ya esta
solucionado desde hace mucho, lo que debes hacer es algo de lo siguiente:

1) La mejor solución a TODOS estos problemas es usar los objetos del
Framework de regionalización, pero no es la más sencilla de todas de
aprender a usar. En un sólo post no puedo darte todas las técnicas, pero te
oriento a que debes usar el principalmente el objeto: CultureInfo, una
referencia de como se usa la puedes hallar en
http://msdn2.microsoft.com/en-us/library/87k6sx8t(VS.80).aspx

2) Cambiar la manera en como agregas o editas los datos, en lugar de usar
una sentencia trata de usar un DataSet, esta es la mejor segunda solución,
ya que al grabarse los datos ya tiene en cuenta estos detalles, por ejemplo
la fecha es en realidad una fecha y no un string.

3) Haz una sentencia con la fecha formateada en el estandar genérico de SQL
para fechas, esto implica que de un DateTime hagas la conversión, esta es la
más sencilla, pero es la menos recomendada.

Espero que esto te ayude, y si tienes algún problema, pues puedes volver a
postear y alguno de los del foro te ayudaremos.

Saludos
FLY

"Adal" wrote in message
news:
Mostrar la cita
#4 Adal
19/04/2006 - 19:10 | Informe spam
Hola Fly, de antemano, gracias por todo. La aplicación que estoy haciendo es
sobre Win y creia que eso de las regiones no era importante y solo se ocupaba
para WEB, pero me di cuenta ke no es así, y como soy un novato pues estoy
aprendiendo. Ya revise la pagina que me diste sin embargo, como que viene
algo denso y siento que esta bien, pero al menos por el momento no me ayuda.
No obstante, las recomendaciones que me das me han abierto un nuevo panorama,
sobre todo lo de usar un DataSet. Y bueno... mira... encontre esta pagina que
al parecer tiene cosas interesantes y solo por si acaso, pues te la
recomiendo:

http://www.elguille.info/NET/dotnet...ltura.aspx

Bueno, he comenzado a realizar algunas de acuerdo con lo que recomienda esta
pagina y de momento voy bien, pero bueno, de antemano, gracias.

"Gilberto López" wrote:

Mostrar la cita
#5 Daniel A. Seara
26/04/2006 - 17:32 | Informe spam
Adal:
La mejor fomra de administrar eso es utilizar el tipo de dqtos específico,
con un command con parámetros, en lugar de "armar el Insert" como texto.
Si usas un procedimiento almacenado para actualziar tus datos, el parámetro
será de tipo smalltime.
Eso, en VB o C#, será un System.DateTime.
A ese parámetro entonces, podrás asignarle cuaquier variable DateTime (Date
en VB), que no contendrá la representación en caracteres de dicha fecha,
sino su valor real.
Y solucionado el tema.
Saludos

"Adal" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida