Transacciones anidadas en Vb 6, Sql server 2000, Ado 2.7

04/09/2003 - 12:59 por Alf | Informe spam
Hola, os expongo el problema que tengo.



El programa está desarrollado en VB 6 con SQL Server 2000, a través de ADO
2.7, el problema viene con las transacciones anidadas, al llamar a la
transacción anidada, el programa dice que no se pueden iniciar más
transacciones.



SQL Server 2000 permite transacciones anidadas, VB 6 permite transacciones
anidadas.



Microsoft indica en su web, que no se permiten transacciones anidadas en
ODBC/OLE DB/ADO, pero especifica lo siguiente:



The ADO Help indicates that ADO supports nested transactions but only if the
underlying OLE DB Provider supports nested transactions. The following
Microsoft Providers do not support Nested Transactions:

· OLE DB Provider for ODBC Drivers

· Index Server Provider for OLE DB

· Active Directory Provider for OLE DB



Si no puedo encontrar la forma de solucionarlo desde VB, me gustaría poderlo
hacer desde un procedimiento almacenado, en el que incluya las transacciones
anidadas pero entonces, me surge otro problema o duda: ¿Se puede recorrer un
conjunto de registros y procesarlos dentro de un procedimiento almacenado?,
¿Cómo?



La idea es la siguiente:

Function PPP



a.. Comenzar transacción
b.. Abrir un Recordset
c.. Recorrerlo y por cada registro, llamar a otras funciones que a su vez
recorren y modifican recordsets
d.. Llamar a la función XXX
e.. Finalizar transacción


End function



Function XXX



a.. Comenzar transacción
b.. Abrir un Recordset
c.. Recorrerlo y por cada registro, llamar a otras funciones que a su vez
recorren y modifican recordsets
d.. Finalizar transacción


End function

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
04/09/2003 - 13:10 | Informe spam
Hola:

Lo que indicas, se puede hacer en SQL Server utilizando cursores.

Ahora, los cursores no dan buen rendimiento, como habrás leído muchas veces
en este foro, y además en la mayoría de los casos suele haber soluciones
alternativas para evitar su uso.

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"Alf" escribió en el mensaje
news:#
Mostrar la cita
the
Mostrar la cita
poderlo
Mostrar la cita
transacciones
Mostrar la cita
un
Mostrar la cita
almacenado?,
Mostrar la cita
vez
Mostrar la cita
vez
Mostrar la cita
#2 ulises
04/09/2003 - 21:08 | Informe spam
Inicia tu secuencia de transacciones anidadas con un BEGIN
TRAN y terminala con un COMMIT o ROLLBACK, eso evitará que
se trate de iniciar una transacción por cada sentencia.

Saludos,
Ulises
PD. Espero haber entendido bien tu pregunta :-)

Mostrar la cita
2000, a través de ADO
Mostrar la cita
llamar a la
Mostrar la cita
iniciar más
Mostrar la cita
permite transacciones
Mostrar la cita
transacciones anidadas en
Mostrar la cita
transactions but only if the
Mostrar la cita
The following
Mostrar la cita
me gustaría poderlo
Mostrar la cita
incluya las transacciones
Mostrar la cita
¿Se puede recorrer un
Mostrar la cita
procedimiento almacenado?,
Mostrar la cita
funciones que a su vez
Mostrar la cita
funciones que a su vez
Mostrar la cita
Ads by Google
Search Busqueda sugerida