Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Hilos o Bases de Datos SQL Server (https://www.clubdelphi.com/foros/showthread.php?t=23037)

manuel Suarez 05-07-2005 01:12:01

Hilos o Bases de Datos SQL Server
 
Antes que nada, muchas gracias por detenerse a leer este mensaje, espero me puedan ayudar, gracias.

Estoy haciendo un programa de bases de datos con Delphi 7 y SQL Server 2000, utilizando ADO`s y me gustaria que cuando realizo la conexion con la BD, me mostrara una barra de progreso, "conectando..." y que estuviera un boton para cancelar la conexion, en caso de que esta se tardara mucho tiempo.

Pero ya hice unas pruebas y resulta que mientras se realiza la conexion, todos los frms y todo del programa, se detiene (se traba) y no se puede hacer nada hasta que, o se conecta o me regresa un mensaje de error de que no se pudo conectar...

Muchas gracias por su valiosa ayuda...

DANY 22-07-2005 05:12:35

la conexion a la base deberia ser casi instantanea.
me parece que vos creas todos los forms juntos y abren sus consultas por defecto, por eso demora.

__hector 22-07-2005 14:40:40

Prueba poniendo un application.processmessages luego de la conexion, para que el entorno no te parezca frizado. Con respecto a lo del progressbar, el adoconnection tiene una propiedad de timeout para la conexion, la cual puedes tomar para armar la escala del progressbar.

manuel Suarez 22-07-2005 21:29:29

No me explique bien...
 
Estoy haciendo un programa de bases de datos con Delphi 7 y SQL Server 2000, utilizando ADO`s y me gustaria que cuando realizo la conexion con la BD, me mostrara una barra de progreso, "conectando..." y que estuviera un boton para cancelar la conexion, en caso de que esta se tardara mucho tiempo.

Pero ya hice unas pruebas y resulta que mientras se realiza la conexion, todos los frms y todo del programa, se detiene (se traba) y no se puede hacer nada hasta que, o se conecta o me regresa un mensaje de error de que no se pudo conectar...

creo que no me explique bien... cuando inicio el programa, pido la direccion IP del servidor y si esta es correcta y el servidor esta funcionando y todo lo demas, se conecta rápido, pero cuando por "x" cosa no se conecta (IP incorrecta, servidor apagado, etc), se tarda mucho en responder con el mensaje de error, y mientras eso sucede, no se puede hacer nada con el programa, como si se trabara, y yo quisiera que en vez de que se trabe, pueda clickar un boton para cancelar la conexion, o que mientras se tarda todo ese tiempo, mostrar una barra de progreso que este funcionando. pero cuando ocurre eso de que no se conecta, si pongo una barra de progreso, tambien se traba, no se recorre...

Muchas gracias por responder, ya que ya tenia mucho tiempo este mensaje si que me contestaran... les agradezco de nuevo, y ojala me respondan mas rápido para este nuevo mensaje... GRACIAS..

delphi.com.ar 22-07-2005 23:07:29

El TAdoConnection, tiene una opción "coAsyncConnect", podrías hacer algo como:
Código Delphi [-]
begin
  ADOConnection.ConnectOptions := coAsyncConnect;
  ADOConnection.Open;

  {
    Si desde un evento externo pones FCancel := True
    se tendría que cancelar el intento de conexión
  }
  FCancel := False;

  repeat
    Application.ProcessMessages;
    if FCancel then 
    begin
      ADOConnection.Cancel;
      Break;
    end;
  until not (stConnecting in ADOConnection.State);
end;

Saludos!


La franja horaria es GMT +2. Ahora son las 07:43:07.

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