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)
-   -   Capturar si conecta adoconnetion (https://www.clubdelphi.com/foros/showthread.php?t=83399)

elrodrix 14-06-2013 00:33:37

Capturar si conecta adoconnetion
 
Que tal? tengo una pequeña duda y todavia no pude encontrar una solucion. Tengo un programa desarrollado en delphi, utilizo el ADOCONNECTION para conectarme a la DB. Mi idea es insertar un boton de "CONECTAR" que, cuando el usuario haga click, se conecte a la DB y esa conexion me devuelva un valor para luego preguntar si conectó o no, de acuerdo a eso tirar un mensaje de EXITO o ERROR. Lo mismo para un boton DESCONECTAR. Agradeceria su opinion. Saludos

ecfisa 14-06-2013 00:51:34

Hola elrodrix.

Si entendí bién lo que buscas, podes consultar y/o modificar la propiedad Connected del TADOConnection, cuyo valor es True si está conectado y False si no.

Un ejemplo a las apuradas:
Código Delphi [-]
procedure TForm1.btnConectarClick(Sender: TObject);
begin
  with ADOConnection1 do
  begin
    if Connected then
    begin
      MessageBox(Handle,'Ya está conectado a la base de datos','',MB_OK);
      Exit
    end;
    try
     Connected := True;
     except
       raise Exception.Create('Error al conectar con la base de datos');
     end;
  end;
end;

Saludos. :)

elrodrix 14-06-2013 01:00:07

Cita:

Empezado por ecfisa (Mensaje 462227)
Hola elrodrix.

Si entendí bién lo que buscas, podes consultar y/o modificar la propiedad Connected del TADOConnection, cuyo valor es True si está conectado y False si no.

Un ejemplo a las apuradas:
Código Delphi [-]
procedure TForm1.btnConectarClick(Sender: TObject);
begin
  with ADOConnection1 do
  begin
    if Connected then
    begin
      MessageBox(Handle,'Ya está conectado a la base de datos','',MB_OK);
      Exit
    end;
    try
     Connected := True;
     except
       raise Exception.Create('Error al conectar con la base de datos');
     end;
  end;
end;

Saludos. :)

Muchas gracias! .. voy a probar de esta manera.

Otra consulta rapida: cuando pongo en FALSE la propiedad conected en tiempo de diseño, y corro el programa, los adostoredprocedure funcionan normalmente, como si fuese que conected esta en TRUE! jaja, no se porque !. Saludos

ecfisa 14-06-2013 01:24:38

Hola elrodrix.
Cita:

cuando pongo en FALSE la propiedad conected en tiempo de diseño, y corro el programa, los adostoredprocedure funcionan normalmente, como si fuese que conected esta en TRUE!
¿ El TADOStoredProc está vinculado mediante la propiedad Connection, o mediante ConnectionString ?

Saludos. :)

elrodrix 14-06-2013 03:34:43

Cita:

Empezado por ecfisa (Mensaje 462230)
Hola elrodrix.

¿ El TADOStoredProc está vinculado mediante la propiedad Connection, o mediante ConnectionString ?

Saludos. :)

los ADOSP los tengo vinculados por la propiedad connection. Tendra algo que ver?. Saludos y gracias !

Neftali [Germán.Estévez] 14-06-2013 10:22:07

Hay componentes que si los tienes conectados a un TADOConnection, al activarlos, activen de forma automática la conexión.
A ver si es eso lo que te está pasando...

olbeup 14-06-2013 13:26:14

Yo trabajo con ADOConnection y la conexión se realiza automáticamente (Connected se pone TRUE) al hacer una consulta SQL con ADOQuery, ADOCommand, ADOTable, etc... y para cerrar cualquier ADOQuery, ADOCommand, ADOTable, etc... sólo tienes que poner ADOConnection.Connected que sea False y se cierran todos los ADO's que estén relacionados con ADOConnection.

Un saludo.

elrodrix 14-06-2013 13:28:57

Cita:

Empezado por olbeup (Mensaje 462246)
Yo trabajo con ADOConnection y la conexión se realiza automáticamente (Connected se pone TRUE) al hacer una consulta SQL con ADOQuery, ADOCommand, ADOTable, etc... y para cerrar cualquier ADOQuery, ADOCommand, ADOTable, etc... sólo tienes que poner ADOConnection.Connected que sea False y se cierran todos los ADO's que estén relacionados con ADOConnection.

Un saludo.

Muchas gracias. Saludos

elrodrix 14-06-2013 13:54:55

Ya lo pude solucionar. Gracias al ejemplo de ecfisa, pude arreglar el tema de la conexion. En cuanto a la burjeria rara de que ponia false al connected del ADOCONNECTION y los ADOSP seguian funcionando, directamente al ADOCONNECTION le puse en FALSE y le borre la cadena de connectionstring, entonces asi ningun componente reaccionaba. Luego antes del codigo que paso ecfisa, pongo la cadena de conexion en connectionstring del ADO, osea

DM1.ADOConnection1.ConnectionString:='aca va cadena de conexion'

y luego todo lo demas. Espero que les sirva.


La franja horaria es GMT +2. Ahora son las 19:37:32.

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