delphi 7 - evitar nome repetido
Boa Tarde,
Uso delphi 7 e firebird e componentes paleta interbase.
Estou com dificuldade de criar uma query vara evitar registrar nomes repetidos, entao criei o codigo no evento BeforePost (antes de salvar) da tabela:
procedure TDTM.IBTABcadastroBeforePost(DataSet: TDataSet);
BEGIN
begin
//procedimento antes de clicar em salvar
//query cria codigo ao salvar
if IBTABcadastro.State = dsInsert then
begin
IBQRYcadastro.Close;
IBQRYcadastro.Open;
IBTABcadastroCodigocadastro.Value:=IBQRYcadastroMAIORCODIGOCADASTRO.Value + 1;
end;
end;
begin //query verificar nome repetido
DTM.IBQRYregisRepetido.Close;
DTM.IBQRYregisRepetido.ParamByName('PRMregisrepetido').AsString:=''+ DTM.IBTABcadastroNOMECOMPLETO.Text +'%'; //''+ dbEditNomeCompleto.Text +'%';
DTM.IBQRYregisRepetido.Open;
DTM.IBTABcadastroNOMECOMPLETO.Clear;
if (DTM.IBQRYregisRepetido.RecordCount >=1) then
else //se resultado da pesquisa for maior ou igual a 1
begin
//messagebeep(16);
//ApplicationHandleException(FormPesquisaCadastro.'Um registro com o mesmo'#13'nome foi encontrado.,AgenTel - Salvar,mb_Ok+MB_ICONQUESTION);
dtm.IBTABcadastro.Cancel;
Abort;
end;
end;
END;
Neste caso a query ate identifica o nome repetido. Exemplo:Se possuo na tabela o nome fulano de tal neste caso se eu digitar o mesmo fulano de tal na hora do cadastro ela identifica que o nome ja existe e cancela o registro. Entao se eu entrar com o nome f ou qualquer outra letra (A ate Z) ele acusa que o nome ja existe, nao deixando cadastrar.
Na hora que vou editar tambem nao funciona corretamente.
Aguardo uma resposta. Obrigado a todos.
Discussão (3)
Carregando comentários...