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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-07-2005
manuel Suarez manuel Suarez is offline
Registrado
 
Registrado: jun 2005
Posts: 5
Poder: 0
manuel Suarez Va por buen camino
Ayuda por favor... Urge..!!

Antes que nada, muchas gracias por tomarse la molestia de leer este mensaje, espero me puedan ayudar lo mas pronto posible. Gracias…



Estoy haciendo un programa de BD utilizando SQL Server 2000, Delphi 7 y ADOs para la conexión, hasta el momento todo funciona bien, pero quisiera hacer una rutina que me muestre una barra de progreso al momento de establecer la conexión y tener un botón para que al pulsarlo me cancele la conexión.



Cuando inicio el programa, solo indico la dirección IP el servidor y se conecta rápido, pero cuando no se puede conectar por "x" cosa, se tarda mucho y en ese tiempo no puedo hacer nada (se traba el programa) hasta después de cierto tiempo, me responde con un mensaje de error. Ya he intentado muchas cosas y estuve viendo unos ejemplos de hilos por que creo que por ahí va la cosa, pero no le entiendo muy bien. Hice una pequeña prueba con hilos pero no funciona, ocurre lo mismo, si no se conecta, se tarda mucho y se traba.

Código Delphi [-]

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ComCtrls, ExtCtrls, DBCtrls, StdCtrls, DB, Grids, DBGrids, ADODB,

  XPMan;



type



  TMiBarra = class(TThread)

  private

  public

    Constructor Create(a:TADOConnection;b:TADODataSet);

    Procedure IncrementaPosicion;

    Procedure Execute; Override;

  end;



type

  TForm1 = class(TForm)

    ADOConnection1: TADOConnection;

    ADODataSet1: TADODataSet;

    DBGrid1: TDBGrid;

    DataSource1: TDataSource;

    Timer1: TTimer;

    Button1: TButton;

    Button2: TButton;

    DBNavigator1: TDBNavigator;

    ProgressBar1: TProgressBar;

    XPManifest1: TXPManifest;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

    MiBarra: TMiBarra;

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



{{ TMiDibujo }



constructor TMiBarra.Create(a:TADOConnection;b:TADODataSet);

begin

   Inherited Create(True);

   //queremos que sea creado el hilo y suspendido (parámetro true)

end;



procedure TMiBarra.IncrementaPosicion;

begin

    begin

    with Form1 do

      begin

        try

          ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;'+

          'Persist Security Info=False;Initial Catalog=scm1;Data Source=192.168.0.2';

          ADOConnection1.Open;

          ADODataSet1.Open;

        except

          ShowMessage('error en la conexion');

        end;

      end;

    end;

end;



procedure TMiBarra.Execute;

begin

  FreeOnTerminate:= True;

  {Accederemos de forma segura a los objetos en Form1 a traves

  del método Synchronize( )}

  Synchronize(IncrementaPosicion);

end;



{ TForm1 }



procedure TForm1.FormCreate(Sender: TObject);

begin

  Timer1.Enabled:=true;

  Application.ProcessMessages;

  MiBarra:= TMiBarra.Create(ADOConnection1,ADODataSet1); //creación del hilo

  MiBarra.Resume; //lanzamiento del mismo

end;



procedure TForm1.FormDestroy(Sender: TObject);

begin

  MiBarra.Terminate; //Finalizamos el hilo de ejecución

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

  ProgressBar1.StepIt;

end;



end.

Última edición por __hector fecha: 22-07-2005 a las 22:20:30.
Responder Con Cita
 



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 04:41:29.


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