problema con un trigger URGENTE!!!!

07/02/2004 - 13:31 por Franci | Informe spam
Hola grupo,

estoy utilizando un trigger que me dio nuestro amigo Maximiliano que es
el siguiente:


/* Este desencadenador se encarga de actualizar el campo NumProforma
del regitro de la tabla Factura cuando se modifica el código de dicha
factura
proforma*/

CREATE Trigger actualizar on dbo.Proforma for Update
as
declare @num as nvarchar(30)
set @num= (select NumProforma FROM inserted)

Update factura set factura.numproforma = @num
from factura inner join deleted on
factura.numproforma = deleted.numproforma


el trigger funciona correctamente cuando lo pruebo desde SQL-Server pero
cuando lo utilizo en mi aplicación visual basic me da el siguiente error al
guardar los datos modificados:

"No se puede encontrar la fila para su actualización: algunos valores han
cambiado desde la última vez que se leyó".

Sé que aparentemente el error no está en SQL Server, ¿pero alguien puede
ayudarme?

Muchas gracias de antemano

Saludos
_______________
Franci Guerrero

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
07/02/2004 - 15:01 | Informe spam
Franci, como estas nuevamente?

El problema es como vos estas diciendo y esta en la aplicacion.

Que puede ser?

bueno aca por ej revisa esto:

Que los cursores esten de Lado del Servidor
Que sea del tipo Keyset

lamentablemente no me das mas datos como para poder ayudarte
Si me pasas como te conectas o (mejor aun si me pasas el fragmento del
codigo y donde da el error)


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Franci" escribió en el mensaje
news:
Hola grupo,

estoy utilizando un trigger que me dio nuestro amigo Maximiliano que


es
el siguiente:


/* Este desencadenador se encarga de actualizar el campo NumProforma
del regitro de la tabla Factura cuando se modifica el código de dicha
factura
proforma*/

CREATE Trigger actualizar on dbo.Proforma for Update
as
declare @num as nvarchar(30)
set @num= (select NumProforma FROM inserted)

Update factura set factura.numproforma = @num
from factura inner join deleted on
factura.numproforma = deleted.numproforma


el trigger funciona correctamente cuando lo pruebo desde SQL-Server pero
cuando lo utilizo en mi aplicación visual basic me da el siguiente error


al
guardar los datos modificados:

"No se puede encontrar la fila para su actualización: algunos valores han
cambiado desde la última vez que se leyó".

Sé que aparentemente el error no está en SQL Server, ¿pero alguien puede
ayudarme?

Muchas gracias de antemano

Saludos
_______________
Franci Guerrero


Respuesta Responder a este mensaje
#2 Franci
07/02/2004 - 16:42 | Informe spam
buenas maximiliano, el cursor está del lado del cliente, está así para poder
utilizar el método sort, ¿debe estar a la fuerza del lado del servidor?

el error me da justo en el update del recordset

saludos
_______________
Franci Guerrero


"Maximiliano Damian Accotto" escribió
en el mensaje news:
Franci, como estas nuevamente?

El problema es como vos estas diciendo y esta en la aplicacion.

Que puede ser?

bueno aca por ej revisa esto:

Que los cursores esten de Lado del Servidor
Que sea del tipo Keyset

lamentablemente no me das mas datos como para poder ayudarte
Si me pasas como te conectas o (mejor aun si me pasas el fragmento del
codigo y donde da el error)


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Franci" escribió en el mensaje
news:
> Hola grupo,
>
> estoy utilizando un trigger que me dio nuestro amigo Maximiliano que
es
> el siguiente:
>
>
> /* Este desencadenador se encarga de actualizar el campo NumProforma
> del regitro de la tabla Factura cuando se modifica el código de dicha
> factura
> proforma*/
>
> CREATE Trigger actualizar on dbo.Proforma for Update
> as
> declare @num as nvarchar(30)
> set @num= (select NumProforma FROM inserted)
>
> Update factura set factura.numproforma = @num
> from factura inner join deleted on
> factura.numproforma = deleted.numproforma
>
>
> el trigger funciona correctamente cuando lo pruebo desde SQL-Server pero
> cuando lo utilizo en mi aplicación visual basic me da el siguiente error
al
> guardar los datos modificados:
>
> "No se puede encontrar la fila para su actualización: algunos valores


han
> cambiado desde la última vez que se leyó".
>
> Sé que aparentemente el error no está en SQL Server, ¿pero alguien puede
> ayudarme?
>
> Muchas gracias de antemano
>
> Saludos
> _______________
> Franci Guerrero
>
>


Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
07/02/2004 - 16:50 | Informe spam
ponelo del lado de Servidor, es lo ideal ademas de la velocidad que vas a
ganar :-D y contame como te va (pero el problema esta ahi)

Usas ADO o Dataentivironment?


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Franci" escribió en el mensaje
news:
buenas maximiliano, el cursor está del lado del cliente, está así para


poder
utilizar el método sort, ¿debe estar a la fuerza del lado del servidor?

el error me da justo en el update del recordset

saludos
_______________
Franci Guerrero


"Maximiliano Damian Accotto" escribió
en el mensaje news:
> Franci, como estas nuevamente?
>
> El problema es como vos estas diciendo y esta en la aplicacion.
>
> Que puede ser?
>
> bueno aca por ej revisa esto:
>
> Que los cursores esten de Lado del Servidor
> Que sea del tipo Keyset
>
> lamentablemente no me das mas datos como para poder ayudarte
> Si me pasas como te conectas o (mejor aun si me pasas el fragmento del
> codigo y donde da el error)
>
>
> Salu2 enormes
>
> Maximiliano Damian Accotto
>
> Fundicion San Cayetano S.A.
> Gerente de IT
> Buenos Aires - Argentina
> -
> Desarrollador 3 estrellas
>


http://www.microsoft.com/spanish/ms...efault.asp
> -
> (maxi_accotto[arroba]speedy.com.ar)
> MSN:
> "Franci" escribió en el mensaje
> news:
> > Hola grupo,
> >
> > estoy utilizando un trigger que me dio nuestro amigo Maximiliano


que
> es
> > el siguiente:
> >
> >
> > /* Este desencadenador se encarga de actualizar el campo NumProforma
> > del regitro de la tabla Factura cuando se modifica el código de dicha
> > factura
> > proforma*/
> >
> > CREATE Trigger actualizar on dbo.Proforma for Update
> > as
> > declare @num as nvarchar(30)
> > set @num= (select NumProforma FROM inserted)
> >
> > Update factura set factura.numproforma = @num
> > from factura inner join deleted on
> > factura.numproforma = deleted.numproforma
> >
> >
> > el trigger funciona correctamente cuando lo pruebo desde SQL-Server


pero
> > cuando lo utilizo en mi aplicación visual basic me da el siguiente


error
> al
> > guardar los datos modificados:
> >
> > "No se puede encontrar la fila para su actualización: algunos valores
han
> > cambiado desde la última vez que se leyó".
> >
> > Sé que aparentemente el error no está en SQL Server, ¿pero alguien


puede
> > ayudarme?
> >
> > Muchas gracias de antemano
> >
> > Saludos
> > _______________
> > Franci Guerrero
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Franci
07/02/2004 - 17:16 | Informe spam
me temo que eso no va a ser posible, tendría que cambiar demasiado código,
ya que aparte de que los sort no funcionan si el cursor está de lado del
servidor, a demás me dan errores en algunos recordsets abiertos con execute,
ya que no se puede realizar el método find

si los triggers fallan en el lado del cliente voy a tener que suprimirlos y
realizar su función en el código directamente, ya que tengo que solucionarlo
urgentemente

utilizo ADO


saludos y gracias
_______________
Franci Guerrero


"Maximiliano Damian Accotto" escribió
en el mensaje news:
ponelo del lado de Servidor, es lo ideal ademas de la velocidad que vas a
ganar :-D y contame como te va (pero el problema esta ahi)

Usas ADO o Dataentivironment?


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Franci" escribió en el mensaje
news:
> buenas maximiliano, el cursor está del lado del cliente, está así para
poder
> utilizar el método sort, ¿debe estar a la fuerza del lado del servidor?
>
> el error me da justo en el update del recordset
>
> saludos
> _______________
> Franci Guerrero
>
>
> "Maximiliano Damian Accotto"


escribió
> en el mensaje news:
> > Franci, como estas nuevamente?
> >
> > El problema es como vos estas diciendo y esta en la aplicacion.
> >
> > Que puede ser?
> >
> > bueno aca por ej revisa esto:
> >
> > Que los cursores esten de Lado del Servidor
> > Que sea del tipo Keyset
> >
> > lamentablemente no me das mas datos como para poder ayudarte
> > Si me pasas como te conectas o (mejor aun si me pasas el fragmento del
> > codigo y donde da el error)
> >
> >
> > Salu2 enormes
> >
> > Maximiliano Damian Accotto
> >
> > Fundicion San Cayetano S.A.
> > Gerente de IT
> > Buenos Aires - Argentina
> > -
> > Desarrollador 3 estrellas
> >
http://www.microsoft.com/spanish/ms...efault.asp
> > -
> > (maxi_accotto[arroba]speedy.com.ar)
> > MSN:
> > "Franci" escribió en el mensaje
> > news:
> > > Hola grupo,
> > >
> > > estoy utilizando un trigger que me dio nuestro amigo Maximiliano
que
> > es
> > > el siguiente:
> > >
> > >
> > > /* Este desencadenador se encarga de actualizar el campo NumProforma
> > > del regitro de la tabla Factura cuando se modifica el código de


dicha
> > > factura
> > > proforma*/
> > >
> > > CREATE Trigger actualizar on dbo.Proforma for Update
> > > as
> > > declare @num as nvarchar(30)
> > > set @num= (select NumProforma FROM inserted)
> > >
> > > Update factura set factura.numproforma = @num
> > > from factura inner join deleted on
> > > factura.numproforma = deleted.numproforma
> > >
> > >
> > > el trigger funciona correctamente cuando lo pruebo desde SQL-Server
pero
> > > cuando lo utilizo en mi aplicación visual basic me da el siguiente
error
> > al
> > > guardar los datos modificados:
> > >
> > > "No se puede encontrar la fila para su actualización: algunos


valores
> han
> > > cambiado desde la última vez que se leyó".
> > >
> > > Sé que aparentemente el error no está en SQL Server, ¿pero alguien
puede
> > > ayudarme?
> > >
> > > Muchas gracias de antemano
> > >
> > > Saludos
> > > _______________
> > > Franci Guerrero
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Miguel Egea
07/02/2004 - 18:48 | Informe spam
Una sola cosa ese trigger no funcionará si haces actualizaciones masivas.
Creo que es importante tratar este tipo de cosas. No conozco el detalle del
problema así que no puedo dar una solución adecuada. Pero me da la sensación
de que tendría que estar implementada a través de integridad referencial con
las clausulas update cascade

=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==




"Franci" escribió en el mensaje
news:
buenas maximiliano, el cursor está del lado del cliente, está así para


poder
utilizar el método sort, ¿debe estar a la fuerza del lado del servidor?

el error me da justo en el update del recordset

saludos
_______________
Franci Guerrero


"Maximiliano Damian Accotto" escribió
en el mensaje news:
> Franci, como estas nuevamente?
>
> El problema es como vos estas diciendo y esta en la aplicacion.
>
> Que puede ser?
>
> bueno aca por ej revisa esto:
>
> Que los cursores esten de Lado del Servidor
> Que sea del tipo Keyset
>
> lamentablemente no me das mas datos como para poder ayudarte
> Si me pasas como te conectas o (mejor aun si me pasas el fragmento del
> codigo y donde da el error)
>
>
> Salu2 enormes
>
> Maximiliano Damian Accotto
>
> Fundicion San Cayetano S.A.
> Gerente de IT
> Buenos Aires - Argentina
> -
> Desarrollador 3 estrellas
>


http://www.microsoft.com/spanish/ms...efault.asp
> -
> (maxi_accotto[arroba]speedy.com.ar)
> MSN:
> "Franci" escribió en el mensaje
> news:
> > Hola grupo,
> >
> > estoy utilizando un trigger que me dio nuestro amigo Maximiliano


que
> es
> > el siguiente:
> >
> >
> > /* Este desencadenador se encarga de actualizar el campo NumProforma
> > del regitro de la tabla Factura cuando se modifica el código de dicha
> > factura
> > proforma*/
> >
> > CREATE Trigger actualizar on dbo.Proforma for Update
> > as
> > declare @num as nvarchar(30)
> > set @num= (select NumProforma FROM inserted)
> >
> > Update factura set factura.numproforma = @num
> > from factura inner join deleted on
> > factura.numproforma = deleted.numproforma
> >
> >
> > el trigger funciona correctamente cuando lo pruebo desde SQL-Server


pero
> > cuando lo utilizo en mi aplicación visual basic me da el siguiente


error
> al
> > guardar los datos modificados:
> >
> > "No se puede encontrar la fila para su actualización: algunos valores
han
> > cambiado desde la última vez que se leyó".
> >
> > Sé que aparentemente el error no está en SQL Server, ¿pero alguien


puede
> > ayudarme?
> >
> > Muchas gracias de antemano
> >
> > Saludos
> > _______________
> > Franci Guerrero
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida