Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2005
manuel Suarez manuel Suarez is offline
Registrado
 
Registrado: jun 2005
Posts: 5
Poder: 0
manuel Suarez Va por buen camino
Unhappy 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...
Responder Con Cita
  #2  
Antiguo 22-07-2005
DANY DANY is offline
Miembro
 
Registrado: nov 2003
Posts: 145
Poder: 21
DANY Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 22-07-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
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.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #4  
Antiguo 22-07-2005
manuel Suarez manuel Suarez is offline
Registrado
 
Registrado: jun 2005
Posts: 5
Poder: 0
manuel Suarez Va por buen camino
Unhappy 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..
Responder Con Cita
  #5  
Antiguo 22-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 14:42:15.


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