Infraccion de concurencia en SQL Server 2000

01/10/2007 - 10:17 por Tomas | Informe spam
Hola a todos.

Tengo un problema, que cuanto menos es curioso, ademas de preocupante,
porque llevo mas de un día sin encontrar solución.

Uso SQL Server 2000 sobre SBS2003.

He realizado una importación a una tabla, (clientes), con el asistente de
Importacion de datos de SQL. La importacion se ha realizado sin problemas.

Uso una aplicacion .NET 2.0, que se comunica con la base de datos con
ADO.NET.

Los registros nuevos que creo en esta tabla desde la aplicacion, funcionan
sin problemas. Sin embargo, los registros que se importaron con el
asistente, cuando los quiero modificar con la aplicación, con un Update(),
normal y corriente, me lanza una excepcion que dice "Infraccion de
concurrencia: 0 registros actualizados de 1 afectado".

No hay manera de actualizar los registros que se importaron, sin embargo los
que creo directamente desde la aplicacion, no hay problema.

Comparo los dos registros, con el analizador de consultas, el importado y el
creado directo y no veo diferencia alguna. Salvo la clave principal, los
demas campos de la tabla tienen el mismo valor, porque los creo para ver si
es algun campo el que causa el problema y no pasa nada.

He realizado otra prueba con otra tabla de pruebas, he realizado una
importacion de datos con el asistente y el comportamiento es el mismo. Los
registros importados no los puedo modificar con la aplicación, sin embargo
los creados con la aplicación en la misma tabla no hay problema alguno.

¿Es posible que internamente, los campos se guarden con algun codigo de
empaquetado, distinto entre Ado.Net y el que usa el asistente de
importacion?

Por ejemplo que usen un Collate distinto, pero que no este a la vista y ese
sea la fuente del problema, que no entienden los campos de la tabla de igual
forma.

¿Alguna idea?

Gracias por anticipado.

Tomás.
 

Leer las respuestas

#1 Maxi
01/10/2007 - 14:26 | Informe spam
Tomas, intente modificar los registros desde el query analizer a ver si
funciona, de ser asi su problema no es de SQL sino de la aplicacion


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Tomas" escribió en el mensaje
news:
Hola a todos.

Tengo un problema, que cuanto menos es curioso, ademas de preocupante,
porque llevo mas de un día sin encontrar solución.

Uso SQL Server 2000 sobre SBS2003.

He realizado una importación a una tabla, (clientes), con el asistente de
Importacion de datos de SQL. La importacion se ha realizado sin problemas.

Uso una aplicacion .NET 2.0, que se comunica con la base de datos con
ADO.NET.

Los registros nuevos que creo en esta tabla desde la aplicacion, funcionan
sin problemas. Sin embargo, los registros que se importaron con el
asistente, cuando los quiero modificar con la aplicación, con un Update(),
normal y corriente, me lanza una excepcion que dice "Infraccion de
concurrencia: 0 registros actualizados de 1 afectado".

No hay manera de actualizar los registros que se importaron, sin embargo
los que creo directamente desde la aplicacion, no hay problema.

Comparo los dos registros, con el analizador de consultas, el importado y
el creado directo y no veo diferencia alguna. Salvo la clave principal,
los demas campos de la tabla tienen el mismo valor, porque los creo para
ver si es algun campo el que causa el problema y no pasa nada.

He realizado otra prueba con otra tabla de pruebas, he realizado una
importacion de datos con el asistente y el comportamiento es el mismo. Los
registros importados no los puedo modificar con la aplicación, sin embargo
los creados con la aplicación en la misma tabla no hay problema alguno.

¿Es posible que internamente, los campos se guarden con algun codigo de
empaquetado, distinto entre Ado.Net y el que usa el asistente de
importacion?

Por ejemplo que usen un Collate distinto, pero que no este a la vista y
ese sea la fuente del problema, que no entienden los campos de la tabla de
igual forma.

¿Alguna idea?

Gracias por anticipado.

Tomás.

Preguntas similares