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.

Preguntas similare

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.

Respuesta Responder a este mensaje
#2 Tomas
01/10/2007 - 16:10 | Informe spam
Gracias Maxi,

Desde el query analizer no hay problemas, se pueden modificar todos los
campos y todos los registros.

Por este motivo, yo me pregunto, si internamente, a nivel binario, puede
haber algún tipo de diferencia con algún tipo de campo, que Ado.Net y SQL no
consideren igual.
Respuesta Responder a este mensaje
#3 Maxi
01/10/2007 - 16:16 | Informe spam
No lo creo, ya por el momento descartamos al SQL, lo demas diria que lo
consultes en un foro de .net para ver si alguno de los muchachos sabe algo
:-S


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Tomas" escribió en el mensaje
news:
Gracias Maxi,

Desde el query analizer no hay problemas, se pueden modificar todos los
campos y todos los registros.

Por este motivo, yo me pregunto, si internamente, a nivel binario, puede
haber algún tipo de diferencia con algún tipo de campo, que Ado.Net y SQL
no consideren igual.

Respuesta Responder a este mensaje
#4 Gux (MVP)
01/10/2007 - 16:47 | Informe spam
Por favor capture la excepción en un objeto Exception (por ejemplo: objEx)
en su programa .NET y muestrenos el contenido de objEx.Message y
objEx.StackTrace.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Tomas" wrote:

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.



Respuesta Responder a este mensaje
#5 Tomas
05/10/2007 - 13:34 | Informe spam
Perdón por el retraso, estuve sin conectarme unos días.

El problema, efectivamente estaba en el codigo .Net, el problema es que no
sé cual fué la causa, porque se resolvió sólo, al compilar de nuevo la
aplicación por incorporar un nuevo módulo.

Si en el futuro me vuelve a ocurrir, seguiré sin saber lo que lo provoca.
Espero que no me vuelva a ocurrir.

Gracias a todos.

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