Botão Gravar / Alterar - Erro

Delphi

19/08/2015

Pessoal, boa noite!!!

Tenho um form de um cadastro com 7 botões(Incluir/Gravar/Alterar/Cancelar/Excluir/Pesquisar/Sair).Quando é um novo registro eu consigo gravar normal, mas se for uma alteração eu não consigo gravar, quero fazer assim, se for um novo registro faz um insert se for uma alteração faz um update mais não estou conseguindo, fazer a parte do update, da erro já pesquisei e não achei solução!!!

Form do Menu de Cadastro


[img:descricao=Form de Cadastro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213803.jpg[/img]

Erro quando eu clico no botão alterar faço as edições e clico no botão gravar novamente

[img:descricao=Mensagem do Erro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213952.jpg[/img]

Código do botão gravar
procedure TFrmCadClientes.BtnGravarClick(Sender: TObject);
begin
  f_operacao:='I';
  if f_operacao='I' then
    try
      Transacao.TransactionID := 1;
      Transacao.IsolationLevel := xilREPEATABLEREAD;
      FrmPrincipal.ConexaoBd.StartTransaction(Transacao);
      SqlDtSCadClientes.Close;
      SqlDtSCadClientes.CommandType := ctQuery;
      SqlDtSCadClientes.CommandText:='insert into CADCLIENTES(CODIGO, SITUACAO, DATACADASTRO, ULTIMAALTERACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'OPERADORCODIGO, OPERADORNOME, NOMERAZAO, FANTASIAAPELIDO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'CIDADECODIGO, CIDADENOME, ESTADO, CEP, ENDERECO, NUMERO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'BAIRROCODIGO, BAIRRONOME, COMPLEMENTO, RG, CNPJCPFCODIGO, CNPJCPF, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'DATANASCIMENTO, INSCRICAOESTADUAL, INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'EMAIL, CONTATO, TELEFONE1, TELEFONE2, CELULAR, OBSERVACOES)';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'values(:CODIGO, :SITUACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':DATACADASTRO, :ULTIMAALTERACAO, :OPERADORCODIGO, :OPERADORNOME, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':NOMERAZAO, :FANTASIAAPELIDO, :CIDADECODIGO, :CIDADENOME, :ESTADO, :CEP, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':ENDERECO, :NUMERO, :BAIRROCODIGO, :BAIRRONOME, :COMPLEMENTO, :RG, :CNPJCPFCODIGO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':CNPJCPF, :DATANASCIMENTO, :INSCRICAOESTADUAL, :INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':EMAIL, :CONTATO, :TELEFONE1, :TELEFONE2, :CELULAR, :OBSERVACOES)';
      SqlDtSCadClientes.ParamByName('CODIGO').AsInteger := StrToInt(EdtCodigo.Text);
      SqlDtSCadClientes.ParamByName('SITUACAO').AsString := EdtSituacao.Text;
      SqlDtSCadClientes.ParamByName('DATACADASTRO').AsDate := StrToDate(MskDataCadastro.Text);
      SqlDtSCadClientes.ParamByName('ULTIMAALTERACAO').AsDate:= StrToDate(MskUltimaAlteracao.Text);
      SqlDtSCadClientes.ParamByName('OPERADORCODIGO').AsInteger := StrToInt(EdtOperadorCodigo.Text);
      SqlDtSCadClientes.ParamByName('OPERADORNOME').AsString := EdtOperadorNome.Text;
      SqlDtSCadClientes.ParamByName('NOMERAZAO').AsString := EdtNomeRazao.Text;
      SqlDtSCadClientes.ParamByName('FANTASIAAPELIDO').AsString := EdtFantasiaApelido.Text;
      SqlDtSCadClientes.ParamByName('CIDADECODIGO').AsInteger := StrToInt(EdtCidadeCodigo.Text);
      SqlDtSCadClientes.ParamByName('CIDADENOME').AsString := EdtCidadeNome.Text;
      SqlDtSCadClientes.ParamByName('ESTADO').AsString := EdtEstado.Text;
      SqlDtSCadClientes.ParamByName('CEP').AsString := MskCep.Text;
      SqlDtSCadClientes.ParamByName('ENDERECO').AsString := EdtEndereco.Text;
      SqlDtSCadClientes.ParamByName('NUMERO').AsString := EdtNumero.Text;
      SqlDtSCadClientes.ParamByName('BAIRROCODIGO').AsInteger := StrToInt(EdtBairroCodigo.Text);
      SqlDtSCadClientes.ParamByName('BAIRRONOME').AsString := EdtBairroNome.Text;
      SqlDtSCadClientes.ParamByName('COMPLEMENTO').AsString := EdtComplemento.Text;
      SqlDtSCadClientes.ParamByName('RG').AsString := EdtRg.Text;
      SqlDtSCadClientes.ParamByName('CNPJCPFCODIGO').AsInteger := StrToInt(EdtCnpjCpfCodigo.Text);
      SqlDtSCadClientes.ParamByName('CNPJCPF').AsString := MskCnpjCpf.Text;
      SqlDtSCadClientes.ParamByName('DATANASCIMENTO').AsDate := StrToDate(MskDataNascimento.Text);
      SqlDtSCadClientes.ParamByName('INSCRICAOESTADUAL').AsString := EdtInscricaoEstadual.Text;
      SqlDtSCadClientes.ParamByName('INSCRICAOMUNICIPALPRODUTOR').AsString := EdtInscricaoMunicipalProdutor.Text;
      SqlDtSCadClientes.ParamByName('EMAIL').AsString := EdtEmail.Text;
      SqlDtSCadClientes.ParamByName('CONTATO').AsString := EdtContato.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE1').AsString := MskTelefone1.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE2').AsString := MskTelefone2.Text;
      SqlDtSCadClientes.ParamByName('CELULAR').AsString := MskCelular.Text;
      SqlDtSCadClientes.ParamByName('OBSERVACOES').AsMemo := MemoObservacoes.Lines.Text;
      SqlDtSCadClientes.ExecSQL;
      FrmPrincipal.ConexaoBd.Commit(Transacao);
    except
      on E : Exception do
          begin
            ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
           FrmPrincipal.ConexaoBd.Rollback(Transacao);
          end;
    end
    else

        try
      Transacao.TransactionID := 1;
      Transacao.IsolationLevel := xilREPEATABLEREAD;
      FrmPrincipal.ConexaoBd.StartTransaction(Transacao);
      SqlDtSCadClientes.Close;
      SqlDtSCadClientes.CommandType := ctQuery;
      SqlDtSCadClientes.CommandText:='UPDATE CADCLIENTES SET ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'SITUACAO=:SITUACAO, DATACADASTRO=:DATACADASTRO, ULTIMAALTERACAO=:ULTIMAALTERACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'OPERADORCODIGO=:OPERADORCODIGO, OPERADORNOME=:OPERADORNOME, NOMERAZAO=:NOMERAZAO, FANTASIAAPELIDO=:FANTASIAAPELIDO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'CIDADECODIGO=:CIDADECODIGO, CIDADENOME=:CIDADENOME, ESTADO=:ESTADO, CEP=:CEP, ENDERECO=:ENDERECO, NUMERO=:NUMERO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'BAIRROCODIGO=:BAIRROCODIGO, BAIRRONOME=:BAIRRONOME, COMPLEMENTO=:COMPLEMENTO, RG=:RG, CNPJCPFCODIGO=:CNPJCPFCODIGO, CNPJCPF=:CNPJCPF, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'DATANASCIMENTO=:DATANASCIMENTO, INSCRICAOESTADUAL=:INSCRICAOESTADUAL, INSCRICAOMUNICIPALPRODUTOR=:INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'EMAIL=:EMAIL, CONTATO=:CONTATO, TELEFONE1=:TELEFONE1, TELEFONE=:TELEFONE2, CELULAR=:CELULAR, OBSERVACOES=:OBSERVACOES ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'Where CODIGO=:CODIGO';
      if f_operacao<>'I' then SqlDtSCadClientes.ParamByName('CODIGO').AsInteger := StrToInt(EdtCodigo.Text);
      SqlDtSCadClientes.ParamByName('SITUACAO').AsString := EdtSituacao.Text;
      SqlDtSCadClientes.ParamByName('DATACADASTRO').AsDate := StrToDate(MskDataCadastro.Text);
      SqlDtSCadClientes.ParamByName('ULTIMAALTERACAO').AsDate:= StrToDate(MskUltimaAlteracao.Text);
      SqlDtSCadClientes.ParamByName('OPERADORCODIGO').AsInteger := StrToInt(EdtOperadorCodigo.Text);
      SqlDtSCadClientes.ParamByName('OPERADORNOME').AsString := EdtOperadorNome.Text;
      SqlDtSCadClientes.ParamByName('NOMERAZAO').AsString := EdtNomeRazao.Text;
      SqlDtSCadClientes.ParamByName('FANTASIAAPELIDO').AsString := EdtFantasiaApelido.Text;
      SqlDtSCadClientes.ParamByName('CIDADECODIGO').AsInteger := StrToInt(EdtCidadeCodigo.Text);
      SqlDtSCadClientes.ParamByName('CIDADENOME').AsString := EdtCidadeNome.Text;
      SqlDtSCadClientes.ParamByName('ESTADO').AsString := EdtEstado.Text;
      SqlDtSCadClientes.ParamByName('CEP').AsString := MskCep.Text;
      SqlDtSCadClientes.ParamByName('ENDERECO').AsString := EdtEndereco.Text;
      SqlDtSCadClientes.ParamByName('NUMERO').AsString := EdtNumero.Text;
      SqlDtSCadClientes.ParamByName('BAIRROCODIGO').AsInteger := StrToInt(EdtBairroCodigo.Text);
      SqlDtSCadClientes.ParamByName('BAIRRONOME').AsString := EdtBairroNome.Text;
      SqlDtSCadClientes.ParamByName('COMPLEMENTO').AsString := EdtComplemento.Text;
      SqlDtSCadClientes.ParamByName('RG').AsString := EdtRg.Text;
      SqlDtSCadClientes.ParamByName('CNPJCPFCODIGO').AsInteger := StrToInt(EdtCnpjCpfCodigo.Text);
      SqlDtSCadClientes.ParamByName('CNPJCPF').AsString := MskCnpjCpf.Text;
      SqlDtSCadClientes.ParamByName('DATANASCIMENTO').AsDate := StrToDate(MskDataNascimento.Text);
      SqlDtSCadClientes.ParamByName('INSCRICAOESTADUAL').AsString := EdtInscricaoEstadual.Text;
      SqlDtSCadClientes.ParamByName('INSCRICAOMUNICIPALPRODUTOR').AsString := EdtInscricaoMunicipalProdutor.Text;
      SqlDtSCadClientes.ParamByName('EMAIL').AsString := EdtEmail.Text;
      SqlDtSCadClientes.ParamByName('CONTATO').AsString := EdtContato.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE1').AsString := MskTelefone1.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE2').AsString := MskTelefone2.Text;
      SqlDtSCadClientes.ParamByName('CELULAR').AsString := MskCelular.Text;
      SqlDtSCadClientes.ParamByName('OBSERVACOES').AsMemo := MemoObservacoes.Lines.Text;
      SqlDtSCadClientes.ExecSQL;
      FrmPrincipal.ConexaoBd.Commit(Transacao);
    except
      on E : Exception do
          begin
            ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
            FrmPrincipal.ConexaoBd.Rollback(Transacao);
          end;
    end;
Bruno Henrique

Bruno Henrique

Curtidas 0

Melhor post

Mateus Ribeiro

Mateus Ribeiro

20/08/2015

Boa tarde!

Sim, o SQLDataSet1.State funciona!

Mas olha só, eu notei que seu SQLDataSet1 não entra em modo de INSERT ou EDIT em nenhum momento, pq vc faz um cadastro via codigo... então vai ter q mudar isso...

Cria uma variável global para receber esse STATUS, pode ser do tipo STRING se vc quiser... aí vc faz o seguinte:

Exemplo: var xSTATUS: String;


No botão EDITAR, vc coloca: xStatus:= 'E';
No botão NOVO vc coloca: xStatus:= 'N';

Aí vc faz aquilo q te falei anteriormente no botão SALVAR

if xStatus = 'N' then // Se estiver em modo de INSERT
  begin
     
   // AQUI FICA SEU TODO SEU CÓDIGO DE INSERT
 
  end;
 
if xStatus = 'E' then // Se estiver em modo de EDIÇÃO
  begin
 
    // AQUI FICA TODO SEU CÓDIGO DE SALVAR UMA EDIÇÃO, exemplo:
   UPDATE CADCLIENTES SET CODIGO = 1, SITUACAO = 'NAO',  DATACADASTRO = '20/08/2015', ULTIMAALTERACAO = '19/08/2015' .......
 
  end;


Isso foi só um exemplo, adapta aí da maneira q vc achar melhor ^^
GOSTEI 1

Mais Respostas

Bruno Henrique

Bruno Henrique

19/08/2015

Pessoal, boa noite!!!Ajuda aew


Tenho um form de um cadastro com 7 botões(Incluir/Gravar/Alterar/Cancelar/Excluir/Pesquisar/Sair).Quando é um novo registro eu consigo gravar normal, mas se for uma alteração eu não consigo gravar, quero fazer assim, se for um novo registro faz um insert se for uma alteração faz um update mais não estou conseguindo, fazer a parte do update, da erro já pesquisei e não achei solução!!!

Form do Menu de Cadastro


[img:descricao=Form de Cadastro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213803.jpg[/img]

Erro quando eu clico no botão alterar faço as edições e clico no botão gravar novamente

[img:descricao=Mensagem do Erro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213952.jpg[/img]

Código do botão gravar
procedure TFrmCadClientes.BtnGravarClick(Sender: TObject);
begin
  f_operacao:='I';
  if f_operacao='I' then
    try
      Transacao.TransactionID := 1;
      Transacao.IsolationLevel := xilREPEATABLEREAD;
      FrmPrincipal.ConexaoBd.StartTransaction(Transacao);
      SqlDtSCadClientes.Close;
      SqlDtSCadClientes.CommandType := ctQuery;
      SqlDtSCadClientes.CommandText:='insert into CADCLIENTES(CODIGO, SITUACAO, DATACADASTRO, ULTIMAALTERACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'OPERADORCODIGO, OPERADORNOME, NOMERAZAO, FANTASIAAPELIDO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'CIDADECODIGO, CIDADENOME, ESTADO, CEP, ENDERECO, NUMERO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'BAIRROCODIGO, BAIRRONOME, COMPLEMENTO, RG, CNPJCPFCODIGO, CNPJCPF, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'DATANASCIMENTO, INSCRICAOESTADUAL, INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'EMAIL, CONTATO, TELEFONE1, TELEFONE2, CELULAR, OBSERVACOES)';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'values(:CODIGO, :SITUACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':DATACADASTRO, :ULTIMAALTERACAO, :OPERADORCODIGO, :OPERADORNOME, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':NOMERAZAO, :FANTASIAAPELIDO, :CIDADECODIGO, :CIDADENOME, :ESTADO, :CEP, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':ENDERECO, :NUMERO, :BAIRROCODIGO, :BAIRRONOME, :COMPLEMENTO, :RG, :CNPJCPFCODIGO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':CNPJCPF, :DATANASCIMENTO, :INSCRICAOESTADUAL, :INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+':EMAIL, :CONTATO, :TELEFONE1, :TELEFONE2, :CELULAR, :OBSERVACOES)';
      SqlDtSCadClientes.ParamByName('CODIGO').AsInteger := StrToInt(EdtCodigo.Text);
      SqlDtSCadClientes.ParamByName('SITUACAO').AsString := EdtSituacao.Text;
      SqlDtSCadClientes.ParamByName('DATACADASTRO').AsDate := StrToDate(MskDataCadastro.Text);
      SqlDtSCadClientes.ParamByName('ULTIMAALTERACAO').AsDate:= StrToDate(MskUltimaAlteracao.Text);
      SqlDtSCadClientes.ParamByName('OPERADORCODIGO').AsInteger := StrToInt(EdtOperadorCodigo.Text);
      SqlDtSCadClientes.ParamByName('OPERADORNOME').AsString := EdtOperadorNome.Text;
      SqlDtSCadClientes.ParamByName('NOMERAZAO').AsString := EdtNomeRazao.Text;
      SqlDtSCadClientes.ParamByName('FANTASIAAPELIDO').AsString := EdtFantasiaApelido.Text;
      SqlDtSCadClientes.ParamByName('CIDADECODIGO').AsInteger := StrToInt(EdtCidadeCodigo.Text);
      SqlDtSCadClientes.ParamByName('CIDADENOME').AsString := EdtCidadeNome.Text;
      SqlDtSCadClientes.ParamByName('ESTADO').AsString := EdtEstado.Text;
      SqlDtSCadClientes.ParamByName('CEP').AsString := MskCep.Text;
      SqlDtSCadClientes.ParamByName('ENDERECO').AsString := EdtEndereco.Text;
      SqlDtSCadClientes.ParamByName('NUMERO').AsString := EdtNumero.Text;
      SqlDtSCadClientes.ParamByName('BAIRROCODIGO').AsInteger := StrToInt(EdtBairroCodigo.Text);
      SqlDtSCadClientes.ParamByName('BAIRRONOME').AsString := EdtBairroNome.Text;
      SqlDtSCadClientes.ParamByName('COMPLEMENTO').AsString := EdtComplemento.Text;
      SqlDtSCadClientes.ParamByName('RG').AsString := EdtRg.Text;
      SqlDtSCadClientes.ParamByName('CNPJCPFCODIGO').AsInteger := StrToInt(EdtCnpjCpfCodigo.Text);
      SqlDtSCadClientes.ParamByName('CNPJCPF').AsString := MskCnpjCpf.Text;
      SqlDtSCadClientes.ParamByName('DATANASCIMENTO').AsDate := StrToDate(MskDataNascimento.Text);
      SqlDtSCadClientes.ParamByName('INSCRICAOESTADUAL').AsString := EdtInscricaoEstadual.Text;
      SqlDtSCadClientes.ParamByName('INSCRICAOMUNICIPALPRODUTOR').AsString := EdtInscricaoMunicipalProdutor.Text;
      SqlDtSCadClientes.ParamByName('EMAIL').AsString := EdtEmail.Text;
      SqlDtSCadClientes.ParamByName('CONTATO').AsString := EdtContato.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE1').AsString := MskTelefone1.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE2').AsString := MskTelefone2.Text;
      SqlDtSCadClientes.ParamByName('CELULAR').AsString := MskCelular.Text;
      SqlDtSCadClientes.ParamByName('OBSERVACOES').AsMemo := MemoObservacoes.Lines.Text;
      SqlDtSCadClientes.ExecSQL;
      FrmPrincipal.ConexaoBd.Commit(Transacao);
    except
      on E : Exception do
          begin
            ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
           FrmPrincipal.ConexaoBd.Rollback(Transacao);
          end;
    end
    else

        try
      Transacao.TransactionID := 1;
      Transacao.IsolationLevel := xilREPEATABLEREAD;
      FrmPrincipal.ConexaoBd.StartTransaction(Transacao);
      SqlDtSCadClientes.Close;
      SqlDtSCadClientes.CommandType := ctQuery;
      SqlDtSCadClientes.CommandText:='UPDATE CADCLIENTES SET ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'SITUACAO=:SITUACAO, DATACADASTRO=:DATACADASTRO, ULTIMAALTERACAO=:ULTIMAALTERACAO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'OPERADORCODIGO=:OPERADORCODIGO, OPERADORNOME=:OPERADORNOME, NOMERAZAO=:NOMERAZAO, FANTASIAAPELIDO=:FANTASIAAPELIDO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'CIDADECODIGO=:CIDADECODIGO, CIDADENOME=:CIDADENOME, ESTADO=:ESTADO, CEP=:CEP, ENDERECO=:ENDERECO, NUMERO=:NUMERO, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'BAIRROCODIGO=:BAIRROCODIGO, BAIRRONOME=:BAIRRONOME, COMPLEMENTO=:COMPLEMENTO, RG=:RG, CNPJCPFCODIGO=:CNPJCPFCODIGO, CNPJCPF=:CNPJCPF, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'DATANASCIMENTO=:DATANASCIMENTO, INSCRICAOESTADUAL=:INSCRICAOESTADUAL, INSCRICAOMUNICIPALPRODUTOR=:INSCRICAOMUNICIPALPRODUTOR, ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'EMAIL=:EMAIL, CONTATO=:CONTATO, TELEFONE1=:TELEFONE1, TELEFONE=:TELEFONE2, CELULAR=:CELULAR, OBSERVACOES=:OBSERVACOES ';
      SqlDtSCadClientes.CommandText:=SqlDtSCadClientes.CommandText+'Where CODIGO=:CODIGO';
      if f_operacao<>'I' then SqlDtSCadClientes.ParamByName('CODIGO').AsInteger := StrToInt(EdtCodigo.Text);
      SqlDtSCadClientes.ParamByName('SITUACAO').AsString := EdtSituacao.Text;
      SqlDtSCadClientes.ParamByName('DATACADASTRO').AsDate := StrToDate(MskDataCadastro.Text);
      SqlDtSCadClientes.ParamByName('ULTIMAALTERACAO').AsDate:= StrToDate(MskUltimaAlteracao.Text);
      SqlDtSCadClientes.ParamByName('OPERADORCODIGO').AsInteger := StrToInt(EdtOperadorCodigo.Text);
      SqlDtSCadClientes.ParamByName('OPERADORNOME').AsString := EdtOperadorNome.Text;
      SqlDtSCadClientes.ParamByName('NOMERAZAO').AsString := EdtNomeRazao.Text;
      SqlDtSCadClientes.ParamByName('FANTASIAAPELIDO').AsString := EdtFantasiaApelido.Text;
      SqlDtSCadClientes.ParamByName('CIDADECODIGO').AsInteger := StrToInt(EdtCidadeCodigo.Text);
      SqlDtSCadClientes.ParamByName('CIDADENOME').AsString := EdtCidadeNome.Text;
      SqlDtSCadClientes.ParamByName('ESTADO').AsString := EdtEstado.Text;
      SqlDtSCadClientes.ParamByName('CEP').AsString := MskCep.Text;
      SqlDtSCadClientes.ParamByName('ENDERECO').AsString := EdtEndereco.Text;
      SqlDtSCadClientes.ParamByName('NUMERO').AsString := EdtNumero.Text;
      SqlDtSCadClientes.ParamByName('BAIRROCODIGO').AsInteger := StrToInt(EdtBairroCodigo.Text);
      SqlDtSCadClientes.ParamByName('BAIRRONOME').AsString := EdtBairroNome.Text;
      SqlDtSCadClientes.ParamByName('COMPLEMENTO').AsString := EdtComplemento.Text;
      SqlDtSCadClientes.ParamByName('RG').AsString := EdtRg.Text;
      SqlDtSCadClientes.ParamByName('CNPJCPFCODIGO').AsInteger := StrToInt(EdtCnpjCpfCodigo.Text);
      SqlDtSCadClientes.ParamByName('CNPJCPF').AsString := MskCnpjCpf.Text;
      SqlDtSCadClientes.ParamByName('DATANASCIMENTO').AsDate := StrToDate(MskDataNascimento.Text);
      SqlDtSCadClientes.ParamByName('INSCRICAOESTADUAL').AsString := EdtInscricaoEstadual.Text;
      SqlDtSCadClientes.ParamByName('INSCRICAOMUNICIPALPRODUTOR').AsString := EdtInscricaoMunicipalProdutor.Text;
      SqlDtSCadClientes.ParamByName('EMAIL').AsString := EdtEmail.Text;
      SqlDtSCadClientes.ParamByName('CONTATO').AsString := EdtContato.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE1').AsString := MskTelefone1.Text;
      SqlDtSCadClientes.ParamByName('TELEFONE2').AsString := MskTelefone2.Text;
      SqlDtSCadClientes.ParamByName('CELULAR').AsString := MskCelular.Text;
      SqlDtSCadClientes.ParamByName('OBSERVACOES').AsMemo := MemoObservacoes.Lines.Text;
      SqlDtSCadClientes.ExecSQL;
      FrmPrincipal.ConexaoBd.Commit(Transacao);
    except
      on E : Exception do
          begin
            ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
            FrmPrincipal.ConexaoBd.Rollback(Transacao);
          end;
    end;
GOSTEI 0
Bruno Henrique

Bruno Henrique

19/08/2015

Alguém Ajuda???
GOSTEI 0
Mateus Ribeiro

Mateus Ribeiro

19/08/2015

Bom dia!

No seu botão de SALVAR, faça uma verificação de qual modo seu ClientDataSet está: Em modo de INSERT ou EDIT.

Basicamente é isso:

if ClientDataSet.State in [dsInsert] then // Se estiver em modo de INSERT
  begin
    
   // AQUI FICA SEU TODO SEU CÓDIGO DE INSERT

  end;

if ClientDataSet.State in [dsEdit] then // Se estiver em modo de EDIÇÃO
  begin

    // AQUI FICA TODO SEU CÓDIGO DE SALVAR UMA EDIÇÃO, exemplo:
   UPDATE CADCLIENTES SET CODIGO = 1, SITUACAO = 'NAO',  DATACADASTRO = '20/08/2015', ULTIMAALTERACAO = '19/08/2015' .......

  end;


Espero que ajude, boa sorte!
GOSTEI 0
Bruno Henrique

Bruno Henrique

19/08/2015

Mateus, boa tarde!!!

Obrigado pela ajuda!!!

Ainda tenho dúvidas!!!


O meu é um SqlDataSet da paleta dbexpress, e não um clientdataset, mesmo assim dá certo????

Grato
GOSTEI 0
Bruno Henrique

Bruno Henrique

19/08/2015

Mateus, boa noite!!!

Funcionou certinho!!! Muito Obrigado!!!

Agora estou com outro probleminha os dados não atualiza no dbgrid, apenas quando eu saio do sistema(quando eu cito saio do sistema é fechar tudo mesmo e voltar para o codigo) e abro novamente, ai sim ele atualiza, como eu faço para atualizar em tempo de execução!!!

Já tentei.

sqldataset.Close;
sqldataset.Open;


clientedataset.active := True;
clientedataset.Close;
clientedataset.Open;


sqldataset.refresh;


Não sei mesmo como fazer!!!
GOSTEI 0
Bruno Henrique

Bruno Henrique

19/08/2015

RESOLVIDO
GOSTEI 0
POSTAR