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

Resultado de um Select em uma variável. Tem como fazer isso?


Fabiano Furquim

Pergunta

Boa Tarde a todos.

Estou com um problema o qual não consegui resolver.

Estou desenvolvendo o sistema de uma escola técnica, que trabalha com ensino médio também. Essa escola registra a presença dos alunos quando ele entram na escola atraves de leitura da digital do aluno. Esse também é um problema que tenho que resolver, mais esse fica para uma outra hora, no momento preciso resolver o seguinte:

1. verificar se o código do aluno que esta entrando existe no sistema

2. Se existir tenho de busca a foto e exibir.

3. Verificar o período que o aluno estuda para saber se ele pode entrar ou não.

4. Verificar se ele esta matriculado

5. Verificar o curso que o aluno esta fazendo

6. verificar o módulo que o aluno esta...

e assim por diante...

estava tentando utilizar um select para chegar a essas informações no banco de dados, porém me surgiu uma dúvida...

Como jogar essas informações para variáveis para q depois eu possa fazer todas essas verificações???

Com isso estou com o desenvolvimento do sistema parado até resolver esse problema, será q alguém teria alguma outra ou outras soluções para esse problema?

Estou utilizando Delphi7 e Banco de Dados FireBird 2, com conexão ao banco com os componentes da paleta interbase.

Desde já agradeço a todos pelas dicas e peça atenção.

Até mais

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
no momento preciso resolver o seguinte:

1. verificar se o código do aluno que esta entrando existe no sistema

2. Se existir tenho de busca a foto e exibir.

3. Verificar o período que o aluno estuda para saber se ele pode entrar ou não.

4. Verificar se ele esta matriculado

5. Verificar o curso que o aluno esta fazendo

6. verificar o módulo que o aluno esta...

e assim por diante...

estava tentando utilizar um select para chegar a essas informações no banco de dados, porém me surgiu uma dúvida...

Como jogar essas informações para variáveis para q depois eu possa fazer todas essas verificações???

Na verdade, se suas tabelas estiverem bem estruturadas, você busca todas estas informações em um select, o que deverá resultar em uma linha no seu dataset. Ou seja, a consulta é a própria verificação, retornando algumas informações.

Não entendi essa de trazer para variáveis para depois fazer as verificações. :huh:

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Na verdade, se suas tabelas estiverem bem estruturadas, você busca todas estas informações em um select, o que deverá resultar em uma linha no seu dataset. Ou seja, a consulta é a própria verificação, retornando algumas informações.

Não entendi essa de trazer para variáveis para depois fazer as verificações. :huh:

Abraços

Bom dia Micheus....

Eu estava pensando em pegar as informações encontradas pelo select e jogar cada uma em uma variável, mais ou menos assim:

Supondo q minha tabela tivesse esses campos: Codigo, RA_Aluno, Nome, Curso, Periodo, Semestre, Matricula, Gostaria de pegar alguns desses campos e passa-los para variáveis + ou - assim

var_curso := 'select curso from ALUNO where Ra_aluno = :edit1.text' , sei q esse comando não esta bem estruturado mais é só pra dar uma idéia do q eu estava querendo dizer com trazer para variáveis

Estive pensando em fazer essas verificações através de uma Store Procedure, porém não sei trabalhar com esse procedimento, já não programava a + de 10 anos, estou bem desatualizado, precisando me reciclar.

Se você tiver algum material de como estruturar uma Store Procedure e como utiliza-la no Delphi ficarei agradecido.

Obrigado pela Resposta

e Tenha um bom dia.

Link para o comentário
Compartilhar em outros sites

  • 0
Se você tiver algum material de como estruturar uma Store Procedure e como utiliza-la no Delphi ficarei agradecido

nestes endereços voce vai encontrar algumas coisas sobre o asunto

http://www.devmedia.com.br/articles/viewco...mp=4838&hl=

http://www.devmedia.com.br/cursos/studentp...183&ord=2.2

http://www.kvasir.no/nettsok/searchResultA...amp;x=1&y=1

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Jhonas...

Vou dar uma olhada Obrigado..

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Eu estava pensando em pegar as informações encontradas pelo select e jogar cada uma em uma variável, mais ou menos assim:

Supondo q minha tabela tivesse esses campos: Codigo, RA_Aluno, Nome, Curso, Periodo, Semestre, Matricula, Gostaria de pegar alguns desses campos e passa-los para variáveis + ou - assim

var_curso := 'select curso from ALUNO where Ra_aluno = :edit1.text' , sei q esse comando não esta bem estruturado mais é só pra dar uma idéia do q eu estava querendo dizer com trazer para variáveis

Bom, a questão da busca dos dados pode ser melhor avaliada quando se souber sobre as tabelas envolvidas na questão (acredito que você não esteja utilizando apenas uma). Como eu disse, possivelmente daria para, com uma única consulta, trazer todas as informações necessárias caso o aluno seja encontrado. E, justamente este encontrado estará relacionado ao código obtido pelo leitor biométrico e que deve ser um dos campos de referência nos dados do aluno.

Quanto a mover o resultado da consulta para as variáveis, utilizando seu exemplo, a forma correta seria esta:

QryCursoAluno.SQL.Clear;
QryCursoAluno.SQL.Add('select curso from ALUNO where Ra_aluno = :Ra_aluno');
QryCursoAluno.ParamByName('Ra_aluno').AsString := edit1.text;
QryCursoAluno.Open;
var_curso := QryCursoAluno.FieldByName('curso').AsString;
QryCursoAluno.Close;

observe, que é apenas um exemplo - eu não conheço os tipos de dados que você está usando, logo pode haver algo errado. Algumas observações:

- o ":" no SQL indica que aquele Ra_aluno que o segue é um parâmetro;

- preferencialmente utilize a parametrização nas consultas;

- quando passar o parâmetro, utilize o método adequado ao tipo de dados que será utilizado no SQL. No exemplo, eu supus que Ra_aluno, na sua tabela, seja um varchar, assim, ao passar o parâmetro eu utilizei o método AsString. Se fosse numérico, seria preferível fazê-lo deste modo:

QryCursoAluno.ParamByName('Ra_aluno').AsInteger := StrToInt(edit1.text);

- Se você utilizar um datamodule para colocar seus datasets (tipo table ou query, como o TIBQuery) e utilizar um especificamente para cada verificação que fizer, então, as duas linhas iniciais não são necessárias no código. Isso porque você adiciona neste dataset a instrução SQL direto na propriedade SQL do componente em design-time e não há a menor necessidade de ficar fazendo isto no código (vamos poupar linhas de código). Mas, se você utilizar um componente "genérico" onde você o utiliza para diversas consultas (diferentes), então sim, continue mantendo este tipo de código.

Se for para apresentar em tela, há algumas possibilidades:

- uso de componentes data-aware (TDBEdit, TDBMemo,...), que vinculados à consulta (dataset), automaticamente mostrarão o resultado obtido;

- uso de componentes não data-aware (TEdit, TMemo, ...), onde você deverá mover os valores de cada coluna do resultado de seu dataset não "mão". Um ex.:

Edit1.Text := QryAlunos.FieldByName('Nome').AsString;

Edit2.Text := QryAlunos.FieldByName('Matricula').AsString;

Voce verá em alguns post, aqui no forum, outros exemplos

Estive pensando em fazer essas verificações através de uma Store Procedure,
não estou certo de este seria o melhor exemplo de aplicação de uma stored procedure - veja que é uma consulta simples. O uso dela, ao meu ver, é mais interessante quando são necessárias algumas ações sobre o banco quando uma determinada condição é satisfeita. Como o nome diz é uma procedure (procedimento), algo que requeira processamento, não uma simples consulta.

Estes links que o Jhonas lhe passou devem servir de partida.

Sugiro dar uma olhada nestes sites sobre Firebird, voce pode encontrar informações relevantes sobre ele, já que você está meio enferrujado :D

Documentação FireBird - Firebird.Org (site oficial - Inglês)

FireBird.Br (Português)

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Bom Dia Micheus.

Obrigado pela Dicas elas serão muito utéis...

Quanto as Procedure, estava pensando em utiliza-las pois na verdade não é apenas uma simples consulta. Após a consulta realizada tenho de verificar o horário de entrada do aluno para comparar com a horário cadastrado para o curso, para depois poder registrar a presença do aluno nas aulas, então como você supos estou trabalhando com varias tabelas.

Mas no momento as informações que já foram passadas vão servir de base para o desenvolvimento do restante da "rotina" de entrada dos aluno.

Agradeço a Todos q me ajudaram com essa dúvida...

Abraço a todos.

Obrigado :D

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