Fórum Mensagem de Erro ao Gravar cadastro no banco mas grava #484169
01/07/2014
0
Sou novo em programação, meu conhecimento é básico. Estou tentando gravar um registro no banco de dados e ocorre a seguinte mensagem: CdsClientes: dataset no in edit or insert mode. Porém o registro é gravado. Gostaria de saber como resolvo para retirar essa mensagem.
No meu form tenho um botao de insert com o seguinte código:
dm.cdsclientes.insert;
DBnome.SetFocus;
Tenho um botão de gravar com o seguinte código:
procedure TFrameCadClientes.SBGravarClick(Sender: TObject);
var
vCodigo : integer;
begin
if dm.CdsClientes.State in [dsinsert] then
with dm.sp_Clientes do
begin
Prepared := true;
ExecProc;
Prepared := False;
Vcodigo :=ParamByName ('ID').Value;
close;
dm.cdsclientes.fieldbyname('codigo').AsInteger := vcodigo;
dm.cdsclientes.Post;
dm.cdsclientes.ApplyUpdates(0);
end;
begin
dm.cdsclientes.Post;
dm.cdsclientes.ApplyUpdates(0);
end;
end;
Sendo que utilizo uma trigger no banco para criar um codigo novo para o cliente:
AS
BEGIN
if (inserting) then
IF (NEW.CODIGO IS NULL) THEN
NEW.CODIGO = GEN_ID(GEN_CLIENTES_ID,1);
END
Preciso que o Botão Gravar grave registro novos e também atualize registro existentes. Ele está fazendo normal só que essa mensagem: CdsClientes: dataset no in edit or insert mode. fica aparecendo.
desde já agradeço a atenção.
Diego Jacauna
Curtir tópico
+ 0Post mais votado
01/07/2014
Outra coisa; qual o banco de dados que você esta usando? e por que usar trigger?
Ricardo
Gostei + 1
Mais Posts
01/07/2014
Diego Jacauna
realmente resolver tirando o o post.
obrigado Ricardo pelo retorno.
Gostei + 0
11/07/2014
Guilherme
dm.cdsclientes.Append ou dm.cdsclientes.Insert
por isso aquela mensagem que você viu.
Gostei + 0
11/07/2014
Ricardo
dm.cdsclientes.Append ou dm.cdsclientes.Insert
por isso aquela mensagem que você viu.
O nosso amigo já resolveu o problema. No caso dele não esta faltando append ou insert, a tabela já esta em modo de inserção, veja que ele tem dois botões um para inserir e outro para gravar. O botão inserir já esta dando insert, o problema era que ele estava executando post duas vezes seguidas para o mesmo registro.
Gostei + 0
30/01/2015
Guilherme Wiethaus
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)