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

Delphi - Comparando dados de uma tabela


Marcelo_

Pergunta

Olá senhores Boa tarde,

Estou tentando fazer um codigo que teste se um valor digitado no edit1 é igual ao primeiro campo de uma tabela, se sim, ele testa um valor digitado em num edit 2 com um segundo campo da tabela, se não então ele testa o mesmo valor digitado no edit1 com o segundo campo da tabela, e assim por diante com três edits e uma tabela com três campos (campo1, campo2 e campo3).

se os três campos da tabela forem diferentes aos tres edits então ele salva os tres edits em uma segunda tabela.

estou quebrando a cabeça e não consigo encontrar um modo de fazer .

mais ou menos assim

edit1 = campo1 da tabela1 ?

não, então teste se o edit1 = campo2 da tabela1

tambem não,então teste se o edit1 = campo3 da tabela1

se não,então grave o edit1 em uma segunda tabela (campo1 da tabela2) e faça o mesmo com o edit2,

mas se sim, o edit1 é igual ao campo1 ou campo 2 ou campo 3 da tabela1, então faça abaixo,

edit2 = campo1 da tabela1 ?

não, então teste se o edit2 = campo2 da tabela1

tambem não,então teste se o edit2 = campo3 da tabela2

se não,então grave o edit2 em uma segunda tabela (campo2 da tabela2) e faça o mesmo com o edit3,

mas se sim o edit2 é igual ao campo1 ou campo 2 ou campo 3 da tabela1, então faça abaixo,

edit3 = campo1 da tabela1 ?

não, então teste se o edit3 = campo2 da tabela1

tambem não,então teste se o edit3 = campo3 da tabela1

se não,então grave o edit3 em uma segunda tabela (campo3 da tabela2)

mas se sim o edit3 é igual ao campo1 ou campo 2 ou campo 3 da tabela1.

e assim em cada linha da tabela até o seu final .

Abraço a todos.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Não vou te passar mastigado por que senão não vai aprender, mas vou te dar uma começo da lógica

procedure TForm1.Button1Click(Sender: TObject);
var tab1_campo1, tab1_campo2, tab1_campo3 : string;
    tab2_campo1, tab2_campo2, tab2_campo3 : string;
begin


   // Testanto Edit1 com os campos da tabela
   if edit1.Text <> tab1_campo1 then
      begin
         if edit1.Text <> tab1_campo2 then
            begin
               if edit1.Text <> tab1_campo3 then
                  begin


                  end
               else
                  begin


                  end;

            end
         else
            begin


            end;

      end
   else
      begin


      end;


   // Testanto Edit2 com os campos da tabela
   if edit2.Text <> tab1_campo1 then
      begin
         if edit2.Text <> tab1_campo2 then
            begin
               if edit2.Text <> tab1_campo3 then
                  begin


                  end
               else
                  begin


                  end;

            end
         else
            begin


            end;

      end
   else
      begin


      end;

   // Testanto Edit3 com os campos da tabela
   if edit3.Text <> tab1_campo1 then
      begin
         if edit3.Text <> tab1_campo2 then
            begin
               if edit3.Text <> tab1_campo3 then
                  begin


                  end
               else
                  begin


                  end;

            end
         else
            begin


            end;

      end
   else
      begin


      end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade agarrei na seguinte parte, estava testando o primeiro número e não consegui testar o segundo e terceiro !!!! sabe me apontar o erro ????

procedure TForm1.Button1Click(Sender: TObject);

var

primeiro, segundo, terceiro:integer; // variavel para guardar o número, e se não der erro adicionar os três na tabela2.

begin

while not Table1.Eof do

begin

if Table1.FieldByName('um').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 1

primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel

else

if Table1.FieldByName('dois').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 2

primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel

else

if Table1.FieldByName('tres').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 3

primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel

else

begin

Label1.Caption:='Primeiro número informado ainda não existe na base, o mesmo será gravado na tabela dois';

end;

Table1.Next;

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0

Estou seguindo somente o seu reciocinio:

procedure TForm1.Button1Click(Sender: TObject);
var
   primeiro, segundo, terceiro:integer; // variavel para guardar o número, e se não der erro adicionar os três na tabela2.
begin
   while not Table1.Eof do
   begin

      if Table1.FieldByName('um').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 1
         primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel
      else
      if Table1.FieldByName('dois').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 2
         primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel
      else
      if Table1.FieldByName('tres').AsInteger <> StrToInt(edit1.text) then // testa se o número existe na tabela1 campo 3
         primeiro:= StrToInt(edit1.text) // se não existe no campo 1 grava nesta variavel
      else
         begin
            Label1.Caption:='Primeiro número informado ainda não existe na base, o mesmo será gravado na tabela dois';
         end;

      if Table1.FieldByName('um').AsInteger <> StrToInt(edit2.text) then // testa se o número existe na tabela1 campo 1
         segundo:= StrToInt(edit2.text) // se não existe no campo 2 grava nesta variavel
      else
      if Table1.FieldByName('dois').AsInteger <> StrToInt(edit2.text) then // testa se o número existe na tabela1 campo 2
         segundo:= StrToInt(edit2.text) // se não existe no campo 2 grava nesta variavel
      else
      if Table1.FieldByName('tres').AsInteger <> StrToInt(edit2.text) then // testa se o número existe na tabela1 campo 3
         segundo:= StrToInt(edit2.text) // se não existe no campo 2 grava nesta variavel
      else
         begin
            Label2.Caption:='Segundo número informado ainda não existe na base, o mesmo será gravado na tabela dois';
         end;

      if Table1.FieldByName('um').AsInteger <> StrToInt(edit3.text) then // testa se o número existe na tabela1 campo 1
         terceiro:= StrToInt(edit3.text) // se não existe no campo 3 grava nesta variavel
      else
      if Table1.FieldByName('dois').AsInteger <> StrToInt(edit3.text) then // testa se o número existe na tabela1 campo 2
         terceiro:= StrToInt(edit3.text) // se não existe no campo 3 grava nesta variavel
      else
      if Table1.FieldByName('tres').AsInteger <> StrToInt(edit3.text) then // testa se o número existe na tabela1 campo 3
         terceiro:= StrToInt(edit3.text) // se não existe no campo 3 grava nesta variavel
      else
         begin
            Label3.Caption:='Terceiro número informado ainda não existe na base, o mesmo será gravado na tabela dois';
         end;

   Table1.Next;
   end;
end;

abraço

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...