Por favor me ajudem!!!
Fala moçada!!!
Já estou me achando BURRO demais pois que realizar algo muito trivial, uma checagem de duplicidade, o cara entra com o codigo o sistema pega esse codigo e verifica se ja existe na tabela(paradox) muito simples (while...do), mas por nada isso da certo por fico agradecido desde já se poderem me ajudadr...
[]´s :twisted:
segue o código fonte utilizado
function achou(cod : string):boolean;
begin
achou := false;
DMadm.Tbempresa.Open;
DMadm.Tbempresa.First;
while not DMadm.Tbempresa.Eof do
begin
if DMadm.Tbempresa.FieldByName(´CodEmp´).AsString = cod then
achou := true;
DMadm.Tbempresa.Next;
end;
end;
procedure TFrmEmpresa.DBEdit1Exit(Sender: TObject);
begin
if DMadm.DSempresa.State in [dsEdit, dsInsert] then
begin
if achou(DBEdit1.text) = true then
begin
MessageDlg(´O código ´+DBEdit1.text+´ já existe.´,
mtInformation,[mbOk], 0);
DBEdit1.Clear;
DBEdit1.SetFocus;
end;
end;
end;
procedure TFrmEmpresa.BtnincluirClick(Sender: TObject);
begin
try
DMadm.Tbempresa.Last;
LimpaForm;
Btnincluir.Caption := ´&Confirma´;
if Btnincluir.Caption = ´&Confirma´ then
begin
DMadm.Tbempresa.Insert;
DBEdit1.SetFocus;
end;
Btnincluir.Caption := ´&Incluir´
except
end;
end;
Já estou me achando BURRO demais pois que realizar algo muito trivial, uma checagem de duplicidade, o cara entra com o codigo o sistema pega esse codigo e verifica se ja existe na tabela(paradox) muito simples (while...do), mas por nada isso da certo por fico agradecido desde já se poderem me ajudadr...
[]´s :twisted:
segue o código fonte utilizado
function achou(cod : string):boolean;
begin
achou := false;
DMadm.Tbempresa.Open;
DMadm.Tbempresa.First;
while not DMadm.Tbempresa.Eof do
begin
if DMadm.Tbempresa.FieldByName(´CodEmp´).AsString = cod then
achou := true;
DMadm.Tbempresa.Next;
end;
end;
procedure TFrmEmpresa.DBEdit1Exit(Sender: TObject);
begin
if DMadm.DSempresa.State in [dsEdit, dsInsert] then
begin
if achou(DBEdit1.text) = true then
begin
MessageDlg(´O código ´+DBEdit1.text+´ já existe.´,
mtInformation,[mbOk], 0);
DBEdit1.Clear;
DBEdit1.SetFocus;
end;
end;
end;
procedure TFrmEmpresa.BtnincluirClick(Sender: TObject);
begin
try
DMadm.Tbempresa.Last;
LimpaForm;
Btnincluir.Caption := ´&Confirma´;
if Btnincluir.Caption = ´&Confirma´ then
begin
DMadm.Tbempresa.Insert;
DBEdit1.SetFocus;
end;
Btnincluir.Caption := ´&Incluir´
except
end;
end;
Anonymous
Curtidas 0
Respostas
Anonymous
13/03/2003
Desculpa ! mas você esta utilizando o componente Ttable ? por que não usa Tquery ?
GOSTEI 0
L!nk!n
13/03/2003
Aí vai um exemplo bem basicão:
if table1.locate(´campo´, edit1.text, []) then
begin
showmessage(´Este código já existe´);
edit1.setfocus;
end
else
begin
showmessage(´Este código não existe´);
edit1.setfocus;
end;
if table1.locate(´campo´, edit1.text, []) then
begin
showmessage(´Este código já existe´);
edit1.setfocus;
end
else
begin
showmessage(´Este código não existe´);
edit1.setfocus;
end;
GOSTEI 0
Anonymous
13/03/2003
Estava ficando de saco cheio q nem vc, quando passei a usar o Tquery, tudo ficou mais fácil, valeu...
GOSTEI 0
Adilsond
13/03/2003
Já estou me achando BURRO!!! Então deve ser por isso que voce informou o título da pergunda dessa maneira.
//----------------------------//
Voce esta tentando localizar o registro na própria tabela que esta inserindo. A sua função forcara o registro a ser incluído.
function achou(cod : string):boolean;
begin
with TQuery.Create do
try
DatabaseName := DMadm.Tbempresa.DatabaseName;
SQL.Clear;
SQL.Add(´select count(*)´);
SQL.Add(´from empresa´);
SQL.Add(´where CodEmp = ´ + Cod);
SQL.Open;
try
Result := Fields[0].AsInteger > 0;
finally
Close;
end;
finally
Free.
end;
//----------------------------//
Voce esta tentando localizar o registro na própria tabela que esta inserindo. A sua função forcara o registro a ser incluído.
function achou(cod : string):boolean;
begin
with TQuery.Create do
try
DatabaseName := DMadm.Tbempresa.DatabaseName;
SQL.Clear;
SQL.Add(´select count(*)´);
SQL.Add(´from empresa´);
SQL.Add(´where CodEmp = ´ + Cod);
SQL.Open;
try
Result := Fields[0].AsInteger > 0;
finally
Close;
end;
finally
Free.
end;
GOSTEI 0
Dor_poa
13/03/2003
usa um locate
if tabela.locate(´nomecampo´, okprocura , []) then
achou
if tabela.locate(´nomecampo´, okprocura , []) then
achou
GOSTEI 0