Botão Gravar / Alterar - Erro
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!!!
[img:descricao=Form de Cadastro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213803.jpg[/img]
[img:descricao=Mensagem do Erro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213952.jpg[/img]
Código do botão gravar
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
Curtidas 0
Melhor post
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
Isso foi só um exemplo, adapta aí da maneira q vc achar melhor ^^
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
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!!!
[img:descricao=Form de Cadastro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213803.jpg[/img]
[img:descricao=Mensagem do Erro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150819-213952.jpg[/img]
Código do botão gravar
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
19/08/2015
Alguém Ajuda???
GOSTEI 0
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:
Espero que ajude, boa sorte!
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
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
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
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.
Não sei mesmo como fazer!!!
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
19/08/2015
RESOLVIDO
GOSTEI 0