Chave primaria: evitando duplicidade
Fala moçada!!!
Todos estam bem???
Tenho pouca experiencia em programar e estou com o problema descrito acima. Gostaria de uma ajuda suas.
Tenho uma função que faz o seguite, recebe como parametro o codigo digitado em DBEdit1.txt(o campo codigo é uma string de 4) a sintaxe esta abaixo:
function achou(cod : string[4]):boolean;
begin
achou := false;
while table1.EOF = false then
begin
if cod = table1.defsfield[´CodEmp´]AsString then
achou := true;
end;
end;
e tambem tenho a procedure do evento onClick do botao incluir que faz a chamada desta funcao:
procedure Tform1.btnincluirClick(Object : Sender);
begin
table1.last;
LimpaForm; //uma outra funcao que limopa os campos CLEAR
table1.insert;
DBEdit1.SetFocus;
if achou(DBEdit1.text) then
begin
mensagem de erro;
abort;
end;
end;
Mas mesmo assim o ainda o delphi me retorna o erro de KEY VIOLATION.
Por favor me ajudem, fico muito grato.
Todos estam bem???
Tenho pouca experiencia em programar e estou com o problema descrito acima. Gostaria de uma ajuda suas.
Tenho uma função que faz o seguite, recebe como parametro o codigo digitado em DBEdit1.txt(o campo codigo é uma string de 4) a sintaxe esta abaixo:
function achou(cod : string[4]):boolean;
begin
achou := false;
while table1.EOF = false then
begin
if cod = table1.defsfield[´CodEmp´]AsString then
achou := true;
end;
end;
e tambem tenho a procedure do evento onClick do botao incluir que faz a chamada desta funcao:
procedure Tform1.btnincluirClick(Object : Sender);
begin
table1.last;
LimpaForm; //uma outra funcao que limopa os campos CLEAR
table1.insert;
DBEdit1.SetFocus;
if achou(DBEdit1.text) then
begin
mensagem de erro;
abort;
end;
end;
Mas mesmo assim o ainda o delphi me retorna o erro de KEY VIOLATION.
Por favor me ajudem, fico muito grato.
Anonymous
Curtidas 0
Respostas
Okama
12/03/2003
Não é por nada não, mas vc reparou que sua table tá em modo de inserção quando é chamada a função ´achou´ ??
Abra a Table (de preferencia sem indice) e execute a função, depois continue gravando...
Table1.Open;
Table1.First; //pra ter certeza.
While not Table1.Eof do begin
bla bla bla
end;
Result := ´qualquer coisa´
Abra a Table (de preferencia sem indice) e execute a função, depois continue gravando...
Table1.Open;
Table1.First; //pra ter certeza.
While not Table1.Eof do begin
bla bla bla
end;
Result := ´qualquer coisa´
GOSTEI 0
Anonymous
12/03/2003
oI Amigo
Use o
[b:14b0091552]Try
Finally
Excerpt[/b:14b0091552]
Use o
[b:14b0091552]Try
Finally
Excerpt[/b:14b0091552]
GOSTEI 0