Power Builder - Commit

 
Vista:

Commit

Publicado por Luis (6 intervenciones) el 01/06/2004 19:42:06
Hola a todos.

Tengo una duda, ¿¿como afecta el Autocommit = false en la conexion a mi base de datos??

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Commit

Publicado por Oscar (1178 intervenciones) el 03/06/2004 16:17:34
En la conexión inicial a la BD no afecta en nada. Cuando está en FALSE y se realiza la primera conexión, automáticamente envía un BEGIN TRANSACTION. Esta transacción dura hasta el momento en que se encuentra un COMMIT o un ROLLBACK colocada de manera explícita. Al realizar una de estas dos instrucciones el entorno automáticamente envía la instrucción correspondiente al DMBS e inmediatamente abre otra instrucción.

Ahora si tu duda es, si te conviene trabajar con TRUE o FALSE. Seguro que ya sabes; pero si queda algo de duda, coméntalo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Commit (Duda)

Publicado por Luis (6 intervenciones) el 03/06/2004 23:19:08
Hola.

Mi duda se fundamenta en un comentareio que me hicieron, tengo un control DropDownListBox, al iniciar la aplicacion esta carga una lista por medio de un cursor; me dijeron que no es una buena forma de hacerlo puesto que tarde o temprano el sistema colapsaria, precisamente por el uso del Autocommit a False.

J.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Commit (Duda)

Publicado por Oscar (1178 intervenciones) el 04/06/2004 00:38:32
La figura del uso de Autocommit a TRUE o FALSE, se fundamenta en lo siguiente:
* TRUE
El entorno realiza automáticamente un COMMIT cada vez que se realiza una instrucción de modificación de datos (Insert, Update y Delete). Este tipo de proceso sirve sólo si la totalidad de las transacciones de la aplicación son simples (UNA INSTRUCCIÓN). La única ventaja, es que nos desentendemos de escribir los COMMIT y los ROLLBACK, dentro el script.

* FALSE
Este valor permite el completo control de las transacciones de parte del programador.
Ejemplo:

If dw_1.Upadate()=1 Then
COMMIT;
Else
MessageBox("Error de actualización", sqlca.sqlerrtext)
ROLLBACK;
End If

Pero cuando las transacciones son más complejas, por ejemplo cuando es necesario actualizar la información dentro de una ventana Maestro/Detalle. Tenemos dos DW y para nosotros la actualización de ambos a la vez representa una transacción completa.

En este caso, si queremos que el trabajo se deshaga, se tiene que anidar dos Update() uno detrás del otro y dentro del segundo un COMMIT para ambos. No te pongo el ejemplo por cuestion de espacio (si deseas ese ejemplo, me comunicas por e-mail); pero espero que se haya entendido la idea fundamental.

Para finalizar, debes analizar si en el caso del DropDownListBox, o más bien creo que se trata de un DropDownDataWindow, debes preguntarte si estas usando dos DW y si deseas que ambos se actualicen o se deshagan simultáneamente. En este caso, debe estar en FALSE y tú debes manejar esa transacción con mayor cuidado.

Fuente: Libro SQL Server y PB de Gustavo Coronel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar