Fórum Validação de NickName #214766

17/02/2004

0

Caras, minha Base de Dados é MS Access, portanto todas as minhas tabelas tem no campo Chave Primaria o tipo definido como Autonumeração. O que eu quero é fazer a verificação da Identificação (Nickname) do usuario na tabela de usuarios. Já tentei fazer um Locate no OnExit do DBEdit e um While que percorre toda a tabela, mas o erro que ocorre é que o indice ou chave primaria nao pode receber valor nulo. Como eu posso fazer essa verificação sem ocorra esse erro??

Valeu!


Diorgenes175

Diorgenes175

Responder

Posts

17/02/2004

Pedro Bugim

Pô, não sei se vai ajudar muito... vai dar mais trabalho, mas é como eu faço (até hj não me deixou na mão).
Ao invés de um dbedit, coloque um edit simples.
Coloque uma query apontando para sua tabela e no onexit do edit coloque o código:

var
  I: Integer;
begin
  //verifica a existência do nickname na tabela
  With query do
  begin
    close;
    sql.clear;
    sql.add(´select * from TABELA where CAMPO=´+Quotedstr(Edit.text)+´´);
    Open;
  end;
  //verifica se o nickname foi encontrado
  I:=query.recordcount;
  //em caso negativo, mostra a seguinte mensagem
  If I=0 then showmessage(´Nickname inválido´)
  //em caso positivo, continue com o que desejar
  else ...
end;



Responder

Gostei + 0

17/02/2004

Pedro Bugim

caso não funcione, me avisa!!!


Responder

Gostei + 0

17/02/2004

Diorgenes175

Caras, valeu a ajuda. Consegui fazer a validação e não precisei colocar Edit´s comuns, mas tive que mudar o campo autonumeração para Numero e fazer a autonumeração manualmente:
No evento OnExit do DBEdit fiz:

With QryNick Do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TbUsuarios WHERE Identificacao=´+ QuotedStr (FldIdentificacao.Text) + ´´);
Prepared;
Open;
If (Not QryNick.IsEmpty) Then
begin
Modulo.TbUsuarios.Cancel;
Modulo.TbUsuarios.Locate(´Identificacao´, QryNickIdentificacao.AsString,[loPartialKey]);
FldNome.SetFocus;
end
End


Ou seja, se ele encontrou um registro com o nome de usuario desejado ele localiza o registro e nao permite a duplicação, caso nao haja ele lança o foco para outro DBEdit e permite a inserção.

Valeu!!!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar