FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Transacciones con MySQL
Hola a tod@s, he estado haciendo pruebas con los componentes ZEOS utilizando transacciones (las tablas son MyISAM) pero no consigo que me funcione.
Agradeceria mucho un pequeño ejemplo. Gracias.
__________________
Vivir a la deriva, sentir, que no se que hago aki... (Extremo) |
#2
|
||||
|
||||
Cita:
// Saludos |
#3
|
|||
|
|||
Gracias Roman, entonces lo que tendria que hacer es cambiar las tablas de MyISAM a INNODB, pero luego como lo hago??
Un saludo y gracias.
__________________
Vivir a la deriva, sentir, que no se que hago aki... (Extremo) |
#5
|
|||
|
|||
Locura transaccional
Hola a todos y perdón Roman por la tardanza, cambie las tablas a InnoDB para que me soporte el tema de las transacciones y en este tiempo (cada vez que tengo algo de tiempo y me acuerdo :-)) he intentando realizar transacciones sin exito (la ayuda de los zeos es bastante escueta).
Alguien podria decirme que estoy haciendo mal: Código:
procedure TForm1.BitBtn1Click(Sender: TObject); begin msqConsulta.Close; msqConsulta.Sql.Clear; msqConsulta.Sql.Add('select * from bb'); msqConsulta.Open; mstTransaccion.StartTransaction; msqConsulta.Append; msqConsulta['bb1']:=5; try msqConsulta.Post; except mstTransaccion.Rollback; showmessage('Error'); exit; end; msqConsulta.Close; msqConsulta.Sql.Clear; msqConsulta.Sql.Add('select * from cc where cc1=5'); msqConsulta.open; try msqConsulta.Delete; mstTransaccion.Commit; except mstTransaccion.Rollback; showmessage('Error 2'); exit; end; showmessage('OK'); end; Si algun alma caritativa me dijera que falla, o un ejemplo, o una página con información, o lo que sea.... Un saludo y gracias a todos por vuestro tiempo.
__________________
Vivir a la deriva, sentir, que no se que hago aki... (Extremo) |
#6
|
|||
|
|||
Hola.
Yo utilizo el componente ZSQLProcessor de ZEOS y hago lo siguiente: zsqlprocessor.script.clear; zsqlprocessor.script.add('START TRANSACTION;'); zsqlprocessor.script.add('consulta;'); .. .. .. try zsqlprocessor.script.add('COMMIT;'); zsqlprocessor.execute; except zsqlprocessor.script.clear; zsqlprocessor.script.add('ROLLBACK;'); zsqlprocessor.execute; end; También puedes utilizar SAVEPOINT punto1; y luego ROLLBACK TO SAVEPOINT punto1; de esta forma deshaces los cambios hasta punto1. Ojo con los ';' al final de cada sentencia SQL. Espero que te sirva. Saludos, Antonio.
__________________
TonyG |
|
|
|