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 28-06-2005
chileno chileno is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
chileno Va por buen camino
Cool 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¡¡¡¡¡
Responder Con Cita
  #2  
Antiguo 28-06-2005
chileno chileno is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
chileno Va por buen camino
por mi parte estoy buscando la respuesta...que hasta e momento ah sido esquiva....les pido una ayudita a todos¡¡¡¡
Responder Con Cita
  #3  
Antiguo 28-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 28-06-2005
chileno chileno is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
chileno Va por buen camino
jachguate ..hola¡¡¡

antes de leer el contenido del link que me enviaste, te digo que las tablas que utiliso son del tipo innodb....
Responder Con Cita
  #5  
Antiguo 29-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 29-06-2005
chileno chileno is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
chileno Va por buen camino
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 (1,2)');
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...
Responder Con Cita
  #7  
Antiguo 29-06-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
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
Responder Con Cita
  #8  
Antiguo 01-07-2005
chileno chileno is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
chileno Va por buen camino
gracias roman¡¡¡¡

el link que me enviaste esta la respuesta a mis dudas...veo que si entendias mi duda¡¡
Responder Con Cita
  #9  
Antiguo 01-07-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 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
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 13:06:31.


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