Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Listado de Bases de datos (https://www.clubdelphi.com/foros/showthread.php?t=45305)

eduardoemh 28-06-2007 17:53:55

Listado de Bases de datos
 
Necesito saber si en delphi existe algún control con lo que pueda hacer lo siguiente: en un campo el usuario pondra el nombre de un servidor sql y quiero que en una lista desplegable me salga todos los catalogos existente en ese servidor.

;)

Lepe 28-06-2007 18:23:23

La respuesta tal cual: No, no existe control que lo haga.

Pero vamos, programar es sinónimo de inventar ;).

Necesito saber si en delphi existe algún control con lo que pueda hacer lo siguiente: en un campo (1) qué clase de campo, de una base de datos, de un Edit :confused: el usuario pondra el nombre de un servidor sql (2) el ¿nombre de la máquina?¿su IP? y quiero que en una lista desplegable me salga todos los catalogos (3) ¿qué entiendes por catálogo? existente en ese servidor.

Neftali [Germán.Estévez] 28-06-2007 18:28:58

¿Qué tipo de Servidor SQL?
¿Cómo estás accediendo?

eduardoemh 28-06-2007 18:48:44

Campo de un edit, y seria el nombre de la maquina; los catalogos serían las bases de datos que hay en ese servidor.

Lepe 29-06-2007 10:49:32

En tu programa, podrías incluir la opción de "Registrar catálogo", en un servidor (digamos el principal), guardas una tabla con todos los datos que necesites para que otro servidor se conecte a ella.

Si un usuario del servidor B, quiere hacer público un catálogo que tiene en su ordenador, primero tendría que registrar ese catálogo.

Cuando se quiera saber los catálogos disponibles, es una simple consulta a la tabla anterior.

Por supuesto tienes que hacer el paso inverso: " Eliminar Registro de catálogo" y controlar los errores que puedan surgir.

No se me ocurre otra forma, ya que en c/s no habrá carpetas compartidas y por ende, no se puede acceder de forma remota a cualquier carpeta de cualquier servidor. Además, creo que es la opción más simple.

Saludos

Neftali [Germán.Estévez] 29-06-2007 10:59:45

Si te está conectando con SQL Server, puedes obtener la lista de Bases de Datos conectando a la BD master y ejecutando:

Código Delphi [-]
  select name from SysDataBases

Para la lista de Servidores

Código SQL [-]
  select srvName from SysServers

Para las tablas de una Base de Datos, te conectas a esa Base de Datos y ejecutas (la priemra para tablas de usuario y la segunda para tablas de sistema):
Código SQL [-]
select name from SysObjects where type = 'u'
select name from SysObjects where type = 's'

Y así puedes seguir con lo que necesites....

courtois 30-06-2007 11:27:03

Yo uso esto en una de mis aplicaciones
Código Delphi [-]
procedure DatabasesOnServer(Databases : TStrings);
var rs : _RecordSet;
begin
  Databases.Clear;
  with TAdoConnection.Create(nil) do
  try
    ConnectionString := 'Provider=SQLOLEDB.1;Password='+editPass.Text+';'+
                        'Persist Security Info=True;User ID='+editUser.Text+
                        ';Initial Catalog=master;Data Source='+editServer.Text;
    LoginPrompt := False;
    try
      Open;
      rs := ConnectionObject.OpenSchema(adSchemaCatalogs,EmptyParam,EmptyParam);
      with rs do
      begin
        try
          Databases.BeginUpdate;
          while not Eof do
          begin
            Databases.Add(VarToStr(Fields['CATALOG_NAME'].Value));
            MoveNext;
          end;
        finally
          Databases.EndUpdate;
        end;
      end;
      Close;
    except
      on e:exception do
        MessageDlg(e.Message,mtError, [mbOK],0);
    end;
  finally
    Free;
  end;
end;

y lo uso asi
Código Delphi [-]
   Screen.Cursor := crSQLWait;
   Invalidate;
   comboCatalogos.Items.Clear;
   DatabasesOnServer(comboCatalogos.Items);
   Screen.Cursor := crDefault;


La franja horaria es GMT +2. Ahora son las 06:34:07.

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