Duvida - exibição de dados do BD em uma combobox
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 !
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
Curtidas 0
Respostas
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.
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
10/02/2004
Valeu cara, vou dar uma saída e qnd eu chegar vou fazer isso...
:D
:D
GOSTEI 0
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
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 ?
[b:71744896aa] ComboBox1.Items.Add(Fields[0].AsString); [/b:71744896aa]
não teria que ser fieldByName(´nome_da_coluna´).AsString ?
GOSTEI 0
Tnaires
10/02/2004
Bom, me desculpem se eu nao tiver prestado atencao em algo, mas...
Pq nao usar um DBLookUpComboBox?
Pq nao usar um DBLookUpComboBox?
GOSTEI 0
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
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
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...
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
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
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 ?
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
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
e coloque em Parameter Overrides o seguinte:
USER NAME=Seu Usuário
PASSWORD=Sua Senha
GOSTEI 0
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?
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
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)
DisplayLabel = Titulo do campo
DisplayWidth = Tamanho do campo para mostrar
Visible = true (mostra) false (não mostra)
GOSTEI 0
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.
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
10/02/2004
Muito Obrigado Fábio, farei isso que vc sugeriu!
GOSTEI 0