Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Transacciones y Command out of sync (https://www.clubdelphi.com/foros/showthread.php?t=66513)

Edgtho 24-02-2010 09:56:10

Transacciones y Command out of sync
 
Buenas,

Tengo un problema que me trae de craneo. Me ha tocado pasar una aplicacion con MYSQL5 que usaba transacciones de delphi7 a Delphi2007 (es el que hay). El caso es que mientras la transaccion funciona en D7, en D2007 no hago mas que recibir "commmand out of sync, you can't run this command now".

He pasado el codigo a los nuevos metodos (beginTransaction de dbxcommon) y el resultado es el mismo.

Total que, por aislar el error creo una aplicacion nueva que contenga solo un TSQLConnection con los datos por defecto, y dos TSQLQueries.
Código:

TD := Datos.BeginTransaction;
try
    sqlQuery1.sql.text := 'select * from tabla1';
    sqlQuery1.sql.text := 'select * from tabla2';
    sqlQuery1.sqlconnection := datos;
    sqlQuery2.sqlconnection := datos;
   
    sqlQuery1.open;
    sqlQuery2.open; --> aqui ya me salta el error
....

finally
    Datos.CommitFreeAndNil(TD);
end;

No se que demonios puede estar pasando, y no creo estar equivocandome con la implementacion de la transaccion. ¿Alguna ayuda con el tema?


gracias.

Axel_Tech 24-02-2010 16:33:26

Cita:

Empezado por Edgtho (Mensaje 354867)
TD := Datos.BeginTransaction;
try
sqlQuery1.sql.text := 'select * from tabla1';
sqlQuery2.sql.text := 'select * from tabla2';
sqlQuery1.sqlconnection := datos;
sqlQuery2.sqlconnection := datos;

sqlQuery1.open;
sqlQuery2.open; --> aqui ya me salta el error
....

finally
Datos.CommitFreeAndNil(TD);
end;

Creo que por eso te salta el error al abrir la Query2, ya que el SQL está vacío. Estás añadiendo los 2 SELECT al SQL de la Query1.

Edgtho 24-02-2010 16:46:12

Perdon... ha sido un error al transcribir el codigo al foro. Mira que previsualizo antes pero no me he dado cuenta.

He comprobado con un amigote y me cuenta que con Delphi2010 no le pasa. ¿Puede ser un error del driver dbxmys30.dll?


La franja horaria es GMT +2. Ahora son las 22:26:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi