Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2005
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Poder: 22
vichovi Va por buen camino
Question 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)
Responder Con Cita
  #2  
Antiguo 03-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vichovi
con los componentes ZEOS utilizando transacciones (las tablas son MyISAM) [pero] no consigo que me funcione.
Las tablas MyIsam no soportan transacciones, necesitas usar tablas InnoDb.

// Saludos
Responder Con Cita
  #3  
Antiguo 04-01-2005
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Poder: 22
vichovi Va por buen camino
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)
Responder Con Cita
  #4  
Antiguo 04-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vichovi
pero luego como lo hago??
¿Cómo haces qué? ¿Cambiar el tipo de tabla?

Código SQL [-]
alter table `tu_tabla` type = INNODB

// Saludos
Responder Con Cita
  #5  
Antiguo 21-01-2005
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Poder: 22
vichovi Va por buen camino
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;
Es un poco tonto el ejemplo pero ni aun asi va...

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)
Responder Con Cita
  #6  
Antiguo 21-01-2005
Tony_G Tony_G is offline
Miembro
 
Registrado: may 2003
Ubicación: Córdoba - España
Posts: 40
Poder: 0
Tony_G Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 25-01-2005
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Poder: 22
vichovi Va por buen camino
Gracias por todo TonyG, probare tu remedio :-)
__________________
Vivir a la deriva,
sentir,
que no se que hago aki...

(Extremo)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:48:06.


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
Copyright 1996-2007 Club Delphi