Ir al contenido


Foto

TSQLTransaction de paquete SQLdb


  • Por favor identifícate para responder
5 respuestas en este tema

#1 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 17 octubre 2010 - 05:07

instalé Lazarus en Ubuntu 10.04 luego de muchos años sin ver cómo iba la IDE

Me encontré con la sorpresa que ya está sobre gtk2 y se ve bien  (y) (antes usaba gtk1 y se veía muy feo).

Quise hacer una aplicación sencilla conectado a MySQL usando los componentes en SQLdb
Me encuentro que estos requieren tener un componente TSQLTransaction.
Inicialmente no fue problema pero luego de un rato salió un error extraño pues al cerrar la aplicación siempre sale una excepción diciendo que la operación no se puede hacer sobre una transacción activa.

Muy extraño eso. He intentado desactivar y cerrar todos los componentes de datos en el evento de cierre del formulario pero el error no desaparece  :(
  • 0

#2 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 17 octubre 2010 - 05:48

http://hotfile.com/d...rus.tar.gz.html

este es el código en cuestión. Usa una base de datos mysql con una sola tabla llamada "nota"



sql
  1. CREATE TABLE  nota (
  2.   id INT(11) NOT NULL AUTO_INCREMENT,
  3.   tittle VARCHAR(100) NOT NULL,
  4.   content VARCHAR(500) NOT NULL,
  5.   PRIMARY KEY (id)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1


  • 0

#3 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 17 octubre 2010 - 11:37

Buenas,

No conozco ni Lazarus ni los componentes que mencionas, pero todo componente de transacción suele tener un commit y un rollback. El primero acepta la transacción (los cambios realizados) y el segundo los rechaza. Mira de buscarlos en tu componente de transacción y ejecuta el que más te convenga en cada caso.

Nos leemos

  • 0

#4 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 19 octubre 2010 - 06:55

Buenas,

No conozco ni Lazarus ni los componentes que mencionas, pero todo componente de transacción suele tener un commit y un rollback. El primero acepta la transacción (los cambios realizados) y el segundo los rechaza. Mira de buscarlos en tu componente de transacción y ejecuta el que más te convenga en cada caso.

Nos leemos


Tú en delphi usas una conexión, algún dataset y un datasource para desplegar datos en formularios. Estos componentes SQLdb adicionalmente requieren una transacción que es la que me da problemas. Realmente en todos los tutoriales la ignoran pero en mi caso lanza un excepción al cerrar la aplicación. Muy extraño eso.

Saludos
  • 0

#5 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 21 octubre 2010 - 08:37

Hola Jorgeu
Yo no utilizo mysql, pero te recomiendo que te conectes usando los componentes zeos que son muy buenos.
de cualquier manera te paso este link para que leas como utilizar mysql en lazarus Aqui..

Espero que te ayude esta informacion y seguire investigando para brindarte mas ayuda.
  • 0

#6 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 21 octubre 2010 - 09:36

Hola Jorgeu
Yo no utilizo mysql, pero te recomiendo que te conectes usando los componentes zeos que son muy buenos.
de cualquier manera te paso este link para que leas como utilizar mysql en lazarus Aqui..

Espero que te ayude esta informacion y seguire investigando para brindarte mas ayuda.


En esos ejemplos no usan los componentes SQLdb. He visto otros tutoriales donde crean la transacción y la ignoran sin problemas. No sé... al parecer los componenes Zeos son la mejor solución a la larga.

Muchas gracias
  • 0




IP.Board spam blocked by CleanTalk.