transacciones

14/04/2004 - 18:49 por Carlos | Informe spam
Hola a todos,
mi consulta es la siguiente, en una aplicación
desarrollada en VB6 o VB.Net con MSSQL Server, puedo
manejar las transacciones desde el VB como desde el SQL,
Cual de las dos es la mas recomendable?, existe alguna
diferencia entre ambas?

Gracias de antemano

Carlos Ch.

Preguntas similare

Leer las respuestas

#1 Javier Loria
14/04/2004 - 19:06 | Informe spam
Hola:
Puedes usar cualquiera de las 2.
Lo unico que te recomiendo es que uses solo 1 de las dos, es
catastrofico usar ambas, porque haces el mantenimiento de la aplicacion muy
dificil.
Si estas mas cerca de aplicaciones cliente servidor es mejor manejarlas
en el SQL, por el mantenimiento, si estas mas cerca de una aplicacion de 3
capas con muchos componentes (granularidad alta) es mejor manejarlas desde
VB por la reutilizacion.
Solo una opinion,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Carlos escribio:
Hola a todos,
mi consulta es la siguiente, en una aplicación
desarrollada en VB6 o VB.Net con MSSQL Server, puedo
manejar las transacciones desde el VB como desde el SQL,
Cual de las dos es la mas recomendable?, existe alguna
diferencia entre ambas?

Gracias de antemano

Carlos Ch.
Respuesta Responder a este mensaje
#2 Adrian D. Garcia
14/04/2004 - 19:13 | Informe spam
Basicamente cuando ejecutas el metodo BeginTransaction del objeto conexion
desde VB o VB.NET lo que envia al servidor es que ejecute el comando "BEGIN
TRANSACTION". Si ejecutas dentro de en un script no habria mayores problemas
ya que basicamente son la misma cosa.
El problema es cuando empiezas a mezclar inicios de transacciones mezcladas
desde el cliente con inicios de transacciones dentro de los procedimientos
almacenados. Los errores que se producen generalmente son bastantes molestos
de depurar.
Yo he decidido que, en lo personal, es mejor manejar las transacciones
dentro de los procedimientos almacenados dentro de lo posible. Pero esto
tambien depende de muchas cosas, como por ejemplo, si utilizas algun motor
de transacciones en el medio (MTS/COM+), si necesitas realizar transacciones
distribuidas, si estas "objetivizando" tu aplicacion, rendimiento, etc,
.en fin ... no hay una respuesta muy clara a esto.

Saludos

Adrian D. Garcia
NDSoft
MCSD
"Carlos" escribió en el mensaje
news:17ffb01c42240$84a873a0$
Hola a todos,
mi consulta es la siguiente, en una aplicación
desarrollada en VB6 o VB.Net con MSSQL Server, puedo
manejar las transacciones desde el VB como desde el SQL,
Cual de las dos es la mas recomendable?, existe alguna
diferencia entre ambas?

Gracias de antemano

Carlos Ch.
Respuesta Responder a este mensaje
#3 Miguel Egea
14/04/2004 - 20:24 | Informe spam
Yo uso las dos, habrán procesos que llamen a más de un procedimiento
almacenado y está bien que ellos intenten garantizar su integridad, lo que
hago también es que cada procedimiento o método delega la responsabilidad de
la transaccionalidad en el que lo llama (si acaso el no es el primero) Lo
hago básicamente usando las variables @@trancount y los retornos de los
procedimientos almacenados, en resumen el cuerpo de un procedimiento
almacenado se quedaría así

Create proc XXX
as
begin

set @esmitransaccion=0
if @@trancount=0
begin
set @Esmitransaccion=1
begin tran
end

Accion1
if @@error<>0
goto SalirConError
...

Accion2
if @@error<>0
goto SalirConError

Exec @reusultado =ProcedimientoAlmacenado
if @resultador<>0
goto SalirConError
...

if @EsMitransaccion=1
Commit tran
return 0
SalirConerror:

if @EsMitransaccion=1
rollback tran
return @variabledeError
end

De esta forma cada procedimiento delega la responsabilidad de la
transaccionalidad en el que lo llama a él excepto si es el primero en la
cadena de las llamadas caso en el que asume esa responsabilidad. Desde VB6 y
VB.NET es bastante fácil seguir un esquema de este tipo, evitamos anidar
transacciones y listo.



Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)

"Carlos" escribió en el mensaje
news:17ffb01c42240$84a873a0$
Hola a todos,
mi consulta es la siguiente, en una aplicación
desarrollada en VB6 o VB.Net con MSSQL Server, puedo
manejar las transacciones desde el VB como desde el SQL,
Cual de las dos es la mas recomendable?, existe alguna
diferencia entre ambas?

Gracias de antemano

Carlos Ch.
Respuesta Responder a este mensaje
#4 ulises
14/04/2004 - 20:59 | Informe spam
Sobre cual es mejor, no tengo una idea clara creo que
habría que hacer pruebas para salir de dudas, en todo caso
he usado ambos, generalmente cuando existen componentes en
un servidor de aplicaciones estos se encargan de manejar
la transaccionalidad, en caso de no existir se maneja en
los procedimentos almacenados siempre con la
consideracción de revisar al final la variable @@trancount.

Saludos,
Ulises

Hola a todos,
mi consulta es la siguiente, en una aplicación
desarrollada en VB6 o VB.Net con MSSQL Server, puedo
manejar las transacciones desde el VB como desde el SQL,
Cual de las dos es la mas recomendable?, existe alguna
diferencia entre ambas?

Gracias de antemano

Carlos Ch.
Respuesta Responder a este mensaje
#5 Carlos
14/04/2004 - 22:30 | Informe spam
Gracias a todos por sus respuestas, tendré presente sus
comentarios para asegurar la integridad de mis procesos.

Gracias


Carlos Ch.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida