valSistemasDelphi Posted April 24, 2015 Report Share Posted April 24, 2015 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. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 27, 2015 Report Share Posted April 27, 2015 use o componente DBCombobox do delphi http://www.google.com.br/search?q=dbcombobox+delphi+exemplo&hl=pt&gbv=2&o que=dbcombobox+delphi&gs_l=heirloom-serp.1.1.0l2j0i7i10i30j0i7i30l2j0i30l4j0i10i30.95805.100144.0.102653.12.12.0.0.0.0.216.2064.2j9j1.12.0.msedr...0...1ac.1.34.heirloom-serp..2.10.1684.pNDMAIIXejw abraço Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 27, 2015 Author Report Share Posted April 27, 2015 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.... Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 27, 2015 Author Report Share Posted April 27, 2015 olá Jhonas resolvi parte do meu problema. Estou com mais um para ser solucionado. E o seguinte quando cadastro o funcionário,ele não fica armazenado no form do caixa de primeiro, só quando eu fecho a aplicação e a-Abro de volta, ai sim ele atualiza, Se puder me ajudar agradeço. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 27, 2015 Report Share Posted April 27, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 28, 2015 Author Report Share Posted April 28, 2015 (edited) 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!!! Edited April 28, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 28, 2015 Report Share Posted April 28, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 28, 2015 Author Report Share Posted April 28, 2015 (edited) 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. Edited April 28, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 28, 2015 Report Share Posted April 28, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 29, 2015 Author Report Share Posted April 29, 2015 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!!!!! Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 29, 2015 Report Share Posted April 29, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 30, 2015 Author Report Share Posted April 30, 2015 (edited) 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. Edited April 30, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 30, 2015 Report Share Posted April 30, 2015 No IBQuery deixe a propriedade ResquestLive como true se não voce não consegue salvar os dados abraço Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted April 30, 2015 Author Report Share Posted April 30, 2015 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.. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 1, 2015 Report Share Posted May 1, 2015 procurei mais no meu object não achei essa propriedade ResquestLive... 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 4, 2015 Author Report Share Posted May 4, 2015 já coloquei código no meu button de salvar os cadastros ... Tipo Ibtable.Refresh... Já coloquei Ibtable.Close.. Ibtable.Open... Mais nada deu certo... Só quando fecho a aplicação e a-Abro ai ela atualiza.... Não sei mais o que fazer.. Até por isso meu projeto está parado.... Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 4, 2015 Report Share Posted May 4, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 5, 2015 Author Report Share Posted May 5, 2015 (edited) 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... Edited May 5, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 5, 2015 Report Share Posted May 5, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 6, 2015 Author Report Share Posted May 6, 2015 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... Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 6, 2015 Report Share Posted May 6, 2015 que bom que conseguiu... abraço Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 6, 2015 Author Report Share Posted May 6, 2015 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.. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 6, 2015 Report Share Posted May 6, 2015 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 Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 6, 2015 Author Report Share Posted May 6, 2015 (edited) 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.. Edited May 6, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 7, 2015 Report Share Posted May 7, 2015 Já fiz código mais não funcionou.. coloque o seu código .... Quote Link to comment Share on other sites More sharing options...
0 valSistemasDelphi Posted May 7, 2015 Author Report Share Posted May 7, 2015 (edited) exemplo: Edit4.text:=Ibtable1.Fieldbyname('Nome').AsString; Edited May 7, 2015 by valSistemasDelphi Quote Link to comment Share on other sites More sharing options...
Question
valSistemasDelphi
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 to comment
Share on other sites
Top Posters For This Question
54
45
Popular Days
May 29
8
May 6
7
May 28
6
Apr 28
4
Top Posters For This Question
valSistemasDelphi 54 posts
Jhonas 45 posts
Popular Days
May 29 2015
8 posts
May 6 2015
7 posts
May 28 2015
6 posts
Apr 28 2015
4 posts
98 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.