Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Carregar Dados De Tabela, Em um ComboBox


valSistemasDelphi

Pergunta

Olá a todos sou novo no fórum. Atualmente Curso, Sistemas De Informação estou desenvolvendo um sistema para meu projeto, uso a linguagem DelphiXE7

Quero carregar Dados de uma tabela em um ComboBox, mais não sei como fazer isso, se poderem me ajudar eu agradeço.

Uso um DataSourse, DataBase, IbTable, IbTransaction.

Observação:

Tenho um Form Chamado Cadastro_De Funcionários e Outro Form Chamado Caixa_Do_Sistema...

Preciso Que Os Dados Do Form Cadastro_De_Funcionários (Nome) Caia em Um comboBox, No Form Caixa_Do_Sistema.

Para quando eu abrir o caixa do Sistema, poder estar no comboBox, o nome do funcionário já cadastrado.

Link para o comentário
Compartilhar em outros sites

  • Respostas 98
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0
  • 0

Olá jhonas obrigado por responder. Consegui conectar tudo. Cadastro ele direitinho no Form de Funcionários. Só que quando abro o Form do Caixa, Ele não armazena no DbComboBox, ele não atualiza em tempo de execução só quando eu fecho a aplicação e abro de novo. E ele também está armazenando de um em um, e não conforme tem armazenado no dbgrid do Form Funcionários.. Se puder me ajudar sobre isso.. agradeço....

Link para o comentário
Compartilhar em outros sites

  • 0

Uso um DataSourse, DataBase, IbTable, IbTransaction.

prefira usar esses componentes

IBDataBase e IBTransaction para conexão com o banco de dados

IBQuery ....... no lugar o IBTable /// para conexão com as tabelas do banco de dados

DataSetProvider

ClientDataSet e

DataSource

só quando eu fecho a aplicação e a-Abro de volta, ai sim ele atualiza

para evitar isso, basta voce dar um refresh na tabela

ClientDataSet.Refresh;

ou fechar e abrir o ClientDataSet

ClientDataSet.close;

ClientDataSet.open;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jhonas Obrigado Por responder. Conectei tudo Só que quando conecto as propriedades do DbLookupComBox, Da a seguite mensagem de erro,"Circular Data Links are not Allowed.

Já tentei conectar com os componentes que você sitou mais obtive a mesma Mensagem de erro. Se poder me ajudar agradeço!!!

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

Só que quando conecto as propriedades do DbLookupComBox, Da a seguite mensagem de erro,

"Circular Data Links are not Allowed.

na propriedade ListSource coloque o seu DataSource

na propriedade ListField coloque o campo de sua tabela

OBS: Não use as propriedades DataSource e nem a DataField para a mesma tabela senão ocorre o erro :

"Circular Data Links are not Allowed."

o DataSource e o DataField são usados quando voce quer jogar o conteudo do campo da tabela linkada no ListSource para outra tabela

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá jhonas obrigado por responder!! já consegui conectar o meu primeiro DbLookupCombox, com a tabela Do Form Cadastro_Funcionários, ele só não está atualizando quando a aplicação está em tempo de execução. Estou usando Ibtable, Ibdatabase, Ibtransaction,Datasourse. Não consegui com os componentes que você disse para eu usar, não estou muito familiarizado, mais tudo bem com o tempo aprendo.

Estou com outro DbLookupComboBox agora para armazenar Os Nomes dos clientes De um Form Chamado Cadastro_Clientes(nome).

se eu coloco os mesmos Componentes que mencionei aqui em cima ele da este erro Circular Data Links are not Allowed.

E ele também não consegue se comunicar com os seus próprios componenetes ele se comunica com os componenetes do outro banco que já conectei tudo.Por exemplo Exemplo se eu tenho um DataSourse2, e vou conectar ele com um Ibtable2, na propriedade dele está Ibtable1, E não tem como se comunicar. Se eu mudar para Ibtable2 ai ele fica dando este erro "Circular Data Links are not Allowed". Se poder me dar uma luz em questão a isso... Meu projeto está parado agora em questão a isso, pois nunca trabalhei muito com Alimentar dados de uma tabela em um ComboBox.

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

ok ... usando o IBTable e o DataSource

O DataSource é ligado ao IBTable pela propriedade DataSet

O IBTable é ligado ao IBDataBase pela propriedade DataBase

Selecione a Tabela no IBTable na propriedade TableName

No DBLookupComboBox1 na propriedade ListSource voce coloca o DataSource

No DBLookupComboBox1 na propriedade ListField voce seleciona o campo da sua tabela

No DBLookupComboBox1 na propriedade KeyField voce seleciona o campo da sua tabela que servirá de chave

Quando voce ativar a tabela no DBLookupComboBox1 vai aparecer os registros do campo da tabela

OBS: Se ainda estiver com dúvidas, veja esses links

http://www.google.com.br/search?q=dblookupcombobox+delphi+7&hl=pt&gbv=2&revid=892602473&o que=dblookupcombobox+delphi&gs_l=heirloom-serp.1.1.0i67l3j0i30l7.456486.466039.0.470826.8.6.0.2.2.1.409.1176.1j2j2j0j1.6.0.msedr...0...1ac.1.34.heirloom-serp..2.6.548.DZHgYqezvTM

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado por responder jhonas. Consegui que ele armazenasce tudo sem dar erros. Fiz alguns ajustes no meu Sistema, Vou te explicar minha Lógica. Dentro do

Form Do Caixa_Do_Sistema, invens de usar dois DbLookupComboBox, optei por usar Labels, Criem Dois Buttons, com os respectivos armazenamentos ou seja

Label1 para Cadastro_Funcionários (nome). Label2 para cadastro_Clientes.(Nome) Um button para cada Label. Por exemplo tu queres registrar qual funcionário está. fazendo a venda de um produto, ai você clica no botão e vai te abrir outro Form chamado Escolha_Funcionário, vai estar tudo armazenado lá, so escolher e apertar no

botão ok. ele já vai cair no respectivo Label que você quer registrar primeiro, ou de Funcionário, ou de Clientes... Depois disso não deu mais aquele erro.

Estou com aquele problema da atualização em tempo de execução, não sei como devo seguir quanto a isto.

As minhas conecções são Datasourse, Ibdatabase,Ibtransaction,Ibtable. Não consegui conectar com o Ibquery que você tinha falado para mim, ele monstra um

erro Empty Sql. Só com o ibtable que conectou tudo normalmente. Se poder me ajudar enquanto a isto.Obrigado!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Estou com aquele problema da atualização em tempo de execução, não sei como devo seguir quanto a isto.

usando o IBTable, voce atualiza a tabela com o comando

Table1.Refresh;

ou tambem usando os comandos abaixo, mas prefira o comando acima

Table1.Close;
Table1.Open;

Não consegui conectar com o Ibquery que você tinha falado para mim, ele monstra um erro Empty Sql.

isso porque voce não colocou nenhum comando na propriedade SQL

exemplo: Select * from tabela

esse comando vai selecionar todos os registros de sua tabela ( onde tabela é o nome da sua tabela )

veja mais nesses links

http://www.subrotina.com.br/conhecendo-o-componente-query/

http://www.google.com.br/search?q=IBQuery++delphi&hl=pt&gbv=2&o que=IBQuery++delphi&gs_l=heirloom-serp.3..0i7i30l9j0i7i10i30.248175.249899.0.250950.7.7.0.0.0.0.1010.2011.7-2.2.0.msedr...0...1ac.1.34.heirloom-serp..6.1.1001.st0LDtjpCmg

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

ola jhonas consegui fazer a conexão com o Ibquery1, só que ele está dando um erro, Ibquery1:Cannot Modify a read-only.

Se poder me ajudar sobre isso!! Quando Clico No botão para armazenar os dados de um cadastro, aparece esse erro que mencionei ai em cima.

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jhonas obrigado por responder. Procurei Procurei enfim ;procurei mais no meu object não achei essa propriedade ResquestLive...

Vou testar de novo com o IbTable, E vou ver se com as suas respostas anteriores consigo fazer a tão esperada atualização que necessito.

Teria uma forma de fazer essa atualização direto no banco com algum comando Em Triggers, se tiver como me explicar sobre..

obrigado por sua paciência. Esse ano que comecei trabalhar mesmo na mão em delphi, com meu projeto.Por isso surge bastantes dúvidas conforme eu vou me aprofundando nessa linguagem..

Link para o comentário
Compartilhar em outros sites

  • 0

procurei mais no meu object não achei essa propriedade ResquestLive...

LiveQuery.gif

OBS: Amigo tem muitos exemplos na pasta Demo do delphi

o componente TQuery e IBQuery fazem a mesma coisa, só que, com banco de dados diferentes ( um usado com Paradox e o outro usando com Interbase ou Firebird )

como usar o TQuery ( o mesmo aplica-se para o IBQuery )

http://www.uwgb.edu/mielkeb/cs371/Borland/tquery.htm

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

tente isso

procedure TForm1.Button1Click(Sender: TObject);
begin
   // SALVAR
   IBTable1.Post;
   IBTable1.ApplyUpdates;
   IBTable1.Refresh;

   // ATUALIZAR OS DADOS
   FMenu.IBTransaction1.Commit;  // FMenu => formulario onde está o componente IBDataBase1 e o IBTransaction1
   FMenu.IBTransaction1.StartTransaction;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jhonas obrigado por responder... Esses dias tenho perdido a cabeça tentando achar uma forma de atualizar minhas tabelas em tempo de execução, mais sem sucesso. Fiz da maneira que você citou anteriormente a aplicação executou de boa, consegui cadastrar um novo funcionário... Até ai tudo bem!!!

Só que quando abro o Form Do caixa ... O meu DbLookuoComboBox1.. Que responsável por armazenar esses nomes de funcionários fica desativado, Aquela setinha dele que serve para selecionar o nome fica branca, monstrando a sim que ele está desativado...

Ai o que eu fiz coloquei um button nessa mesma tela Com o seguinte código...

Ibtransaction1.Commit;
Ibtransaction1.StartTransaction;
Ai Fechei a Aplicação e Abri denovo ai percebi no form do caixa que o dblookupcombox estava ativado com a sua setinha ativada... Só que quando eu clicava no botão para ativar esse código ele ficava desativado de novo, sua setinha ficava branca denovo...Estou perdendo muito tempo com isso no meu projeto.. e essa parte e muito importante, por que e o caixa do Sistema, e bem parecido com um de mercado...
So que no meu caso e de Lanchonete.... O meu único problema até aqui e essa atualização em tempo de execução que não estou conseguindo resolver...
Desculpe se o texto ficar muito grande,... Desde já agradeço pela paciência e consideração..
Comecei Desenvolver na mão mesmo em Delphi esse Ano e sempre quando conseguia resolver alguma situação na programação eu já ia armazenando tudo... Só que agora e diferente pois nunca havia feito esse procedimento, de armazenar Dados de uma tabela para um Dblookupcombobox, ou ComboBox e vise versa...
Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

amigo, para quem está começando na programação de uma linguagem é isso mesmo ...

voce vai precisar ler muito e fazer muitos testes

quanto ao DBLookupComboBox1 tem que ser feito dessa maneira se não não funciona:

No DBLookupComboBox1 na propriedade ListSource voce coloca o DataSource

No DBLookupComboBox1 na propriedade ListField voce seleciona o campo da sua tabela

No DBLookupComboBox1 na propriedade KeyField voce seleciona o campo da sua tabela que servirá de chave

Quando voce ativar a tabela no DBLookupComboBox1 vai aparecer os registros do campo da tabela

baixe exemplos prontos e veja como foi codificado e teste em seu micro...

dessa maneira voce poderá aplicar os conhecimentos no seu projeto

http://www.planetadelphi.com.br/download/340/arquivo/cadastro-de-clientes

http://www.edudelphipage.com.br/programas_com_fontes_downloads.php?categoria=2

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

iae Jhonas beleza... Ufa até quem Fim Consegui resolver o meu problema, da tal atualização, e o melhor na persistência minha consegui achar no que eu estava errando... No form que teria que armazenar os nomes dos funcionários... tinha Datasouce, Database,Ibtable,Ibtransaction... O meu erro foi que eu estava conectando eles com eles mesmos.... Não com os do Form De cadastro de funcionários... Ai eu tive a idéia de conectar eles com todos esses ai que eu descrevi em cima...Rapaz e não e que deu certinho está atualizando certinho... Coloquei aquele código que você mencionou para mim....

Ibtable1.Close;

Ibtable1.Open;

E atualizou certinho.....

Jhonas obrigado pela força... Qualquer dúvida posto mais algo aqui.. Abraços...

Link para o comentário
Compartilhar em outros sites

  • 0

iae jhonas outro problema aqui, tentei fazer o mesmo procedimento em outro form do geito que fiz nos dois primeiros ele me retorna este erro ...Exception

elbClientError in module project1.exe at 0028CFCe Database not assigned

Se poder me dar mais uma força aqui. Já pesquisei mais não encontrei nada que me ajudace..

Link para o comentário
Compartilhar em outros sites

  • 0

se voce está usando um componente ClientDataSet, voce esqueceu de ligar esse componente com o DataSource

veja nesse exemplo ...

http://www.planetadelphi.com.br/delphi/exemplos/banco_de_dados/00002000.zip

olhe nas propriedades as ligações de um componente com o outro

Na porpriedade DataSet do DataSource o coloca o ClienteDataSet ( CdsCli )

na propriedade ProviderName do ClientDataset voce coloca o DataSetProvider ( dspCli )

e na propriedade DataSet do DataSetProvider voce coloca a Query ou Table ( QCli )

OBS: Pegue exemplos na net e estude as ligações dos componentes e o código dos forms ... não tem erro

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

consegui resolver era na minha tabela eu tinha que selecionar os Fields do banco.. Depois que eu fiz isso deu certo...

Estou com uma dúvida.. No meu caixa eu tenho um dblookupcombobox, ele armazena todos os nomes da tela de cadastro de produtos, até ai tudo bem...

Só que eu quero que quando o usuário escolher um lanche o preço desse lanche, que está tudo em DbGrid, caisse em um Edit ou Dbedit..

Já fiz código mais não funcionou..

Vi em um vídeo que o Funcionário escolhe o lanche e altomaticamente o preço desse lanche e atribuido.. Ou em uma Edit ou DbEdit.

Mais infelizmente e só um video explicativo de um sistema já desenvolvido.. Sem amostras de código....Se poder me ajudar sobre isso.. Obrigado..

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.




  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...