Fórum Duvida - exibição de dados do BD em uma combobox #213055

10/02/2004

0

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

Responder

Posts

10/02/2004

Osocram

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.


Responder

Gostei + 0

10/02/2004

Tiagoharris

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

:D


Responder

Gostei + 0

10/02/2004

Adilsond

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; 



Responder

Gostei + 0

11/02/2004

Tiagoharris

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 ?


Responder

Gostei + 0

11/02/2004

Tnaires

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


Responder

Gostei + 0

11/02/2004

Adilsond

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.


Responder

Gostei + 0

11/02/2004

Tiagoharris

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 !


Responder

Gostei + 0

11/02/2004

Tiagoharris

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...


Responder

Gostei + 0

11/02/2004

Fabio.hc

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.


Responder

Gostei + 0

11/02/2004

Tiagoharris

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 ?


Responder

Gostei + 0

11/02/2004

Adilsond

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


Responder

Gostei + 0

11/02/2004

Tiagoharris

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?


Responder

Gostei + 0

11/02/2004

Fabio.hc

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)


Responder

Gostei + 0

11/02/2004

Fabio.hc

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.


Responder

Gostei + 0

11/02/2004

Tiagoharris

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar