Duvida - exibição de dados do BD em uma combobox

Delphi

10/02/2004

Galera, a situação é a seguinte:

Estou trabalhando com Oracle. Na aplicação eu tenho um Database, que está conectado com o Alias correspondente ao Oracle e uma query, que está linkada com esse database. Possuo tbm uma Combobox.

Possuo uma tabela chamada TB_Cargo, que, entre outros campos, possui um campo chamado desc_cargo, que é a descrição do cargo. Eu quero exibir todos os cargos nessa combobox. A consulta do query está assim: select desc_cargo from tb_cargo.

O código está assim:

[b:a2596c018e]procedure TForm1.FormShow(Sender: TObject);
begin
query1.Open;
query1.First;

while not query1.Eof do
begin
combobox1.Items.Add(query1.parambyname(´desc_cargo´).AsString);
query1.Next;
end;
query1.close;

end;

end. [/b:a2596c018e]

Apesar de tudo estar ativo antes de rodar o programa, qnd eu vou tentar rodar a apliação, aparece um erro de Logon não estabelecido !!

por favor, me ajudem... o que que está errado?

Obrigado desde jah !


Tiagoharris

Tiagoharris

Curtidas 0

Respostas

Osocram

Osocram

10/02/2004

De 2 clicks no DataBase, vai abrir uma janela.. nela verifique se esta marcado a opcao ´Login Prompt´, se tiver desmarque.

Deve ser isso.

e Verifiq em se vc clicando na query vai lah o Object Inspector e tente clicar na propriedade p Active p ´true´...

Se der certo eh pq o DataBase esta certo.


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Valeu cara, vou dar uma saída e qnd eu chegar vou fazer isso...

:D


GOSTEI 0
Adilsond

Adilsond

10/02/2004

Com relação a montagem da combo mude para:

procedure TForm1.FormShow(Sender: TObject);
begin
  with Query1 do
    begin
      Open;
      try
        while not Eof do
          begin
            ComboBox1.Items.Add(Fields[0].AsString);
            Next;
          end;
      finally
        close;
      end;
    end;
end; 



GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Mas ai Adilson, a minha dúvida é a seguinte:

[b:71744896aa] ComboBox1.Items.Add(Fields[0].AsString); [/b:71744896aa]

não teria que ser fieldByName(´nome_da_coluna´).AsString ?


GOSTEI 0
Tnaires

Tnaires

10/02/2004

Bom, me desculpem se eu nao tiver prestado atencao em algo, mas...
Pq nao usar um DBLookUpComboBox?


GOSTEI 0
Adilsond

Adilsond

10/02/2004

Mas ai Adilson, a minha dúvida é a seguinte: [b:86c7065808] ComboBox1.Items.Add(Fields[0].AsString); [/b:86c7065808] não teria que ser fieldByName(´nome_da_coluna´).AsString ?


O propriedade Fields é um array de TField. Então Fields[0] é o primeiro campo da query/table, e como é um TField posso utilizar o AsString.

Voce pode utilizar também o FieldByName(´nome_da_coluna´).AsString, como, caso tenha definido os fields, utilizar TabelaCampo.AsString.


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Bom, eu tentei usar o DBLookupcombobox... botei um data source e uma query, linkei os dois, configurei as propriedades listsource e listfields do DBLookupcombobox, mas nao apareceu nada... e a tabela nao está vazia... não entendi porque aconteceu isso !


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

osocram, não deu certo.

Se eu desativo o Login Prompt do database, logo qnd eu vou tentar rodar a aplicação, dá o erro de Login não estabelecido...


GOSTEI 0
Fabio.hc

Fabio.hc

10/02/2004

Bom, eu tentei usar o DBLookupcombobox... botei um data source e uma query, linkei os dois, configurei as propriedades listsource e listfields do DBLookupcombobox, mas nao apareceu nada... e a tabela nao está vazia... não entendi porque aconteceu isso !

Faltou configurar a propriedade keyfield.


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Valeu Fábio, era isso mesmo... a DBLookUpCombobox está funcionando...

Mas tem um problema... eu queria tirar akela porra de login, toda vez que eu rodo o programa tenho que entrar com a senha.... tem uma propriedade do database que é login prompt... se eu botar false, qnd eu vou rodar o programa, dá erro de logon não estabelecido... como faço então ?


GOSTEI 0
Adilsond

Adilsond

10/02/2004

De um clique duplo sobre a TDatabase, desmarque a opção Login Prompt
e coloque em Parameter Overrides o seguinte:

USER NAME=Seu Usuário
PASSWORD=Sua Senha


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Valeu Adilson, funcionou....

quero aproveitar pra agradecer a todos que fizeram a gentileza de responder o tópico, a ajuda de vcs foi realmente muito importante !!

THANKS !!

bom galera, aproveito pra perguntar uma outra coisa....

eu tenho um dbgrid, exibindo os dados da tabela...
como faço pra definir o tamanho das colunas e o nome, no dbgrid? Quero fazer isso pq qnd eu exibo no dbgrid os dados da tabela, fica tudo enorme, não dah pra ver direito, tem que navegar pelas barras de rolagem e isso não é legal pro usuário... e os nomes das colunas vêm com os nomes que estão na tabela.. por exemplo, vem no dbgrid STATUS_CARGO, mas eu quero que apareça no dbgrid somente Status !

alguem ai sabe?


GOSTEI 0
Fabio.hc

Fabio.hc

10/02/2004

No Fields editor da query, vc seleciona o campo e altera as seguintes propriedades:

DisplayLabel = Titulo do campo
DisplayWidth = Tamanho do campo para mostrar
Visible = true (mostra) false (não mostra)


GOSTEI 0
Fabio.hc

Fabio.hc

10/02/2004

Continuando...
E no Dbgrid vc exclui todos os campos:

Outra opção é:

No DBgrid vc adiciona os campo que vc quer e na propriedade de cada um vc altera:

Title.caption = título da coluna
Width = tamanho do campo ou arrasta pelo titulo para definir o tamanho.


GOSTEI 0
Tiagoharris

Tiagoharris

10/02/2004

Muito Obrigado Fábio, farei isso que vc sugeriu!


GOSTEI 0
POSTAR