FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Transacciones
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Transacciones
Posted: Tue May 12, 2009 04:05 PM

Hola otra vez!

Estoy intentando hacer una actualizaci贸n de datos en varias tablas. Para mantener la
integridad referencial.

Pero necesito garantizar que el proceso se realiza por completo o de lo contrario que lo cancele.
Supongo que busco una transacci贸n.
Trabajo con una base de datos en SQL Server 2005.
Y uso ADO para acceder a la informaci贸n.

驴saben ustedes si hay algun modo de usar transacciones?
Me ser铆a de gran ayuda. :P

Javier,

FWH 8.04 2008
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Transacciones
Posted: Tue May 12, 2009 05:21 PM

Hooola de nuevo.

Me respond铆 a mi mismo.
Al final he encontrand como se hace desde SQL.

Jeje.
Gracias de todas fromas.

:wink::mrgreen:

Javier,

FWH 8.04 2008
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Transacciones
Posted: Tue May 12, 2009 05:45 PM

jfafive:

Y cual fue tu soluci贸n ?, podr铆as compartirla ?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Transacciones
Posted: Wed May 13, 2009 07:37 AM
Pues claro!

Perdonad pero estaba muy ocupado y no me di贸 tiempo a publicarla.
Lo he solucionado de esta forma:

Code (fw): Select all Collapse
cStrSql := "BEGIN TRY" + CRLF + ;
           "BEGIN TRANSACTION " + CRLF + ;
           "UPDATE tabla1 SET nombre = 'romeo'"  + CRLF + ;
           "UPDATE tabla2 SET nombre = 'julieta'" + CRLF + ;
           "COMMIT TRANSACTION" + CRLF + ;
           "END TRY" + CRLF + ;
           "BEGIN CATCH" + CRLF + ;
           "ROLLBACK TRANSACTION" + CRLF + ;
           "END CATCH"


De esta forma, le dicemos a SQL Server que intente ejecutar con 茅xito las dos actualizaciones.
Si por ejemplo actualiza la tabla1 pero falla en la tabla2, ser铆a un problema para la integruidad referencial.
En ese caso, ejecutar铆a el ROLLBACK que literalmente deshace los cambios y deja la tabla en su estado
previo a la ejecuci贸n.

Un saludo,
:-)
Javier,

FWH 8.04 2008
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Transacciones
Posted: Wed May 13, 2009 08:14 AM

Hola otra vez,

Me ocurre que lo de las transacciones est谩 muy bien.
Peeero, 驴como puedo saber desde FWH si ha tenido 茅xito o por el contrario se ha ido al ROLLBACK?

Ya que al ejecutarse en el servidor, no devuelve ning煤n error.
Simplemente no s茅 como verificar si la operaci贸n ha ido bien o n贸 desde FWH.

驴alguien me podr铆a ayudar?

:cry:

Javier,

FWH 8.04 2008
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Transacciones
Posted: Thu May 14, 2009 05:18 PM

Hola,,
Se me ocurre algo asi:

haza un query con : SELECT nombre FROM tabla1 WHERE nombre = 'romeo'
si te retorna un registro, quiere decir que existe la transaccion...

Salu2

Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Transacciones
Posted: Fri May 15, 2009 07:53 AM
Gracias Willi.
Pero ya lo he solucionado.

http://forums.fivetechsupport.com/viewtopic.php?f=6&t=15595&p=80739#p80739

Un saludo,
:-)
Javier,

FWH 8.04 2008

Continue the discussion