Como ejecutar una transcion Cursor Adapter con ado y SPT

31/07/2004 - 02:25 por Mauricio Pulla B. | Informe spam
Hola

No tengo experiencia en CursorAdapter con Ado apuntando a Sql server
Revise el ejemplo de José G. Samper, sobre como trabajar en forma
desconectada con cursor adapter, ado y Ms SqlServe. excelente pero tengo
algunas dudas.

1) Se pueden compartir varios CA un mismo obejto Connection
Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
Thisform.CA2.ActiveConnection = Thisform.oADOConnection

2) Se puede compartir el objeto connection de varios CAs con SPT para
ejecutar una transaccion
Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que esto
me daria el manejador
SQLSETPROP(nConnectionHandle, "Transactions", 2)
llSuccess = TABLEUPDATE(.T., .F., CA1)
if llSuccess
llSuccess = TABLEUPDATE(.T., .F., CA2)
if llSuccess
llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
if llSuccess
SQLCOMMIT(nConnectionHandle)
return llSuccess
endif
endif
endif
=SQLROLLBACK(nConnectionHandle)
&&Detecto error
*-Si esta no es la forma de hacer una transccion de CAs con SPT con una
misma conneccion como hacerlo.

3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el codigo
en un try cath

4) En el SP1 de VFP8.0 se corrgio el error que al hacer un Tableupdate()
siempre devolvia .T. pese a existir errores.

5) Cual seria la mejor estrategia para que la aplicacion corriera en una LAN
como en Una WAN tomando en cuenta que se trabajaria con W2000 Server, SQL
Server, CAs + Ado.

6) Cuando se tratara de una red WAN como cual seria la mejor forma de
conectar una sucursal distante con el servidor, y cual seria los equipos
requeridos.

Siempre e desarrollado aplicaciones para redes LAN y no tengo la menor idea
para que trabajen en una WAN..!

Saludos,
Mauricio Pulla.
Cuenca-Ecuador.

Preguntas similare

Leer las respuestas

#1 José G. Samper
31/07/2004 - 15:12 | Informe spam
Hola como estas,

1) Se pueden compartir varios CA un mismo obejto Connection
Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
Thisform.CA2.ActiveConnection = Thisform.oADOConnection

Sip


2) Se puede compartir el objeto connection de varios CAs con SPT para
ejecutar una transaccion
Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que
esto me daria el manejador
SQLSETPROP(nConnectionHandle, "Transactions", 2)
llSuccess = TABLEUPDATE(.T., .F., CA1)
if llSuccess
llSuccess = TABLEUPDATE(.T., .F., CA2)
if llSuccess
llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
if llSuccess
SQLCOMMIT(nConnectionHandle)
return llSuccess
endif
endif
endif
=SQLROLLBACK(nConnectionHandle)
&&Detecto error
*-Si esta no es la forma de hacer una transccion de CAs con SPT con una
misma conneccion como hacerlo.

Jamas lo he probado de esta forma, asi que realmente no te puedo decir si
funciona o no, cuando yo tuve que imprementar transacciones lo hice contra
la conexión, eje:
Thisform.oADOConnection.BeginTrans()
Thisform.oADOConnection.RollbackTrans()
Thisform.oADOConnection.CommitTrans()

en en cuenta que debes estar en transacciones lo menos posible, y solo
debes usar este sistema cuando vayas a actualizar mas de una tabla o mas de
un registro y quieras reversar todo. Por que MS SQL es transacional por
definición, o sea que si solo vas a actualizar una tabla y un registro el ya
abre una transacción

3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el codigo
en un try cath

Sip

4) En el SP1 de VFP8.0 se corrgio el error que al hacer un Tableupdate()
siempre devolvia .T. pese a existir errores.

Nop, por lo menos a mi siempre me devuelve .T., lo trato de solventar
haciendo un go(recno()) despues del tableupdate esto hace que al tratar de
moverse dispare e excepcion



José G. Samper

"Mauricio Pulla B." escribió en el mensaje
news:
Hola

No tengo experiencia en CursorAdapter con Ado apuntando a Sql server
Revise el ejemplo de José G. Samper, sobre como trabajar en forma
desconectada con cursor adapter, ado y Ms SqlServe. excelente pero tengo
algunas dudas.

1) Se pueden compartir varios CA un mismo obejto Connection
Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
Thisform.CA2.ActiveConnection = Thisform.oADOConnection

2) Se puede compartir el objeto connection de varios CAs con SPT para
ejecutar una transaccion
Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que


esto
me daria el manejador
SQLSETPROP(nConnectionHandle, "Transactions", 2)
llSuccess = TABLEUPDATE(.T., .F., CA1)
if llSuccess
llSuccess = TABLEUPDATE(.T., .F., CA2)
if llSuccess
llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
if llSuccess
SQLCOMMIT(nConnectionHandle)
return llSuccess
endif
endif
endif
=SQLROLLBACK(nConnectionHandle)
&&Detecto error
*-Si esta no es la forma de hacer una transccion de CAs con SPT con una
misma conneccion como hacerlo.

3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el


codigo
en un try cath

4) En el SP1 de VFP8.0 se corrgio el error que al hacer un Tableupdate()
siempre devolvia .T. pese a existir errores.

5) Cual seria la mejor estrategia para que la aplicacion corriera en una


LAN
como en Una WAN tomando en cuenta que se trabajaria con W2000 Server, SQL
Server, CAs + Ado.

6) Cuando se tratara de una red WAN como cual seria la mejor forma de
conectar una sucursal distante con el servidor, y cual seria los equipos
requeridos.

Siempre e desarrollado aplicaciones para redes LAN y no tengo la menor


idea
para que trabajen en una WAN..!

Saludos,
Mauricio Pulla.
Cuenca-Ecuador.


Respuesta Responder a este mensaje
#2 Mauricio Pulla B.
02/08/2004 - 16:16 | Informe spam
Gracias José.
Esta seria la forma correcta.
Thisform.oADOConnection.BeginTrans()
Thisform.oADOConnection.RollbackTrans()
Thisform.oADOConnection.CommitTrans()

Como lo haria si es que necesito implementar SPT dentro de la transaccion ?

Vamos a ver que como me trata CA, ADO, SQL


Nuevamente Gracias por tu ayuda.
Saludos,
Mauricio Pulla.
Cuenca-Ecuador.

"José G. Samper" escribió en el mensaje
news:
Hola como estas,

1) Se pueden compartir varios CA un mismo obejto Connection
Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
Thisform.CA2.ActiveConnection = Thisform.oADOConnection

Sip


2) Se puede compartir el objeto connection de varios CAs con SPT para
ejecutar una transaccion
Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que
esto me daria el manejador
SQLSETPROP(nConnectionHandle, "Transactions", 2)
llSuccess = TABLEUPDATE(.T., .F., CA1)
if llSuccess
llSuccess = TABLEUPDATE(.T., .F., CA2)
if llSuccess
llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
if llSuccess
SQLCOMMIT(nConnectionHandle)
return llSuccess
endif
endif
endif
=SQLROLLBACK(nConnectionHandle)
&&Detecto error
*-Si esta no es la forma de hacer una transccion de CAs con SPT con una
misma conneccion como hacerlo.

Jamas lo he probado de esta forma, asi que realmente no te puedo decir


si
funciona o no, cuando yo tuve que imprementar transacciones lo hice contra
la conexión, eje:
Thisform.oADOConnection.BeginTrans()
Thisform.oADOConnection.RollbackTrans()
Thisform.oADOConnection.CommitTrans()

en en cuenta que debes estar en transacciones lo menos posible, y solo
debes usar este sistema cuando vayas a actualizar mas de una tabla o mas


de
un registro y quieras reversar todo. Por que MS SQL es transacional por
definición, o sea que si solo vas a actualizar una tabla y un registro el


ya
abre una transacción

3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el


codigo
en un try cath

Sip

4) En el SP1 de VFP8.0 se corrgio el error que al hacer un Tableupdate()
siempre devolvia .T. pese a existir errores.

Nop, por lo menos a mi siempre me devuelve .T., lo trato de solventar
haciendo un go(recno()) despues del tableupdate esto hace que al tratar de
moverse dispare e excepcion



José G. Samper

"Mauricio Pulla B." escribió en el mensaje
news:
> Hola
>
> No tengo experiencia en CursorAdapter con Ado apuntando a Sql server
> Revise el ejemplo de José G. Samper, sobre como trabajar en forma
> desconectada con cursor adapter, ado y Ms SqlServe. excelente pero tengo
> algunas dudas.
>
> 1) Se pueden compartir varios CA un mismo obejto Connection
> Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> Thisform.CA2.ActiveConnection = Thisform.oADOConnection
>
> 2) Se puede compartir el objeto connection de varios CAs con SPT para
> ejecutar una transaccion
> Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que
esto
> me daria el manejador
> SQLSETPROP(nConnectionHandle, "Transactions", 2)
> llSuccess = TABLEUPDATE(.T., .F., CA1)
> if llSuccess
> llSuccess = TABLEUPDATE(.T., .F., CA2)
> if llSuccess
> llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
> if llSuccess
> SQLCOMMIT(nConnectionHandle)
> return llSuccess
> endif
> endif
> endif
> =SQLROLLBACK(nConnectionHandle)
> &&Detecto error
> *-Si esta no es la forma de hacer una transccion de CAs con SPT con


una
> misma conneccion como hacerlo.
>
> 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el
codigo
> en un try cath
>
> 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un Tableupdate()
> siempre devolvia .T. pese a existir errores.
>
> 5) Cual seria la mejor estrategia para que la aplicacion corriera en una
LAN
> como en Una WAN tomando en cuenta que se trabajaria con W2000 Server,


SQL
> Server, CAs + Ado.
>
> 6) Cuando se tratara de una red WAN como cual seria la mejor forma de
> conectar una sucursal distante con el servidor, y cual seria los equipos
> requeridos.
>
> Siempre e desarrollado aplicaciones para redes LAN y no tengo la menor
idea
> para que trabajen en una WAN..!
>
> Saludos,
> Mauricio Pulla.
> Cuenca-Ecuador.
>
>


Respuesta Responder a este mensaje
#3 José G. Samper
02/08/2004 - 22:52 | Informe spam
Hola como estas, exactamente que quieres hacer?.

Saludos,

José G. Samper
MCP 70-229/70-316

"Mauricio Pulla B." escribió en el mensaje
news:%
Gracias José.
Esta seria la forma correcta.
Thisform.oADOConnection.BeginTrans()
Thisform.oADOConnection.RollbackTrans()
Thisform.oADOConnection.CommitTrans()

Como lo haria si es que necesito implementar SPT dentro de la transaccion


?

Vamos a ver que como me trata CA, ADO, SQL


Nuevamente Gracias por tu ayuda.
Saludos,
Mauricio Pulla.
Cuenca-Ecuador.

"José G. Samper" escribió en el mensaje
news:
> Hola como estas,
>
> 1) Se pueden compartir varios CA un mismo obejto Connection
> Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> Thisform.CA2.ActiveConnection = Thisform.oADOConnection
>
> Sip
>
>
> 2) Se puede compartir el objeto connection de varios CAs con SPT para
> ejecutar una transaccion
> Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo que
> esto me daria el manejador
> SQLSETPROP(nConnectionHandle, "Transactions", 2)
> llSuccess = TABLEUPDATE(.T., .F., CA1)
> if llSuccess
> llSuccess = TABLEUPDATE(.T., .F., CA2)
> if llSuccess
> llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
> if llSuccess
> SQLCOMMIT(nConnectionHandle)
> return llSuccess
> endif
> endif
> endif
> =SQLROLLBACK(nConnectionHandle)
> &&Detecto error
> *-Si esta no es la forma de hacer una transccion de CAs con SPT con


una
> misma conneccion como hacerlo.
>
> Jamas lo he probado de esta forma, asi que realmente no te puedo


decir
si
> funciona o no, cuando yo tuve que imprementar transacciones lo hice


contra
> la conexión, eje:
> Thisform.oADOConnection.BeginTrans()
> Thisform.oADOConnection.RollbackTrans()
> Thisform.oADOConnection.CommitTrans()
>
> en en cuenta que debes estar en transacciones lo menos posible, y solo
> debes usar este sistema cuando vayas a actualizar mas de una tabla o mas
de
> un registro y quieras reversar todo. Por que MS SQL es transacional por
> definición, o sea que si solo vas a actualizar una tabla y un registro


el
ya
> abre una transacción
>
> 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el
codigo
> en un try cath
>
> Sip
>
> 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un


Tableupdate()
> siempre devolvia .T. pese a existir errores.
>
> Nop, por lo menos a mi siempre me devuelve .T., lo trato de


solventar
> haciendo un go(recno()) despues del tableupdate esto hace que al tratar


de
> moverse dispare e excepcion
>
>
>
> José G. Samper
>
> "Mauricio Pulla B." escribió en el mensaje
> news:
> > Hola
> >
> > No tengo experiencia en CursorAdapter con Ado apuntando a Sql server
> > Revise el ejemplo de José G. Samper, sobre como trabajar en forma
> > desconectada con cursor adapter, ado y Ms SqlServe. excelente pero


tengo
> > algunas dudas.
> >
> > 1) Se pueden compartir varios CA un mismo obejto Connection
> > Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> > Thisform.CA2.ActiveConnection = Thisform.oADOConnection
> >
> > 2) Se puede compartir el objeto connection de varios CAs con SPT para
> > ejecutar una transaccion
> > Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo


que
> esto
> > me daria el manejador
> > SQLSETPROP(nConnectionHandle, "Transactions", 2)
> > llSuccess = TABLEUPDATE(.T., .F., CA1)
> > if llSuccess
> > llSuccess = TABLEUPDATE(.T., .F., CA2)
> > if llSuccess
> > llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
> > if llSuccess
> > SQLCOMMIT(nConnectionHandle)
> > return llSuccess
> > endif
> > endif
> > endif
> > =SQLROLLBACK(nConnectionHandle)
> > &&Detecto error
> > *-Si esta no es la forma de hacer una transccion de CAs con SPT con
una
> > misma conneccion como hacerlo.
> >
> > 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el
> codigo
> > en un try cath
> >
> > 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un


Tableupdate()
> > siempre devolvia .T. pese a existir errores.
> >
> > 5) Cual seria la mejor estrategia para que la aplicacion corriera en


una
> LAN
> > como en Una WAN tomando en cuenta que se trabajaria con W2000 Server,
SQL
> > Server, CAs + Ado.
> >
> > 6) Cuando se tratara de una red WAN como cual seria la mejor forma de
> > conectar una sucursal distante con el servidor, y cual seria los


equipos
> > requeridos.
> >
> > Siempre e desarrollado aplicaciones para redes LAN y no tengo la menor
> idea
> > para que trabajen en una WAN..!
> >
> > Saludos,
> > Mauricio Pulla.
> > Cuenca-Ecuador.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Mauricio Pulla B.
03/08/2004 - 16:34 | Informe spam
Hola José G.
Gracias por tu tiempo.

Necesito hacer una transaccion con Cursor Adapter (Ado apuntando SQL Server
2000) ademas actualizar varias tablas.
Ej. Facturación
*Metodo Grabar
Transcaccion
Obtener el siguiente Numero secuencial
TableUpdate(CA_Cabecera)
TableUpdate(CA_Detalle)
Actualizar items
Actualizar saldo de cliente
Actualizar numero secuencial
EndTransction
* Como realizo este proceso en una transaccion o en varias transacciones
José si me puedes ayudar con un poco de codigo lo analizo y lo adapto o mis
necesidades

W2000 Pro, VFP 8.0 SP1
Saludos.
Mauricio Pulla.
Cuenca-Ecuador

"José G. Samper" escribió en el mensaje
news:
Hola como estas, exactamente que quieres hacer?.

Saludos,

José G. Samper
MCP 70-229/70-316

"Mauricio Pulla B." escribió en el mensaje
news:%
> Gracias José.
> Esta seria la forma correcta.
> Thisform.oADOConnection.BeginTrans()
> Thisform.oADOConnection.RollbackTrans()
> Thisform.oADOConnection.CommitTrans()
>
> Como lo haria si es que necesito implementar SPT dentro de la


transaccion
?
>
> Vamos a ver que como me trata CA, ADO, SQL
>
>
> Nuevamente Gracias por tu ayuda.
> Saludos,
> Mauricio Pulla.
> Cuenca-Ecuador.
>
> "José G. Samper" escribió en el mensaje
> news:
> > Hola como estas,
> >
> > 1) Se pueden compartir varios CA un mismo obejto Connection
> > Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> > Thisform.CA2.ActiveConnection = Thisform.oADOConnection
> >
> > Sip
> >
> >
> > 2) Se puede compartir el objeto connection de varios CAs con SPT para
> > ejecutar una transaccion
> > Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo


que
> > esto me daria el manejador
> > SQLSETPROP(nConnectionHandle, "Transactions", 2)
> > llSuccess = TABLEUPDATE(.T., .F., CA1)
> > if llSuccess
> > llSuccess = TABLEUPDATE(.T., .F., CA2)
> > if llSuccess
> > llSuccess=SqlExec(nConnectionHandle, cSQLCommand) > 0
> > if llSuccess
> > SQLCOMMIT(nConnectionHandle)
> > return llSuccess
> > endif
> > endif
> > endif
> > =SQLROLLBACK(nConnectionHandle)
> > &&Detecto error
> > *-Si esta no es la forma de hacer una transccion de CAs con SPT con
una
> > misma conneccion como hacerlo.
> >
> > Jamas lo he probado de esta forma, asi que realmente no te puedo
decir
> si
> > funciona o no, cuando yo tuve que imprementar transacciones lo hice
contra
> > la conexión, eje:
> > Thisform.oADOConnection.BeginTrans()
> > Thisform.oADOConnection.RollbackTrans()
> > Thisform.oADOConnection.CommitTrans()
> >
> > en en cuenta que debes estar en transacciones lo menos posible, y


solo
> > debes usar este sistema cuando vayas a actualizar mas de una tabla o


mas
> de
> > un registro y quieras reversar todo. Por que MS SQL es transacional


por
> > definición, o sea que si solo vas a actualizar una tabla y un registro
el
> ya
> > abre una transacción
> >
> > 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar el
> codigo
> > en un try cath
> >
> > Sip
> >
> > 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un
Tableupdate()
> > siempre devolvia .T. pese a existir errores.
> >
> > Nop, por lo menos a mi siempre me devuelve .T., lo trato de
solventar
> > haciendo un go(recno()) despues del tableupdate esto hace que al


tratar
de
> > moverse dispare e excepcion
> >
> >
> >
> > José G. Samper
> >
> > "Mauricio Pulla B." escribió en el mensaje
> > news:
> > > Hola
> > >
> > > No tengo experiencia en CursorAdapter con Ado apuntando a Sql server
> > > Revise el ejemplo de José G. Samper, sobre como trabajar en forma
> > > desconectada con cursor adapter, ado y Ms SqlServe. excelente pero
tengo
> > > algunas dudas.
> > >
> > > 1) Se pueden compartir varios CA un mismo obejto Connection
> > > Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> > > Thisform.CA2.ActiveConnection = Thisform.oADOConnection
> > >
> > > 2) Se puede compartir el objeto connection de varios CAs con SPT


para
> > > ejecutar una transaccion
> > > Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo
que
> > esto
> > > me daria el manejador
> > > SQLSETPROP(nConnectionHandle, "Transactions", 2)
> > > llSuccess = TABLEUPDATE(.T., .F., CA1)
> > > if llSuccess
> > > llSuccess = TABLEUPDATE(.T., .F., CA2)
> > > if llSuccess
> > > llSuccess=SqlExec(nConnectionHandle, cSQLCommand) >


0
> > > if llSuccess
> > > SQLCOMMIT(nConnectionHandle)
> > > return llSuccess
> > > endif
> > > endif
> > > endif
> > > =SQLROLLBACK(nConnectionHandle)
> > > &&Detecto error
> > > *-Si esta no es la forma de hacer una transccion de CAs con SPT


con
> una
> > > misma conneccion como hacerlo.
> > >
> > > 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar


el
> > codigo
> > > en un try cath
> > >
> > > 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un
Tableupdate()
> > > siempre devolvia .T. pese a existir errores.
> > >
> > > 5) Cual seria la mejor estrategia para que la aplicacion corriera en
una
> > LAN
> > > como en Una WAN tomando en cuenta que se trabajaria con W2000


Server,
> SQL
> > > Server, CAs + Ado.
> > >
> > > 6) Cuando se tratara de una red WAN como cual seria la mejor forma


de
> > > conectar una sucursal distante con el servidor, y cual seria los
equipos
> > > requeridos.
> > >
> > > Siempre e desarrollado aplicaciones para redes LAN y no tengo la


menor
> > idea
> > > para que trabajen en una WAN..!
> > >
> > > Saludos,
> > > Mauricio Pulla.
> > > Cuenca-Ecuador.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Mauricio Pulla B.
05/08/2004 - 19:21 | Informe spam
Hola José
Me puedes dar una guia de como poder hacer este tipo de proceso.
Saludos.
Mauricio Pulla.
Cuenca-Ecuador

"Mauricio Pulla B." escribió en el mensaje
news:
Hola José G.
Gracias por tu tiempo.

Necesito hacer una transaccion con Cursor Adapter (Ado apuntando SQL


Server
2000) ademas actualizar varias tablas.
Ej. Facturación
*Metodo Grabar
Transcaccion
Obtener el siguiente Numero secuencial
TableUpdate(CA_Cabecera)
TableUpdate(CA_Detalle)
Actualizar items
Actualizar saldo de cliente
Actualizar numero secuencial
EndTransction
* Como realizo este proceso en una transaccion o en varias transacciones
José si me puedes ayudar con un poco de codigo lo analizo y lo adapto o


mis
necesidades

W2000 Pro, VFP 8.0 SP1
Saludos.
Mauricio Pulla.
Cuenca-Ecuador

"José G. Samper" escribió en el mensaje
news:
> Hola como estas, exactamente que quieres hacer?.
>
> Saludos,
>
> José G. Samper
> MCP 70-229/70-316
>
> "Mauricio Pulla B." escribió en el mensaje
> news:%
> > Gracias José.
> > Esta seria la forma correcta.
> > Thisform.oADOConnection.BeginTrans()
> > Thisform.oADOConnection.RollbackTrans()
> > Thisform.oADOConnection.CommitTrans()
> >
> > Como lo haria si es que necesito implementar SPT dentro de la
transaccion
> ?
> >
> > Vamos a ver que como me trata CA, ADO, SQL
> >
> >
> > Nuevamente Gracias por tu ayuda.
> > Saludos,
> > Mauricio Pulla.
> > Cuenca-Ecuador.
> >
> > "José G. Samper" escribió en el mensaje
> > news:
> > > Hola como estas,
> > >
> > > 1) Se pueden compartir varios CA un mismo obejto Connection
> > > Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> > > Thisform.CA2.ActiveConnection = Thisform.oADOConnection
> > >
> > > Sip
> > >
> > >
> > > 2) Se puede compartir el objeto connection de varios CAs con SPT


para
> > > ejecutar una transaccion
> > > Ej: nConnectionHandle = Thisform.oADOConnection &&Asumo
que
> > > esto me daria el manejador
> > > SQLSETPROP(nConnectionHandle, "Transactions", 2)
> > > llSuccess = TABLEUPDATE(.T., .F., CA1)
> > > if llSuccess
> > > llSuccess = TABLEUPDATE(.T., .F., CA2)
> > > if llSuccess
> > > llSuccess=SqlExec(nConnectionHandle, cSQLCommand) >


0
> > > if llSuccess
> > > SQLCOMMIT(nConnectionHandle)
> > > return llSuccess
> > > endif
> > > endif
> > > endif
> > > =SQLROLLBACK(nConnectionHandle)
> > > &&Detecto error
> > > *-Si esta no es la forma de hacer una transccion de CAs con SPT


con
> una
> > > misma conneccion como hacerlo.
> > >
> > > Jamas lo he probado de esta forma, asi que realmente no te puedo
> decir
> > si
> > > funciona o no, cuando yo tuve que imprementar transacciones lo hice
> contra
> > > la conexión, eje:
> > > Thisform.oADOConnection.BeginTrans()
> > > Thisform.oADOConnection.RollbackTrans()
> > > Thisform.oADOConnection.CommitTrans()
> > >
> > > en en cuenta que debes estar en transacciones lo menos posible, y
solo
> > > debes usar este sistema cuando vayas a actualizar mas de una tabla o
mas
> > de
> > > un registro y quieras reversar todo. Por que MS SQL es transacional
por
> > > definición, o sea que si solo vas a actualizar una tabla y un


registro
> el
> > ya
> > > abre una transacción
> > >
> > > 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar e


l
> > codigo
> > > en un try cath
> > >
> > > Sip
> > >
> > > 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un
> Tableupdate()
> > > siempre devolvia .T. pese a existir errores.
> > >
> > > Nop, por lo menos a mi siempre me devuelve .T., lo trato de
> solventar
> > > haciendo un go(recno()) despues del tableupdate esto hace que al
tratar
> de
> > > moverse dispare e excepcion
> > >
> > >
> > >
> > > José G. Samper
> > >
> > > "Mauricio Pulla B." escribió en el mensaje
> > > news:
> > > > Hola
> > > >
> > > > No tengo experiencia en CursorAdapter con Ado apuntando a Sql


server
> > > > Revise el ejemplo de José G. Samper, sobre como trabajar en forma
> > > > desconectada con cursor adapter, ado y Ms SqlServe. excelente pero
> tengo
> > > > algunas dudas.
> > > >
> > > > 1) Se pueden compartir varios CA un mismo obejto Connection
> > > > Ej. Thisform.CA1.ActiveConnection = Thisform.oADOConnection
> > > > Thisform.CA2.ActiveConnection = Thisform.oADOConnection
> > > >
> > > > 2) Se puede compartir el objeto connection de varios CAs con SPT
para
> > > > ejecutar una transaccion
> > > > Ej: nConnectionHandle = Thisform.oADOConnection


&&Asumo
> que
> > > esto
> > > > me daria el manejador
> > > > SQLSETPROP(nConnectionHandle, "Transactions", 2)
> > > > llSuccess = TABLEUPDATE(.T., .F., CA1)
> > > > if llSuccess
> > > > llSuccess = TABLEUPDATE(.T., .F., CA2)
> > > > if llSuccess
> > > > llSuccess=SqlExec(nConnectionHandle, cSQLCommand)

0
> > > > if llSuccess
> > > > SQLCOMMIT(nConnectionHandle)
> > > > return llSuccess
> > > > endif
> > > > endif
> > > > endif
> > > > =SQLROLLBACK(nConnectionHandle)
> > > > &&Detecto error
> > > > *-Si esta no es la forma de hacer una transccion de CAs con SPT
con
> > una
> > > > misma conneccion como hacerlo.
> > > >
> > > > 3) En caso de estar correcta la pregunta 2 seria correcto ejecutar
el
> > > codigo
> > > > en un try cath
> > > >
> > > > 4) En el SP1 de VFP8.0 se corrgio el error que al hacer un
> Tableupdate()
> > > > siempre devolvia .T. pese a existir errores.
> > > >
> > > > 5) Cual seria la mejor estrategia para que la aplicacion corriera


en
> una
> > > LAN
> > > > como en Una WAN tomando en cuenta que se trabajaria con W2000
Server,
> > SQL
> > > > Server, CAs + Ado.
> > > >
> > > > 6) Cuando se tratara de una red WAN como cual seria la mejor forma
de
> > > > conectar una sucursal distante con el servidor, y cual seria los
> equipos
> > > > requeridos.
> > > >
> > > > Siempre e desarrollado aplicaciones para redes LAN y no tengo la
menor
> > > idea
> > > > para que trabajen en una WAN..!
> > > >
> > > > Saludos,
> > > > Mauricio Pulla.
> > > > Cuenca-Ecuador.
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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