ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[RESOLVIDO] Erro de conversão no insert com TClientDataSet

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
eduardoserrao
Novato
Novato


Registrado: Segunda-Feira, 28 de Novembro de 2016
Mensagens: 78

MensagemEnviada: Ter Mar 21, 2017 10:59 am    Assunto: [RESOLVIDO] Erro de conversão no insert com TClientDataSet Responder com Citação

Bom dia pessoal,
estou com um problema ao tentar realizar um insert pelo clientdataset através do commandText.
O estranho é que quando comento um método anterior o insert funciona normalmente.

Código:
  salvaUltimaCompraCliente;
  idPrevenda := salvarPrevenda;
  salvaVistaPrevenda(idPrevenda);
  salvarPrazoPrevenda(idPrevenda); //se comentar este método não acontece o erro
  salvarItensPrevenda(idPrevenda); //onde acontece o erro


o método que acontece o problema é o salvarItensPrevenda, o erro que dá é: could not convert variant of type (OleStr) into type (String), que seria um erro de conversão, o erro acontece exatamente quando chamo o método execute do clientdataset. porém se eu comentar o método anterior no caso o salvarPrazoPrevenda, consegue salvar normalmente.

no método salvarNumerarioPrazoPrevenda eu uso o mesmo clientdataset para fazer uma consulta e depois para fazer um insert:

Código:
DM.cdsAux.Close;
DM.cdsAux.CommandText := SQL_PROX_ID;
DM.cdsAux.ParamByName('idTerminal').Value := idTerminal;
DM.cdsAux.Open;

if DM.cdsAux.FieldByName('CONTADOR').AsInteger <> null then
  proxCod := DM.cdsAux.FieldByName('CONTADOR').AsInteger + 1
else
  proxCod := 1;

DM.cdsAux.Close;
DM.cdsAux.CommandText := SQL_PRAZO;
DM.cdsAux.ParamByName('1').Value := proxCod;
DM.cdsAux.ParamByName('2').Value := DM.cdsParcPrazoTemp.FieldByName('TERMICOD').Value;
DM.cdsAux.ParamByName('3').Value := idPrevenda;
DM.cdsAux.Execute;


Posso realmente utilizar o commandText para para realizar comandos diferente de consultas? tava dando uma olhada na documentação do componente e lá ele não diz nada sobre isso, apenas que deve ser utilizado consultas. Seria esse o problema?
Alguém teria alguma ideia do que estaria causando este problema?


Editado pela última vez por eduardoserrao em Qui Mar 30, 2017 9:56 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
eduardoserrao
Novato
Novato


Registrado: Segunda-Feira, 28 de Novembro de 2016
Mensagens: 78

MensagemEnviada: Ter Mar 21, 2017 12:00 pm    Assunto: Responder com Citação

Pessoal acabei de realizar um teste aqui, alterando a SQL de insert do meu commandText para um select que não retorna nenhum resultado e utilizando o append, post e applyUpdates para realizar o insert e funcionou.

Para caso alguém tenha este mesmo problema, só não sei se esta alteração esta diretamente relacionado a este problema. mas imagino que sim...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB