Ver Mensaje Individual
  #1  
Antiguo 16-01-2012
Perenquen Perenquen is offline
Miembro
 
Registrado: jul 2003
Posts: 27
Reputación: 0
Perenquen Va por buen camino
Cerrar conexion con ADO

Buenas. Estoy realizando una conexión a una base de datos MySQL utilizando ADO y me surgió un pequeño problema. Con una única conexión todo funciona bien.
Código Delphi [-]
procedure TFP.Button1Click(Sender: TObject);
var
  AQ1,AQ2 : TADOQuery;
 
begin
  AQ1 := TADOQuery.Create(nil);
  AQ1.Connectionstring := 'DRIVER={MySQL ODBC 5.1 Driver};SERVER=192.168.1.9;test;USER=root;PASSWORD=123456;OPTION=3';

  AQ1.SQL.Text := 'SELECT * FROM T1'; // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como se ha ESTABLECIDO la conexión
  AQ1.open;
  AQ1.close;
  AQ1.free;  // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como se ha CERRADO la conexión
  showmessage('OK');
end;

Como dije hasta aquí no había tenido problemas, pero cuando intento ejecutar dos consultas no soy capaz de liberar la conexión.

Código Delphi [-]
procedure TFP.Button1Click(Sender: TObject);
var
  AQ1,AQ2 : TADOQuery;
 
begin
  AQ1 := TADOQuery.Create(nil);
  AQ1.Connectionstring := 'DRIVER={MySQL ODBC 5.1 Driver};SERVER=192.168.1.9;test;USER=root;PASSWORD=123456;OPTION=3';

  AQ1.SQL.Text := 'SELECT * FROM T1'; // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como se ha ESTABLECIDO la PRIMERA conexión
  AQ1.open;
  
  AQ2 := TADOQuery.Create(nil);
  AQ2.Connectionstring := 'DRIVER={MySQL ODBC 5.1 Driver};SERVER=192.168.1.9;test;USER=root;PASSWORD=123456;OPTION=3';

  AQ2.SQL.Text := 'SELECT * FROM T2'; // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como se ha ESTABLECIDO la SEGUNDA conexión
  AQ2.open;

  AQ2.close;
  AQ2.free;  // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como NO se ha CERRADO la SEGUNDA conexión
  
  AQ1.close;
  AQ1.free;  // Después de esta instrucción puedo ver con un SHOW PROCESSLIST como se han CERRADO las DOS conexiones
  showmessage('OK');
end;

Obviamente estoy haciendo algo mal al trabajar con ADO. Alguno tiene alguna idea de que podría ser.

Gracias.
Responder Con Cita