Por favor me ajudem!!!

13/03/2003

0

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;


Anonymous

Anonymous

Responder

Posts

13/03/2003

Anonymous

Desculpa ! mas você esta utilizando o componente Ttable ? por que não usa Tquery ?


Responder

13/03/2003

L!nk!n

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;


Responder

13/03/2003

Anonymous

Estava ficando de saco cheio q nem vc, quando passei a usar o Tquery, tudo ficou mais fácil, valeu...


Responder

13/03/2003

Adilsond

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;


Responder

13/03/2003

Dor_poa

usa um locate

if tabela.locate(´nomecampo´, okprocura , []) then
achou


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar