![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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) |
|
#3
|
|||
|
|||
|
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) |
|
#4
|
|||
|
|||
|
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 |
|
#5
|
|||
|
|||
|
Gracias por todo TonyG, probare tu remedio :-)
__________________
Vivir a la deriva, sentir, que no se que hago aki... (Extremo) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|