Olá pessoal.
Bom dia.
Estou com 2 problemas e acredito que podem ajudar.
QQ ajuda é bem vinda
Uso o Delphi7 (componentes IB) e o firebird.
Esse método de localizar funcionava, com a biblioteca Zeos) mas agora tem problemas (estou usando IB pq o Zeos não funciona mais) e não descubro porque.
Vai lá a procedure Locate. (funciona e na outra tentativa, não encontra o registro... estranho
if frmPrincipal.TableCadAlunos.Locate('Nome_Aluno',EdNomeAluno.Text,[LOPARTIALKEY,LOCASEINSENSITIVE])then
begin
EdNomeAluno.Text:=frmPrincipal.TableCadAlunos.fieldByName('Nome_Aluno').AsString;
EdNum.Text:=frmPrincipal.TableCadAlunos.fieldByName('Num_Aluno').AsString;
EdAnoLetivo.Text:=frmPrincipal.TableCadAlunos.fieldByName('Ano_Letivo').AsString;
EdSerie.Text:=frmPrincipal.TableCadAlunos.fieldByName('serie').AsString;
EdBimestre.Text:=frmPrincipal.TableCadAlunos.fieldByName('bimestre').AsString;
EdAlunoAtivo.Text:=frmPrincipal.TableCadAlunos.fieldByName('Ativo_(s/n)').AsString;
Panel1.Caption:='Registro Encontrado.';
exit;
end;
O segundo problema é esse:
Leio uma var x do banco assim (está lendo certinho no debug, se 'S' ou 'N'x:=frmPrincipal.TableCadAlunos.fieldByName('Ativo_(s/n)').AsString; //Se ativo ou não
Agora o x carrega, mas os Ifs não funcionam.....No debug, passa direto pelos 2 ifs.
Se o x é 'S', ou 'N', dá para ver no debug, mas passa direto sem respeitar uma das condições .
if(x='S')then
begin
Panel7.Caption:='Registro "encontrado"';
panel7.Refresh;
exit;
end;
if(x='N')then
begin
Panel7.Caption:='Aviso...Aluno não ativo"';
panel7.Refresh;
exit;
end;
x:=''; //Inicializa a var (vazia)