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.