Codigo botao salvar está com algum erro
Tenho um banco com paradox, utilizando dbedits, datamodules, ttable e datasource.
Fiz os botoes pra incluir, alterar, excluir,salvar e cancelar.
O próprio usuário digita o código. Levei um certo tempo pra conseguir fazer com que o sistema não deixe o usuário repetir o mesmo código(chave primaria), porém, se eu for alterar somente um nome de um determinado cadastro, o sistema emite a mensagem dizendo que este código já esta cadastrado (porém eu não estou adicionando um novo cadastro e sim editando um já existente). Abaixo vai o código para quem quiser me ajudar.
procedure TFrmcadfunc.btnsalvarClick(Sender: TObject);
begin
If udmdados.tbdadosfuncCodfunc.IsNull =true then begin
showmessage (´Código não pode ser vazio!´);
dbedit1.SetFocus;
exit;
end;
If not udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])
then
begin
try
udmdados.tbdadosfunc.Append;
pdados.Enabled:=false;
btnincluir.Enabled:=true;
btnalterar.Enabled:=true;
btncancelar.Enabled:=false;
btnsalvar.Enabled:=false;
btnexcluir.Enabled:=true;
btnsair.Enabled:=true;
udmdados.tbdadosfunc.Cancel;
except
showmessage(´Errro ao gravar dados´);
end;
end
else begin
showmessage(´Código já existe!´);
dbedit1.SetFocus;
//udmdados.tbdadosfunc.Cancel;
end;
end;
Fiz os botoes pra incluir, alterar, excluir,salvar e cancelar.
O próprio usuário digita o código. Levei um certo tempo pra conseguir fazer com que o sistema não deixe o usuário repetir o mesmo código(chave primaria), porém, se eu for alterar somente um nome de um determinado cadastro, o sistema emite a mensagem dizendo que este código já esta cadastrado (porém eu não estou adicionando um novo cadastro e sim editando um já existente). Abaixo vai o código para quem quiser me ajudar.
procedure TFrmcadfunc.btnsalvarClick(Sender: TObject);
begin
If udmdados.tbdadosfuncCodfunc.IsNull =true then begin
showmessage (´Código não pode ser vazio!´);
dbedit1.SetFocus;
exit;
end;
If not udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])
then
begin
try
udmdados.tbdadosfunc.Append;
pdados.Enabled:=false;
btnincluir.Enabled:=true;
btnalterar.Enabled:=true;
btncancelar.Enabled:=false;
btnsalvar.Enabled:=false;
btnexcluir.Enabled:=true;
btnsair.Enabled:=true;
udmdados.tbdadosfunc.Cancel;
except
showmessage(´Errro ao gravar dados´);
end;
end
else begin
showmessage(´Código já existe!´);
dbedit1.SetFocus;
//udmdados.tbdadosfunc.Cancel;
end;
end;
Wagsilvasilva
Curtidas 0
Respostas
Marcos Conceição
24/12/2003
Vc tem um botão salvar somente para quando for fazer inclusão??
Foi isso que entendi na rotina abaixo.
[u:6278a675a6]botao salvar[/u:6278a675a6]
Activecontrol:=nil; // é importante colocar no botões para tirar o foco do dbedit
If modo=alteracao then begin
end;
if modo=inclusao then begin
end;
Espero que ajude em algo,
sem mais,
Marcos
Foi isso que entendi na rotina abaixo.
[u:6278a675a6]botao salvar[/u:6278a675a6]
Activecontrol:=nil; // é importante colocar no botões para tirar o foco do dbedit
If modo=alteracao then begin
end;
if modo=inclusao then begin
end;
Espero que ajude em algo,
sem mais,
Marcos
GOSTEI 0
Wagsilvasilva
24/12/2003
Tenho apenas um botao salvar. ele serve tanto para salvar uma alteracao quanto uma inclusao.
GOSTEI 0
Wagsilvasilva
24/12/2003
Cara, entendi tua lógica. Acho que deve ser isso ai. Vou tentar fazer isso no meu sistema. Valeu
GOSTEI 0
Wagsilvasilva
24/12/2003
Emerson, fiz o q tu sugeriu, contudo apareceu um erro que não faço idéia de como corrigir.
Operator not applicable to this operand type
Operator not applicable to this operand type
GOSTEI 0
Moonlight
24/12/2003
Emerson, fiz o q tu sugeriu, contudo apareceu um erro que não faço idéia de como corrigir.
Operator not applicable to this operand type
Vai ser nessa parte:
If (udmdados.tbdadosfunc.State = dsInsert) and not udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])
Coloca parenteses em cada uma das expressoes, assim:
If ((udmdados.tbdadosfunc.State = dsInsert) and not (udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])) )
GOSTEI 0