Fórum Nomes duplicados.... #239222
23/06/2004
0
estou precisando de uma rotina q n deixe gravar nomes iguais na Tabela, alguem sabe onde posso encontrar ou ainda se tiver agradeço muito :)!!! valews
Hviana
Curtir tópico
+ 0Posts
23/06/2004
Repa
Por ex:
If ((tabela.FindKey([UpperCase(trim(Editnome.Text))]) = True)
then
begin
showmessage(´Já existe o nome na tabela´);
end;
Mas, é muito pouco provável que não existam pessoas com o mesmo nome, então sugiro que use + um campo p/ comparação, por exemplo um documento ou o nome da mãe.
Gostei + 0
23/06/2004
Motta
Gostei + 0
25/06/2004
Hviana
blz...mais como eu traduzo essa messagem p/ o usuário???
Gostei + 0
25/06/2004
Reginaldo174
Re: é claro que sim !
Então acho que voce deve usar uma referencia que não exista outra iguais por exemplo o CPF, CNPJ, Identidade, etc...
Dessa forma sua aplicação ficará mais consistente.
Já que está iniciando vá ao www.superdownloads.com.br e procure por Deephi.exe . É um arquivo com 1.600 dicas de delphi que funcionam.
Gostei + 0
25/06/2004
Hviana
Qndo eu disse ´nome´ na verdade quis generalizar...no meu caso especifico é um cadastro de músicas q n pode ter musicas cadastradas c mesmo nome 2 vezes!!!
Gostei + 0
26/06/2004
Motta
qdo se grava é o indice é violado uma mensagem de erro retorna.
faço assim
try
...
excepty
on e:exception do
_begin
____if pos (e.message,´idx_xpto´) > 0 then
_______ShowMessage(´Nome Duplicado´);
_end;
end;
idx_xpto é o nome do indice violado, no Oracle funciona assim ele retorna o objeto que gerou o erro,creioque funciona em outros bd´s , até os mais simples tipo paradox.
nao tenho certeza da sintaxe da function pos, nunca lembro a ordem ....
Gostei + 0
26/06/2004
Hviana
valew galera...vc´s do forun desenrolam tudo...a união faz a força heheh :idea:
Gostei + 0
26/06/2004
Rm
Para fazer somente primeira letra maisucula SEMPRE.
procedure TForm1.Table3BeforePost(DataSet: TDataSet);
begin
if table3combina.value<> ´´ then begin
table3.Edit;
table3combina.value:= UpperCase(Copy(table3combina.value,1,1))+LowerCase(Copy(table3combina.value,2,Length(table3combina.value)));
end;
end;
Para localizar e deletar registros IGUAIS por locate (locaseInsensitive)
TABLE3COMBINA.VALUE É O REGISTRO QUE SERIA PARA TI ´MUSICA´.
procedure TForm1.Table3AfterPost(DataSet: TDataSet);
VAR
s:string;
r:integer;
begin
s:=table3combina.value;
r:=table3.RecNo;
Table3.Locate(´combina´,s,[LoCaseInsensitive]);
if table3.RecNo<>r then begin
if table3combina.value=s then begin
showmessage (´Registro já existe!!Duplicação foi deletada!Registro já existente está selecionado.´);
table3.recno:=r;
table3.delete;
Table3.Locate(´combina´,s,[LoCaseInsensitive]);
end;
end;
end;
SDS/RM
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)