UPDATE en SQL... error!

28/10/2004 - 21:54 por Jaime | Informe spam
Hola buenas, me estais ayudando mucho y os doy las gracias por ello. Lo que
pasa es que cuando uno se inicia en esto... empieza a ver que surgen errores
y errores... Bueno , al lio!

No puedo hacer un update, porque me dice ke me dice:

The changes you requested to the table were not successful because they
would create duplicate values in the index, primary key, or relationship.
Change the data in the field or fields that contain duplicate data, remove
the index, or redefine the index to permit duplicate entries and try again.

Observen el codigo...

sql0= "select dni from cliente where dni = '" & strID_OLD & "'"
set conConexion=server.CreateObject("adodb.connection")
set rs=server.CreateObject("adodb.recordset")
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("../../db/clientes.mdb")
conConexion.Open(sConnString)
Rs.Open SQL0,conConexion,3,3

sql3= "update asociacion set dni='" & strID & "'"
sql1= "update cliente set dni='" & strID & "',nombre='" & strNombre &
"',apellidos='" & strApellidos & "',entidad='" & strEntidad & "',telefono='"
& strTelefono & "',email='" & stremail & "',calle='" & strNombreV &
"',tipovia='" & T_via & "',escalera='" & strescalera & "',numero='" & Intnum
& "',piso='" & strpyl & "',cp='" & strcp & "',localidad='" & strlocalidad &
"',provincia='" & strprovincia& "',pais='" & strpais & "',comentarios='"
&comentarios & "'"

conConexion.Execute(sql3)
conConexion.Execute(sql1)

Las tablas estan tienen como key...
Tabla Asociacion...Sin Key
Tabla Cliente; Key= "dni"
Tabla Proyecto; KEY="codigo_proyecto" pero no interviene aqui.

Y luego las keys estan unidas pero sin restricciones ni nada.
Uniones:

Cliente.dni -- Asociacion.dni
Proyecto.codigo_proyecto -- asociacion.codigo_proyecto

No puedo suminstrar mas datos relevantes creo.

Saludos y a ver si sabeis porke .. seguro que es una bobada enorme pero
nunca se sabe...


GRACIAS POR ADELANTADO

Preguntas similare

Leer las respuestas

#6 Karmico
29/10/2004 - 18:20 | Informe spam
nombredelobjeto.movenext

no?

"Jaime" <jaimedominguez[arroba]zeratools[punto]com> escribió en el mensaje
news:
Gracias!
Respecto a lo anterior solucionado.

Ahora que ya manejo los recordset...
Hago una consulta en la que hay varios registros de ciertas tablas... como
avanzo registros de solo esa tabla?



"Sashka" escribió en el mensaje
news:

> ¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si


te
> sirvió o no la respuesta dada. Muchas gracias

> ¿? Creo que aca hay una confusión...
> La conexión la abres con una cadena de conexión...
> Con esa conexión puedes abrir recordsets y/o ejecutar acciones (lease
> update, delete, insert) para las que no necesitas abrir un recordset.


En
> el código que pones, tu abres un recordset (con el sql0) que por lo que
> veo no usas para nada ese recordset no está en tu conexión, sólo la
> usa... por ende no tiene nada que ver con las acciones que luego (usando
> la misma conexión) ejecutas (sql3 y sql1). Si no necesitas ese recordset
> para nada... no lo abras (no siquiera lo declares!!). En todo caso


lo
> que debes de tener claro es que su where no se "pasa" a nada más que


hagas
> a través de esa conexión.
>
> Sashka
> MS MVP Access
> MCP ASP.Net
>
> "Jaime" <jaimedominguez[arroba]zeratools[punto]com> escribió en el


mensaje
> news:
>> Pero el WHERE ya lo tengo puesto en el otro SQL con el que abro la
>> conexión...
>> Debo volverlo a poner?
>>
>>
>>
>>
>> "Matias Iacono" escribió en el mensaje
>> news:
>>> Bueno, a primera vista lo que noto es esto:
>>>
>>> sql3= "update asociacion set dni='" & strID & "'"
>>>
>>> Si no le pones una condicionante WHERE, te actualizaria todos los


campos
>>> DNI, por lo que, seguramente esta debe ser tu clave primaria en la
>>> tabla, y
>>> al querer setear todos los campos con el mismo valor, se produce el
>>> error.
>>>
>>> Saludos
>>>
>>> Matias Iacono
>>> Microsoft MVP
>>>
>>>
>>>
>>> "Jaime" <jaimedominguez[arroba]zeratools[punto]com> wrote in message
>>> news:elyD%
>>>> Hola buenas, me estais ayudando mucho y os doy las gracias por ello.


Lo
>>> que
>>>> pasa es que cuando uno se inicia en esto... empieza a ver que surgen
>>> errores
>>>> y errores... Bueno , al lio!
>>>>
>>>> No puedo hacer un update, porque me dice ke me dice:
>>>>
>>>> The changes you requested to the table were not successful because


they
>>>> would create duplicate values in the index, primary key, or
>>>> relationship.
>>>> Change the data in the field or fields that contain duplicate data,
>>>> remove
>>>> the index, or redefine the index to permit duplicate entries and try
>>> again.
>>>>
>>>> Observen el codigo...
>>>>
>>>> sql0= "select dni from cliente where dni = '" & strID_OLD & "'"
>>>> set conConexion=server.CreateObject("adodb.connection")
>>>> set rs=server.CreateObject("adodb.recordset")
>>>> sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
>>>> Server.MapPath("../../db/clientes.mdb")
>>>> conConexion.Open(sConnString)
>>>> Rs.Open SQL0,conConexion,3,3
>>>>
>>>> sql3= "update asociacion set dni='" & strID & "'"
>>>> sql1= "update cliente set dni='" & strID & "',nombre='" & strNombre &
>>>> "',apellidos='" & strApellidos & "',entidad='" & strEntidad &
>>> "',telefono='"
>>>> & strTelefono & "',email='" & stremail & "',calle='" & strNombreV &
>>>> "',tipovia='" & T_via & "',escalera='" & strescalera & "',numero='" &
>>> Intnum
>>>> & "',piso='" & strpyl & "',cp='" & strcp & "',localidad='" &
>>>> strlocalidad
>>> &
>>>> "',provincia='" & strprovincia& "',pais='" & strpais &
>>>> "',comentarios='"
>>>> &comentarios & "'"
>>>>
>>>> conConexion.Execute(sql3)
>>>> conConexion.Execute(sql1)
>>>>
>>>> Las tablas estan tienen como key...
>>>> Tabla Asociacion...Sin Key
>>>> Tabla Cliente; Key= "dni"
>>>> Tabla Proyecto; KEY="codigo_proyecto" pero no interviene aqui.
>>>>
>>>> Y luego las keys estan unidas pero sin restricciones ni nada.
>>>> Uniones:
>>>>
>>>> Cliente.dni -- Asociacion.dni
>>>> Proyecto.codigo_proyecto -- asociacion.codigo_proyecto
>>>>
>>>> No puedo suminstrar mas datos relevantes creo.
>>>>
>>>> Saludos y a ver si sabeis porke .. seguro que es una bobada enorme


pero
>>>> nunca se sabe...
>>>>
>>>>
>>>> GRACIAS POR ADELANTADO
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Respuesta Responder a este mensaje
#7 Sashka
31/10/2004 - 20:31 | Informe spam
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Me temo que no te entiendo. "varios registros de ciertas tablas"... y
pretendes avanzar en sólo una de esas??? Si es así no puedes...

Sashka
MS MVP Access
MCP ASP.Net

"Jaime" <jaimedominguez[arroba]zeratools[punto]com> escribió en el mensaje
news:
Gracias!
Respecto a lo anterior solucionado.

Ahora que ya manejo los recordset...
Hago una consulta en la que hay varios registros de ciertas tablas... como
avanzo registros de solo esa tabla?



"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
¿? Creo que aca hay una confusión...
La conexión la abres con una cadena de conexión...
Con esa conexión puedes abrir recordsets y/o ejecutar acciones (lease
update, delete, insert) para las que no necesitas abrir un recordset. En
el código que pones, tu abres un recordset (con el sql0) que por lo que
veo no usas para nada ese recordset no está en tu conexión, sólo la
usa... por ende no tiene nada que ver con las acciones que luego (usando
la misma conexión) ejecutas (sql3 y sql1). Si no necesitas ese recordset
para nada... no lo abras (no siquiera lo declares!!). En todo caso lo
que debes de tener claro es que su where no se "pasa" a nada más que
hagas a través de esa conexión.

Sashka
MS MVP Access
MCP ASP.Net

"Jaime" <jaimedominguez[arroba]zeratools[punto]com> escribió en el
mensaje news:
Pero el WHERE ya lo tengo puesto en el otro SQL con el que abro la
conexión...
Debo volverlo a poner?




"Matias Iacono" escribió en el mensaje
news:
Bueno, a primera vista lo que noto es esto:

sql3= "update asociacion set dni='" & strID & "'"

Si no le pones una condicionante WHERE, te actualizaria todos los
campos
DNI, por lo que, seguramente esta debe ser tu clave primaria en la
tabla, y
al querer setear todos los campos con el mismo valor, se produce el
error.

Saludos

Matias Iacono
Microsoft MVP



"Jaime" <jaimedominguez[arroba]zeratools[punto]com> wrote in message
news:elyD%
Hola buenas, me estais ayudando mucho y os doy las gracias por ello.
Lo


que
pasa es que cuando uno se inicia en esto... empieza a ver que surgen


errores
y errores... Bueno , al lio!

No puedo hacer un update, porque me dice ke me dice:

The changes you requested to the table were not successful because
they
would create duplicate values in the index, primary key, or
relationship.
Change the data in the field or fields that contain duplicate data,
remove
the index, or redefine the index to permit duplicate entries and try


again.

Observen el codigo...

sql0= "select dni from cliente where dni = '" & strID_OLD & "'"
set conConexion=server.CreateObject("adodb.connection")
set rs=server.CreateObject("adodb.recordset")
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("../../db/clientes.mdb")
conConexion.Open(sConnString)
Rs.Open SQL0,conConexion,3,3

sql3= "update asociacion set dni='" & strID & "'"
sql1= "update cliente set dni='" & strID & "',nombre='" & strNombre &
"',apellidos='" & strApellidos & "',entidad='" & strEntidad &


"',telefono='"
& strTelefono & "',email='" & stremail & "',calle='" & strNombreV &
"',tipovia='" & T_via & "',escalera='" & strescalera & "',numero='" &


Intnum
& "',piso='" & strpyl & "',cp='" & strcp & "',localidad='" &
strlocalidad


&
"',provincia='" & strprovincia& "',pais='" & strpais &
"',comentarios='"
&comentarios & "'"

conConexion.Execute(sql3)
conConexion.Execute(sql1)

Las tablas estan tienen como key...
Tabla Asociacion...Sin Key
Tabla Cliente; Key= "dni"
Tabla Proyecto; KEY="codigo_proyecto" pero no interviene aqui.

Y luego las keys estan unidas pero sin restricciones ni nada.
Uniones:

Cliente.dni -- Asociacion.dni
Proyecto.codigo_proyecto -- asociacion.codigo_proyecto

No puedo suminstrar mas datos relevantes creo.

Saludos y a ver si sabeis porke .. seguro que es una bobada enorme
pero
nunca se sabe...


GRACIAS POR ADELANTADO























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