Problema con VB6,ADO y SQLserverexpress

23/07/2006 - 12:22 por Manel | Informe spam
Hola,

Tengo una tabla con un campo de tipo DATETIME entre otros, que lleno
masivamente desde un programa que lee registros desde un fichero de texto.

Todos los registros en texto que leo tienen la misma estructura y se envian
de la misma forma a la base de datos.

En ese campo de tipo Datetime, hay algunos registros en los que se ha
recibido bien la fecha y otros en cambio en los que queda a cero :
30/12/1899 00:00

Todos los demás campos, de tipos variados entran perféctamente. Incluso hay
2 mas de tipo datetime, pero en los que solo pongo la hora.

Despues de muchísimas pruebas no encuentro un patrón fijo de cuales son los
que entran bien y los que no, incluso, a veces el mismo registro en una
prueba entra bien y en otra, en cambio, no. Esto me da que pensar que no
sea algun tipo de problema de timing o sincronización. La inclusión de
retardos en el programa entre campo y campo o entre registro y registro no
ha hecho mejorar el tema. En cambio, si paro el programa entre registro y
registro, va bien.

He variado tambien la forma de representar la fecha: dd-mm-aaaa; aaaammdd;
dd/mm/aaaa; mm/dd/aaaa, vamos, para aburrir. Y con hora y sin hora.

El mismo programa llenando una base de datos Access funciona perfecto. De
una base de datos a otra solamente cambio la cadena de conexión ADO.

He descargado e instalado el SP1 de SQL Express con el mismo resultado.

VB6
MDAC 2.8
SQL Express SP1

¿Alguna idea?

Gracias.

Preguntas similare

Leer las respuestas

#1 SoftJaén
23/07/2006 - 14:15 | Informe spam
"Manel" escribió:

Tengo una tabla con un campo de tipo DATETIME entre otros, que lleno
masivamente desde un programa que lee registros desde un fichero de texto.

Todos los registros en texto que leo tienen la misma estructura y se
envian de la misma forma a la base de datos.

En ese campo de tipo Datetime, hay algunos registros en los que se ha
recibido bien la fecha y otros en cambio en los que queda a cero :
30/12/1899 00:00

¿Alguna idea?



Hola:

Si por casualidad estás utilizando el ISAM de texto para pasar los datos del
archivo a la base de datos de SQL Server 2005, procura tener en la misma
carpeta donde se encuentra el archivo de texto, un archivo de configuración
de esquema llamado «Schema.ini», el cual es necesario si el archivo de texto
contiene tipos de datos DateTime.

Para más información, consulta el siguiente artículo técnico:

Trabajar con los datos de un archivo de texto
http://mvp-access.com/softjaen/arti...t_isam.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Manel
23/07/2006 - 18:28 | Informe spam
Gracias por responder,

No, el fichero de texto lo leo "a pelo" línea a línea. Los datos los meto
desde una variable, bueno, una matriz.



"SoftJaén" wrote in
news:#:

"Manel" escribió:

Tengo una tabla con un campo de tipo DATETIME entre otros, que lleno
masivamente desde un programa que lee registros desde un fichero de
texto.

Todos los registros en texto que leo tienen la misma estructura y se
envian de la misma forma a la base de datos.

En ese campo de tipo Datetime, hay algunos registros en los que se ha
recibido bien la fecha y otros en cambio en los que queda a cero :
30/12/1899 00:00

¿Alguna idea?



Hola:

Si por casualidad estás utilizando el ISAM de texto para pasar los datos
del archivo a la base de datos de SQL Server 2005, procura tener en la
misma carpeta donde se encuentra el archivo de texto, un archivo de
configuración de esquema llamado «Schema.ini», el cual es necesario si
el archivo de texto contiene tipos de datos DateTime.

Para más información, consulta el siguiente artículo técnico:

Trabajar con los datos de un archivo de texto
http://mvp-access.com/softjaen/arti...t_isam.htm

Un saludo

Respuesta Responder a este mensaje
#3 Manel
23/07/2006 - 20:47 | Informe spam
Creo que es algun tipo de bug del SQL native client. A partir del segundo
campo datetime va bien. Creando un campo "dummy" de tipo datetime que esté
definido en la estructura antes del que me interesa, se inserta
correctamente la información en el campo bueno.





Manel wrote in news:Xns9809BBE96C621noesbuena.terra.es@
207.46.248.16:


Gracias por responder,

No, el fichero de texto lo leo "a pelo" línea a línea. Los datos los meto
desde una variable, bueno, una matriz.



"SoftJaén" wrote in
news:#:

"Manel" escribió:

Tengo una tabla con un campo de tipo DATETIME entre otros, que lleno
masivamente desde un programa que lee registros desde un fichero de
texto.

Todos los registros en texto que leo tienen la misma estructura y se
envian de la misma forma a la base de datos.

En ese campo de tipo Datetime, hay algunos registros en los que se ha
recibido bien la fecha y otros en cambio en los que queda a cero :
30/12/1899 00:00

¿Alguna idea?



Hola:

Si por casualidad estás utilizando el ISAM de texto para pasar los datos
del archivo a la base de datos de SQL Server 2005, procura tener en la
misma carpeta donde se encuentra el archivo de texto, un archivo de
configuración de esquema llamado «Schema.ini», el cual es necesario si
el archivo de texto contiene tipos de datos DateTime.

Para más información, consulta el siguiente artículo técnico:

Trabajar con los datos de un archivo de texto
http://mvp-access.com/softjaen/arti...t_isam.htm

Un saludo





Respuesta Responder a este mensaje
#4 msnews
19/10/2006 - 06:11 | Informe spam
Yo como medida urgente, tuve que hacer una trampa y fue declarar el campo
fecha con char(10) , y cuando tenga que consultar uso
convert(datetime,fecha)

Es una medida poco práctica y bastante ineficiente, pero debia darle
solucion a eso, porque me habia enfrascado bastante tiempo en eso.

Ojala te ayude en algo,

Saludos

"Manel" escribió en el mensaje
news:

Hola,

Tengo una tabla con un campo de tipo DATETIME entre otros, que lleno
masivamente desde un programa que lee registros desde un fichero de texto.

Todos los registros en texto que leo tienen la misma estructura y se
envian
de la misma forma a la base de datos.

En ese campo de tipo Datetime, hay algunos registros en los que se ha
recibido bien la fecha y otros en cambio en los que queda a cero :
30/12/1899 00:00

Todos los demás campos, de tipos variados entran perféctamente. Incluso
hay
2 mas de tipo datetime, pero en los que solo pongo la hora.

Despues de muchísimas pruebas no encuentro un patrón fijo de cuales son
los
que entran bien y los que no, incluso, a veces el mismo registro en una
prueba entra bien y en otra, en cambio, no. Esto me da que pensar que no
sea algun tipo de problema de timing o sincronización. La inclusión de
retardos en el programa entre campo y campo o entre registro y registro no
ha hecho mejorar el tema. En cambio, si paro el programa entre registro y
registro, va bien.

He variado tambien la forma de representar la fecha: dd-mm-aaaa; aaaammdd;
dd/mm/aaaa; mm/dd/aaaa, vamos, para aburrir. Y con hora y sin hora.

El mismo programa llenando una base de datos Access funciona perfecto. De
una base de datos a otra solamente cambio la cadena de conexión ADO.

He descargado e instalado el SP1 de SQL Express con el mismo resultado.

VB6
MDAC 2.8
SQL Express SP1

¿Alguna idea?

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida