Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-04-2007
[pepon386] pepon386 is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Valencia
Posts: 68
Poder: 20
pepon386 Va por buen camino
Lo único que necesitas para que tu aplicación funcione correctamente es en el evento 'OnWillConnect' del componente TADOConnection asignar el valor de la cadena de conexión a la variable 'ConnectionString':

Código Delphi [-]
procedure TDMMain.ADOConnectionWillConnect(Connection: TADOConnection;
  var ConnectionString, UserID, Password: WideString;
  var ConnectOptions: TConnectOption; var EventStatus: TEventStatus);
begin
  ConnectionString := GetConnectionString;
  EventStatus := esUnwantedEvent;
end;
 
function TDMMain.GetConnectionString;
begin
  Result := MiCadenaDeConexión;
end;
Responder Con Cita
  #2  
Antiguo 11-04-2007
erasmorc erasmorc is offline
Miembro
 
Registrado: ago 2004
Posts: 66
Poder: 20
erasmorc Va por buen camino
Buenos dias,

Y en que momento utilizo la configuracion guardada en el archivo udl???


Slds,
FRC
Responder Con Cita
  #3  
Antiguo 11-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Mi amigo, creo que de repente una búsqueda en el foro te sería bastante útil:

aquí un post donde se presentaba tu misma duda con su respectiva solución:

http://www.clubdelphi.com/foros/showthread.php?t=34865

Ahora que te comento, un archivo UDL es en sí, un Ini común y corriente, así que podrias crear una función del tipo:

Código Delphi [-]
With TIniFile.Create(ArchivoUdl) Do
  Result := 'provider=' + ReadString('oledb','Provider','');

Una vez que tienes la cadena de conexión, solo debes asignarla a la propiedad Conexión String de tu objeto conexión.

bueno, pues suerte
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 11-04-2007 a las 18:25:10.
Responder Con Cita
  #4  
Antiguo 11-04-2007
erasmorc erasmorc is offline
Miembro
 
Registrado: ago 2004
Posts: 66
Poder: 20
erasmorc Va por buen camino
Buenos dias,

No quiero crear el archivo .ini, no me interesa hacerlo de esa manera, se supone que en el conexion string del componente ado debo poder especificar el archivo de configuracion udl al que quiero hacer referencia, pero no me interesa crear el archivo ini.

Y si he buscado en el foro, lo que pasa que el motor de busquedas funciona en base las palabras que coloques y estas a su vez dependen de como a cada quien se le ocurra nombrar su tema.

Slds,
Responder Con Cita
  #5  
Antiguo 11-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por erasmorc
Y si he buscado en el foro, lo que pasa que el motor de busquedas funciona en base las palabras que coloques y estas a su vez dependen de como a cada quien se le ocurra nombrar su tema.
Por eso conviene titular los Hilos lo más descriptivamente posible, porque ayuda no poco a la hora de utilizar el buscador de los Foros.

Pero todos debemos aplicarnos el cuento, incluso tú, si me lo permites, puesto que "Seoane nadie ha podido" no parece un título muy apropiado...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 11-04-2007
argote argote is offline
Miembro
 
Registrado: abr 2007
Posts: 11
Poder: 0
argote Va por buen camino
Erasmoc

Para obtener el listado de todos los servidores de MS SQL, registrados en tu network, debes utilizar el procedimiento almacenado sp_helpserver.
Si utilizas un componente TADOQuery y en la sentencia escribes:
exec sp_helpserver
podrás obtener el listado de los servidores MS SQL y de los LINKED SERVERS. Acá está un ejemplo de como sacar de este componente el listado.
Código Delphi [-]
TForm1.Button1Click(Sender: TObject);
var
  cad : string;
begin

  ADOQuery1.Open;
  ADOQuery1.First;
  while not ADOQuery1.Eof do
    begin
      cad := cad + ADOQuery1.Fields[0].AsString + #13#10;
      ADOQuery1.Next;
    end;
  ShowMessage(cad);
end;

Última edición por vtdeleon fecha: 11-04-2007 a las 19:30:31.
Responder Con Cita
  #7  
Antiguo 11-04-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Thumbs up

Cita:
Empezado por argote
Si utilizas un componente TADOQuery y en la sentencia escribes:
exec sp_helpserver
Esta no la conocía...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 11-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Con esto: exec sp_helpserver
A mi me quedan dudas, no me funciona.
Si conecto el adoquery, buscara una tabla con ese nombre,
Si por el contrario no lo conecto, me dira que no tengo conexion.
Como se hace?, seria interesante saberlo.
Saludos
Responder Con Cita
  #9  
Antiguo 11-04-2007
erasmorc erasmorc is offline
Miembro
 
Registrado: ago 2004
Posts: 66
Poder: 20
erasmorc Va por buen camino
Buenas tardes,

Primero que nada gracias a Poliburro, Neftali, Argote y Caral por el interes en el hilo y por sus respuestas atinadas.

Quisiera darle la razon a Neftali en cuanto a la forma de nombrar el hilo, lo nombre asi porque alguna vez vi un codigo publicado por seoane que hacia algo parecido y entonces le pase un mensaje pero no recibi respuesta y pense en esta forma para hacerle llegar el mensaje.

Por otro lado la respuesta de Caral de los archivos .ini conozco el procedimiento y no es realmente lo que quiero.

Entre las respuestas de Poliburro, Neftali y Argote puedo hacer una combinacion y lograr el objetivo deseado, les dejo saber el resultado, de nuevo muchas gracias por el interes.

Slds
Responder Con Cita
  #10  
Antiguo 11-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por erasmorc
Buenos dias,

No quiero crear el archivo .ini, no me interesa hacerlo de esa manera, se supone que en el conexion string del componente ado debo poder especificar el archivo de configuracion udl al que quiero hacer referencia, pero no me interesa crear el archivo ini.
Hombre, :|, creo que no me entendiste, el archivo de configuración UDL, es en realidad un archivo INI, si tu abres con el notepad tu archivo UDL encontraras que su estructura es la de un INI.

Oviamente la ventaja del UDL es que al ser ejecutado te levanta el asistente de conexión de ADO. Pero internamente es un INI común y corriente
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #11  
Antiguo 11-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno erasmorc, la verdad tienes y no razon en que el componente adoconnection configura la direccion de la base de datos en tiempo de ejecucion, por que digo tienes y no, porque en realidad la conexion la necesitas para hacer el programa, no necesariamente para distribuirlo o ejecutarlo.
Si usas un datamodule y un archivo .ini, puedes copiar la ruta que usa el adoconection y cambiarla en el ini muy facilmente.
Un ejemplo con mysql:
En el datamodule:
Código Delphi [-]
procedure TDataModule1.DataModuleCreate(Sender: TObject);
Var BaseDeDatos, ConStr : String;
    IniFile: TIniFile;
begin
 // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Archivo.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
   ConStr := 'Provider=MSDASQL.1;'+
             'Data Source='+BaseDeDatos+';'+
             'Persist Security Info=True';//'+
         //    'Password=admin1';
   AC1.ConnectionString := ConStr;
   AC1.Open;
end;
Como veras, al iniciar el datamodule, este busca primero el archivo.ini que contiene lo que quieras, en mi caso el nombre de la base de datos, pero puedes ponerle toda la direccion si es el caso asi:
Archivo.ini:
Cita:
[BD]
Path="Basedatos"
[Logon]
Auto="NO"
Login=""
Pass=""
Al distribuir el ejecutable, se distribuye el archivo.ini, que lo puede modificar cualquiera facilmente.
Bueno espero te sirva de otro ejemplo.
Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Han podido ejecutar aplicaciones con el Escritorio Remoto? diegolf Conexión con bases de datos 8 10-04-2007 19:00:04
Felicitaciones a Domingo Seoane por sus primeros 1.000 mensajes dec La Taberna 15 16-11-2006 01:48:38
Felicidades Seoane Elenita La Taberna 14 04-11-2006 08:00:46
Nadie Usa Ado? FernanGil Conexión con bases de datos 4 22-09-2003 19:19:17
ora-12154:TNS: NO SE HA PODIDO RESOLVER EL NOMBRE DEL SERVICIO rinaib Oracle 5 04-08-2003 18:55:37


La franja horaria es GMT +2. Ahora son las 06:32:59.


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