Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   transacciones, delphi 7 y mysql (https://www.clubdelphi.com/foros/showthread.php?t=22805)

chileno 28-06-2005 04:38:47

transacciones, delphi 7 y mysql
 
hola....
felicitaciones por la comunidad que tienen y gracias por dejarme participar.

estoy iniciando un proyecto y estoy en la etapa de probar lo que ya he selecionado (delphi 7, mysql 4.0.22, ZeosDBo-6.1.5-stable)
la conexion de estos tres elementos va de maravillas tanto en una maquina local, como en red.

para dar mayor confianza a las actualizaciones a la DB voy realizar transacciones a nivel de los componentes zeos.

al componente zconnection en las propiedades AutoCommit y TransactIsolationLevel les doy true y tiReadCommitted respectivamente, todo esto en tiempo de diseño, en tiempo de ejecucion realizo esta pequeña rutina:

Procedure.TFrom1.Button1Click(Sender:TObject);
begin
Zconnection.StrartTransaction;
try
Ztable.ApplyUpdates;
Zconnection.commit;
except
Zconnection.Rollback;
raise;
end;
Ztable.CommitUpdates
end;

cuando le doy al button me da el sgte error: "Invalid operation in non AutoCommit mode". como se ve al darle true a la propiedad AutoCommit, todo funciona de maravillas, pero creo que no es la idea, la idea es hacer una transaccion manual, la que se realiza en la rutina anterior.
la verda no se a que se debe, sera problemas de los componentes o yo???

espero que me iluminen para resolver este problema¡¡¡¡¡

chileno 28-06-2005 19:09:59

por mi parte estoy buscando la respuesta...que hasta e momento ah sido esquiva....les pido una ayudita a todos¡¡¡¡

jachguate 28-06-2005 21:15:59

Quizas tu problema radique en que mySQL no tiene soporte para transacciones en todos los tipos de tablas.

Creo que el siguiente enlace puede serte de utilidad.

http://www.mysqlfreaks.com/mysql/man...f_Transactions

Hasta luego.

;)

chileno 28-06-2005 22:14:46

jachguate ..hola¡¡¡

antes de leer el contenido del link que me enviaste, te digo que las tablas que utiliso son del tipo innodb....

jachguate 29-06-2005 00:39:50

Cita:

Empezado por chileno
jachguate ..hola¡¡¡

antes de leer el contenido del link que me enviaste, te digo que las tablas que utiliso son del tipo innodb....

Buen punto!

Si lo hubieras mencionado antes, ambos hubiesemos dejado de perder algo de tiempo hoy... :mad:

chileno 29-06-2005 01:13:24

perdona por el tiempo...se me fue ese punto.....

pero que me dices ...es normal que suceda eso.....
sera la version de zeos

bueno toy probando utilizar en forma directa las transacciones en mysql,
con los comando begin; commit ; Rollback, hice unas pruebas y funciona
pero me gustaria ver un ejemplo optimizado

haber hago esto pero no se si estar bien

procedure buttonclik(sender: TObjet);
begin
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('begin');
ZQuery1.ExecSQL;
try
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('insert into categoria values (:p1,:p2)');
Zquery1.Params[0].Value := edit1.Text;
ZQuery1.Params[1].Value := edit2.Text;
ZQUery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('Commit');
ZQuery1.ExecSQL;
except
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('rollback');
ZQuery1.ExecSQL;
end;
end;

quizas esto es una pendejada, si es asi corrijeme porfavor, pero me gustaria utilizar las transacciones atravez de los componentes, la verdad no se lo que pasa...

roman 29-06-2005 16:50:23

Para empezar yo creo que tu pregunta no está bien explicada.

Comienzas diciendo que

Cita:

Empezado por chileno
al componente zconnection en las propiedades AutoCommit y TransactIsolationLevel les doy true y tiReadCommitted

y comentas que

Cita:

Empezado por chileno
cuando le doy al button me da el sgte error: "Invalid operation in non AutoCommit mode".

Sin embargo luego dices

Cita:

Empezado por chileno
al darle true a la propiedad AutoCommit, todo funciona de maravillas

Entonces ¿en qué quedamos? Funciona o no funciona con AutoCommit = true?

Así que es difícil entender cuál es realmente el problema. De cualquier forma, quizá aplique en tu caso este reporte en la lista de fallos de ZEOS así como la respuesta que le da Seroukhov.

// Saludos

chileno 01-07-2005 17:08:32

gracias roman¡¡¡¡

el link que me enviaste esta la respuesta a mis dudas...veo que si entendias mi duda¡¡

roman 01-07-2005 18:44:59

Cita:

Empezado por chileno
veo que si entendias mi duda¡¡

Pues realmento no y sigo sin entenderla. Pero entré a la página del proyecto Zeos y ese reporte me pareció que podía aplicar a tu caso.

// Saludos


La franja horaria es GMT +2. Ahora son las 06:16:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi