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)
-   -   Alias en un ComboBox especificando algunos (https://www.clubdelphi.com/foros/showthread.php?t=59724)

afunez2007 05-09-2008 18:11:07

Alias en un ComboBox especificando algunos
 
Hola Quiesiera saber como hacer lo siguiente:

Tengo un form para cambiarme de alias dentro del sistema, el cual tiene un combobox con la lista de alias, ya puedo escoger el alias y cambiar la base, sin embargo quiero que solo salgan los alias que tienen una base de datos que hacen funcionar el sistema.

Hay Varios alias en el BDE, que tienen un mismo nombre de Base de datos 'DATASYS.GDB' en el Parametro ServerName del Alias de FireBird

EL punto es como puedo decir en un combo Box que solo me muestre los que contienen ese nombre de Base de Datos

el codigo que actualmente estoy utilizando me pone todos los alias del BDE es el siguiente:

Código Delphi [-]
procedure TfrmCambiaBD.FormShow(Sender: TObject);
var
  I: Integer;
  Names: TStringList;
begin
  Names := TStringList.Create;
  try
    Names.Sorted := True;

     Form1.Session1.GetAliasNames(Names);
    For I := 0 to Names.Count -1 do
      ComboBox1.Items.Add(Names[i]);
  finally
    Names.Free;
  end;
ComboBox1.Text:=Form1.Database1.AliasName;
end;

roman 05-09-2008 18:19:25

Pue si todos los alias que te interesan comienzan con la cadena datasys, puedes hacer algo así:

Código Delphi [-]
for I := 0 to Names.Count -1 do
  if Pos('DATASYS', Names[i]) then
    ComboBox1.Items.Add(Names[i]);

// Saludos

yusnerqui 05-09-2008 18:34:04

Cita:

Empezado por roman
Pue si todos los alias que te interesan comienzan con la cadena datasys, puedes hacer algo así:

Código Delphi [-]

for I := 0 to Names.Count -1 do
if Pos('DATASYS', Names[i]) then
ComboBox1.Items.Add(Names[i]);


// Saludos

Teniendo en cuenta que la función pos debuelve un entero sería
Código Delphi [-]
  for I := 0 to Names.Count -1 do
  if Pos('DATASYS', Names[i])>0 then
    ComboBox1.Items.Add(Names[i]);
Saludos :)

afunez2007 05-09-2008 18:37:11

Ya Lo Resolvi
 
Faltaba un pequeño > 0

El Codigo correcto es:

Código Delphi [-]
procedure TfrmCambiaBD.FormShow(Sender: TObject);
var
  I: Integer;
  Names: TStringList;
begin
  Names := TStringList.Create;
  try
    Names.Sorted := True;

     Form1.Session1.GetAliasNames(Names);
    For I := 0 to Names.Count -1 do
      if Pos('SAE40', Names[i])>0 then
       ComboBox1.Items.Add(Names[i]);
  finally
    Names.Free;
  end;
ComboBox1.Text:=Form1.Database1.AliasName;
end;

Upps se me adelantaron, pero se agradece la colaboracion con la causa


La franja horaria es GMT +2. Ahora son las 01:35:37.

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