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

Variável receber um valor de um campo do banco de dados


Sandrelle

Pergunta

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 para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
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)?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Micheus

Acho 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!

Link para o comentário
Compartilhar em outros sites

  • 0
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?

Link para o comentário
Compartilhar em outros sites

  • 0
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:

Link para o comentário
Compartilhar em outros sites

  • 0

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 é cadastra

qual parcela vai pagar, so que nem sempre a duplicta tem as 6 parcelas... ai eu tava querendo essa informação, puxar da tabela quantas

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

^_^

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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> = :codduplicata

onde os nomes entre <> são os nomes dos campos que eu não conheço. :D

Dê uma olhada neste post. Ele não é exatamente sobre o seu caso, mas é pode ajudar um pouco no que tento explicar.

Link para o comentário
Compartilhar em outros sites

  • 0

Select Count(<numparcela>) as QtdParcelas 
From parcelas 
Where <codduplicata> = :codduplicata

Nã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!

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