Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   listar servidores sql (https://www.clubdelphi.com/foros/showthread.php?t=37079)

jlgaytan 02-11-2006 01:06:54

listar servidores sql
 
hola, un saludo para todos.
Tengo una pregunta a ver si alguien me puede ayudar, alguno de ustedes sabe como le puedo hacer para mostrar la lista de servidores sql server en la red.

Ejemplo: Me refiero a una lista parecida a la que se muestra en el cuadro de Administrador de datos de ODBC, en la opcion de SERVIDOR, claro creando el odbc para SQL Server.

mlara 08-11-2006 01:39:33

Quizás haciendo consultas a los puertos en los que normalmente trabajan?

Neftali [Germán.Estévez] 08-11-2006 11:24:58

1 Archivos Adjunto(s)
Revisa éste código; Lo estuve probando hace un tiempo; No es mío, lo encontré por internet y tampoco pone ninguna referencia de la fuente original en el código.

jlgaytan 09-11-2006 00:06:29

Gracias a mlara y a Neftali por responder.

Hola Neftali, el ejemplo del programa me ayuda un poco, pero el programa tiene sus bugs, por que en ocaciones ni siquiera muestra ningun servidor y en otras muestra talvez uno o dos.

Debido a que el programa trabaja con sockets, es un poco lento, asi que mejor voy a implementar un programa para que me muestre todos los equipos en la red y se selecione el servidor deseado.

Si se preguntan para que quiero hacer esto, es para conectar mi aplicacion con el servidor sql server al momento de crear el ODBC, ejemplo:

La primera vez que se ejecuta la aplicacion creo un ODBC mediante el registro de windows, cuando la base de datos es local no hay problema, el problema es cuando la aplicacion es remota porque tengo que saber cual PC tiene la base de datos para crear el ODBC hacia esa maquina.

Saludos.

oscarnoe 09-11-2006 00:49:59

He encontrado este codigo, prueba a ver si te vale:

Código Delphi [-]
uses ComObj, Variants;     

// ==================================================== 
// Load SQL Servers on a Network into a string list 
// ==================================================== 

function EnumSqlServers(AStrings : TStrings) : boolean; 
var 
    oDmo,oApp,oServers : OleVariant; 
    bResult : boolean; 
    i : integer; 
begin 
  AStrings.Clear; 

  try 
    oDMO := CreateOleObject('SQLDMO.SQLServer'); 
    oApp := oDMO.Application; 
    oServers := oApp.ListAvailableSQLServers; 

    try 
      AStrings.BeginUpdate; 
      for i := 1 to oServers.Count do 
        AStrings.Add(oServers.Item(i)); 
    finally 
      AStrings.EndUpdate; 
    end; 

    bResult := true; 
  except 
    bResult := false; 
  end; 

  oServers := Unassigned; 
  oApp := Unassigned; 
  oDMO := Unassigned; 

  Result := bResult; 
end;

Espero que te sea de ayuda.

Oscar Noe

jlgaytan 10-11-2006 17:38:46

Gracias oscarnoe, este codigo trabaja muy bien y es justo lo que yo queria.


La franja horaria es GMT +2. Ahora son las 01:40:18.

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