Sandrelle Posted January 31, 2012 Report Share Posted January 31, 2012 Bom Dia...Alguém poderia me ensinar, como faço para uma variável, receber o valor de um campo de uma tabela, do banco de dados.Preciso fazer uma validação... Mas preciso que essa variável receba o valor do banco para comparação!Estou usando mysql e delphi 2010... AdoQuery e datasource! Obrigada! Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted January 31, 2012 Report Share Posted January 31, 2012 Alguém poderia me ensinar, como faço para uma variável, receber o valor de um campo de uma tabela, do banco de dados.Preciso fazer uma validação... Mas preciso que essa variável receba o valor do banco para comparação!Se você já programou alguma linha de código (e acredito que sim), com certeza já fez uma declaração de variável e atribuiu alguma coisa a ela. Se ainda não, aconselho a dar uma olhada em apostilas básicas, pois qualquer ajuda que alguém possa lhe dar vai exigir um mínimo de compreensão - do contrário, não haverá entendimento de ambos os lados (seu e de quem lhe responde).Fazer uma atribuição de um campo do banco de dados para uma variável é exatamente igual a qualquer outra atribuição, exceto pelo fato de que você não está estipulando uma valor fíxo (um número, um texto, ...).O seu ADOquery, depois que foi aberta a conexão com o banco, possuirá os valores do tal registro armazenado em cache e, para acessar estes valores, voce apenas tem que buscar o campo necessário - seja usando uma componente Field criado em design-time ou run-time.Voce tem que levar em conta que o tipo de dados do campo e da variável tem que ser compatíveis (inteiro/inteiro, text/string, ...)O local da declaração da variável vai depender do escopo da mesma - se local ou global - está intimamente ligado ao que você vai fazer com ela. Se seu valor for utilizado de diferentes pontos do código (procedure ou function), com certeza a declaração deverá ser global.Voce sabe como como usar os campos do componente ADOquery? Se não, voce sabe que a propriedade Fields é onde eles são armazenados? Voce adicionou os campos em design-time (no momento em que vc "desenha" os forms no Delphi)? Se sim, o acesso a eles é direto. Se não, voce sabe que ADOquery possui uma função e uma propriedade que lhe permitem acessar o conteúdo de um campo em run-time (durante a execução)? Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted January 31, 2012 Author Report Share Posted January 31, 2012 Olá MicheusAcho que me expressei mal, quando disse "me ensinar", eu queria uma ajuda... :blush: Em relação aos fields, é definido quando se tem um DBedit, dbtext, certo?? Ai se tem acesso direto no registro, aos dados... Na verdade eu queria sim, que em tempo de execusão, uma variavél, recebesse o valor de um campo do banco...Porque é assim, a minha intenção é: Eu faço um select para achar uma certo registro, quando achar o registro... gostaria que a variável recebesse, o valor de um dos campo, para fazer um cálculo.Bem, eu não conheço todos os componentes do Adoquery...Essa função que o Sr. citou, seria o Parameters ? (que são os parametros?);Desculpe a minha falta de jeito....Obrigada! Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted January 31, 2012 Report Share Posted January 31, 2012 Em relação aos fields, é definido quando se tem um DBedit, dbtext, certo?? Ai se tem acesso direto no registro, aos dados...Não exatamente...A forma a que me referi diz respeito a existência deles em design-time, ou seja, quando você dá um duplo click no componente e na janela que aparece você tem os fields ou, se está vazia, voce pode adicioná-los usando o menu de contexto (clica com o botão direito do mouse) aciona a opção "Add Fields...".Na verdade eu queria sim, que em tempo de execusão, uma variavél, recebesse o valor de um campo do banco...Porque é assim, a minha intenção é: Eu faço um select para achar uma certo registro, quando achar o registro... gostaria que a variável recebesse, o valor de um dos campo, para fazer um cálculo.Acho que o que você vai fazer é exatamente o que tem neste post.O certo registro já pode ser filtrado através da query que você vai construir.Bem, eu não conheço todos os componentes do Adoquery...ADOQuery é o componente. Os itens a que me referi sobre ele, são suas propriedades e metodos (leia sobre OOP - programação orientada a objetos)Essa função que o Sr. citou, seria o Parameters ? (que são os parametros?);Não. Parâmetros (Parameters) são parêmetros. Campos (Fields) são campos,...Isto que você vai implementar é tarefa de curso de informática? Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted January 31, 2012 Author Report Share Posted January 31, 2012 Isto que você vai implementar é tarefa de curso de informática?Mais ou menos, foi apenas uma materia em um curso, mais já terminou... e estou exercitando... ou tentando! :unsure: Acho que o que você vai fazer é exatamente o que tem neste post.Não é bem igual a esse post, eu quero fazer so uma comparação... ^_^ Mas me ajudou bastante... tinha o que eu queria:A linha ...Valor := Valor + QBase.FieldbyName('Valor').value; Era basicamente isso que eu precisava... so que mudei mais ou menos assim.... p := AdoQuery1.FieldbyName('quant_parcelas').value;Agora preciso fazer a comparação usando 'p' ...Muito Obrigada pela ajuda! Ainda preciso ler mais, tenho muito a aprender... a cada descoberta e acerto me animo mais... mesmo ainda não sabendo muito ... gosto bastante dessa area de programação! :wub: Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted January 31, 2012 Report Share Posted January 31, 2012 so que mudei mais ou menos assim....p := AdoQuery1.FieldbyName('quant_parcelas').value;Agora preciso fazer a comparação usando 'p' ...E voce vai comparar o que com ele? Uma informação de outra tabela ou informado em uma tela pelo usuário? Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted February 3, 2012 Author Report Share Posted February 3, 2012 Bom Dia ...Eu vou comparar uma informação dada pelo usuário!Vou tentar explicar, espero que me entenda..."Quando se cadastra uma duplicata, se informa quantas parcelas ela vai ter.... (no máximo 6), quando vai cadastrar a parcela é cadastraqual parcela vai pagar, so que nem sempre a duplicta tem as 6 parcelas... ai eu tava querendo essa informação, puxar da tabela quantasparcelas foram cadastradas e fazer a comparação pra saber se não ta cadastrando mais do que o devido... (essa parte eu consegui...)agora preciso evitar que sejam cadastrados valores repetidos.... " ^_^ Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted February 3, 2012 Report Share Posted February 3, 2012 Bom, não conhecemos a estrutura de dados que você está usando, então vou comentar genericamente...- se você tem uma tabela que guardas as informações da duplicata, talvez ela pudesse armazenar esta informação (quantidade de parcelas) para facilitar-lhe as coisas.- se a esta tabela voce tem relacionada uma outra tabela onde estão as informações especificamente das parcelas, então se voce simplesmente fizesse uma consulta SQL utilizando a função de agrupamento COUNT, voce conseguiria saber diretamente qual a quantidade de parcelas vinculada a uma determinada duplicata. Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted February 6, 2012 Author Report Share Posted February 6, 2012 Oi Boa Tarde...Sim, a minha "tabela duplicata", armazena quantidade de parcelas... e tem a "tabela parcela" também, onde vai ficar parcela por parcela.... se na tabela "duplicata" a quantidade de parcelas é cinco, so posso deixar cadastrar na tabela "parcela", cinco parcelas.... poderias me dar um exemplo... ^_^ Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted February 6, 2012 Report Share Posted February 6, 2012 Em teoria, esta sua tabela de parcelas seria gerada automaticamente após voce ter: valor total da duplicata, quantidade de parcelas, dia/data do primeiro vencimento.Mas é claro, isto depende de como cada um implementa seu sistema.A sua tabela de parcelas deve ter um campo que a relaciona com a duplicata. Este campo seria utilizado para voce filtrar na tabela parcelas todas as parcelas existentes para aquela duplicata. Ou ainda, se quer apenas saber quantos registros existem na tabela parcelas associada a uma determinada duplicata, então voce poderia usar uma query para a contagem (conforme mensionei):Select Count(<numparcela>) as QtdParcelas From parcelas Where <codduplicata> = :codduplicataonde os nomes entre <> são os nomes dos campos que eu não conheço. :DDê uma olhada neste post. Ele não é exatamente sobre o seu caso, mas é pode ajudar um pouco no que tento explicar. Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted February 8, 2012 Author Report Share Posted February 8, 2012 Select Count(<numparcela>) as QtdParcelas From parcelas Where <codduplicata> = :codduplicataNão acertei fazer o "select count ", não entendi muito bem... :wacko: Mas, lendo aquele exemplo no post que me mandaste, me ajudou bastante... ^_^ Eu fiz um "select inner join" nas minhas tabelas "duplicata e parcelas", e estou pegando o resultado do "recordcount" do adoquery...para fazer a minha validação!será que irá da algum erro??Obrigada pela paciência! :D Sandrelle! Quote Link to comment Share on other sites More sharing options...
0 Micheus Posted February 8, 2012 Report Share Posted February 8, 2012 Não, não deve dar erro.Procure algum material sobre SQL para você aprender mais sobre as consultas - é importante que você procure conhecer a respeito. Isto facilitará muito a voce e a alguém que tente lhe ajudar. ;)Boa sorte. Quote Link to comment Share on other sites More sharing options...
0 Sandrelle Posted February 10, 2012 Author Report Share Posted February 10, 2012 (edited) Obrigada pela ajuda e paciência! ;) Vou ler mais!Tópico fechado!Resolvido, pode fechar! Edited February 17, 2012 by Sandrelle Quote Link to comment Share on other sites More sharing options...
Question
Sandrelle
Bom Dia...
Alguém poderia me ensinar, como faço para uma variável, receber o valor de um campo de uma tabela, do banco de dados.
Preciso fazer uma validação... Mas preciso que essa variável receba o valor do banco para comparação!
Estou usando mysql e delphi 2010... AdoQuery e datasource!
Obrigada!
Link to comment
Share on other sites
12 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.