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

Como Consulta Bd (parte Ii)


Guest Alessandro

Pergunta

Guest Alessandro

procedure TfmLogin.Button1Click(Sender: TObject);
begin
Tabela.First; //Pula pro primeiro registro
  while not Tabela.Eof do  //Enquanto não for o fim da tabela
  begin
    if edit1.Text = Tabela.fieldbyname('Login') then  [B]//está dando erro nesta linha[/B]
      begin
        if edit2.Text = Tabela.fieldbyname('Senha') then
        begin
          showMessage('Usuário cadastrado')
          fmLogin.Close;
          abort;  //Para não aparecer a chamada de erro no final
        end
        else
          begin
            ('Senha inválida!')
             abort;
          end;
        end;
        Tabela.next;
      end;
        showMessage('Usuário não existe.');  //Se chegar no fim da tabela e não encontrar

end;

//[Error] U_login.pas(51): Incompatible types: 'String' and 'TField' sad.gif

BOM, EU HAVIA PERGUNTADO E DEPOIS DESTE CÓDIGO PASSADO PELO MEMBRO "MODERADOR". SURGIRAM AS SEGUINTES DÚVIDAS :

>> O que devo fazer para o código entender que estou solicitando informações do Banco de Dados ?

>> Devo colocar mais algum objeto no meu formulário ?

Agradeço a paciência dos membros.....

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Então cara....

Eu criei uma tabela (PARADOX) 2 colunas :

LOGIN SENHA

Eu criei um form com dois edit : "Login" e "Senha" e um button "OK"

A dúvida é a seguinte :

O que devo fazer e onde para que quando digitado e pressionado o botão OK :

Consultar os dois edits na tabela do inicio ao fim ?

Verificar se existe ?

Se sim, abre dá uma messageBox('Aceito');

Senão, messageBox('Login ou senha inválido.');

Esse código que foi passado, não compila....eu gostaria de saber se precisa criar algum objeto para acessar o banco de dados, pois está dando erro...

Por enquanto eu tenho :

>>um form

>>dois edit

>>um botão "OK" e dentro do evento Click tem esse código aí em cima....entendeu.....a tabela eu criei no Data Desktop, mas não fiz nada mais....

O que está faltando ????

Please wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Moderador, eu consegui cara verificar o usuários cadastrados, só que agora não consigo cadastrá-los....está aparecendo a mensagem de "KEY VIOLATION"....mas estou colocando um Nome, Login, Senha, Matrícula e Data diferentes, meu código de inclusão ficou assim :

dbedit2.Text>>Nome

dbedit3.Text>>Matrícula

dbedit4.Text>>Login

dbedit5.Text>>Senha

dbedit6.Text>>Data

procedure TfmCadastrar.BitBtn1Click(Sender: TObject);
var nome : String;
begin
  nome := dbEdit2.Text;

  if not((dbedit2.Text='') or (dbedit3.Text='') or (dbedit4.Text='') or
    (dbedit5.Text='') or (dbedit6.Text='')) then
    begin
      modSistema.tbCadastrar.Post;
      showMessage('Usuário '+nome+' cadastrado com sucesso!');
    end
    else
      begin
        showMessage('Não deixe nenhum campo em branco');
      end;

end;

Eu gostaria de saber, como eu verifico a tabela para não registrar Login e senha igual a um já cadastrado...e o que pode estar acontecendo se eu estou inserindo dados totalmente diferentes para cadastro.......

Link para o comentário
Compartilhar em outros sites

  • 0

Eu faço a seguinte verificação no onsettext do campo da tabela:

procedure TForm1.Table1CodigoSetText(Sender: TField; const Text: String);

begin

Query1.close;

Query1.SQL.Clear;

Query1.sql.add('select codigo from tabela where codigo = '+text);

Query1.Open;

if not Query1.IsEmpty then

begin

showmessage('Código já inserido !');

Table1.FieldByName('codigo').AsString := '';

DBEdit1.SetFocus;

end

else

Table1.FieldByName('codigo').AsString := text;

end;

assim ele compara se o código q esta na tela é igual a algum q já exista na tabela e não deixa inserir...

Darlan

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Alessandro, eu não mexo com Paradox, mas vou deixar apenas uma dica que pode não ser útil para nada, mas de repente ajuda em alguma coisa.

Isto que você está querendo implementar tem no livro do Carlos Oliviero, DELPHI 7 - CADASTRO E ESTOQUE, com instruções super didáticas e desenvolvidas passo a passo.

A única diferença é que o banco de dados do livro é o Interbase.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Alessandro, você ão precisa verificar todos os campos da tabela, apenas o campo chave primária, quando você registra duas chaves primárias com o mesmo valor o Delphi retorna a msg de erro Key Violation (violação de chave... dããããã). No campo chave primária, substitua o DBEdit por um MaskEdit e ponha o seguinte código no evento OnExit dele:

procedure TFrmCadastro.MaskEdit1Exit(Sender: TObject);

var cod : string;

Begin

if BtnCancelar.Focused = false then begin //se o foco sair do maskedit pro botão cancelar ele não roda o código abaixo

DM.TBCadastro.Cancel;

if (trim(MaskEdit1.text) <> '') then begin

cod := MaskEdit1.text;

if DM.TBCadastro.FindKey([cod]) then begin

Showmessage('Cadastro já efetuado.');

MaskEdit1.SetFocus;

end

else begin

DBEdit2.SetFocus;//o próximo campo após o MaskEdit

DM.TBCadastro.Append;//já q não existe o registro é criado um

end;

end;

end;

end;

end.

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