Zquery post depois de consulta com inner join

Delphi

Firebird

02/05/2016

Boa tarde, estou utilizando um zquery no delphi 7, porem, minha SQL faz a uniao de varias tabelas trazendo campos estrangeiros dessas tabelas, acontece que depois que gera o filtro da consulta atraves do select nao consigo salvar dados caso tenho que alterar alguma informacao, o zquery passa pelo post mas deve acontecer alguma excessao devido os campos estrangeiros.

veja meu select

    db_MvtBancaria.Close;
    db_MvtBancaria.Params.Clear;
    db_MvtBancaria.SQL.Clear;

    db_MvtBancaria.SQL.Add('select tbl_mvtbancaria.codigo, tbl_mvtbancaria.nrodocto, tbl_mvtbancaria.datalancto, tbl_mvtbancaria.datacomp, tbl_mvtbancaria.valor, ');
    db_MvtBancaria.SQL.Add('tbl_mvtbancaria.complemento, tbl_mvtbancaria.id_fornecedor,  coalesce( (SELECT tbl_fornecedor.nome FROM tbl_fornecedor tbl_fornecedor WHERE tbl_fornecedor.codfornecedor = tbl_mvtbancaria.id_fornecedor), '''' ) as FAVORECIDO, ');
    db_MvtBancaria.SQL.Add('tbl_mvtbancaria.nominal, tbl_mvtbancaria.tipo, tbl_mvtbancaria.operacao, tbl_mvtbancaria.situacao, tbl_mvtbancaria.datacanc, tbl_mvtbancaria.impressao, tbl_mvtbancaria.conciliado, tbl_mvtbancaria.codctabancaria, ');
    db_MvtBancaria.SQL.Add('tbl_mvtbancaria.credito, tbl_mvtbancaria.debito, tbl_mvtbancaria.empenho, tbl_mvtbancaria.dt_cadastro, tbl_mvtbancaria.status, tbl_mvtbancaria.dt_alteracao, tbl_mvtbancaria.receita_despesa, ');
    db_MvtBancaria.SQL.Add('tbl_banco.numerobanco as NR_BANCO, tbl_banco.nome as N_BANCO, tbl_agencia.endereco as AG_ENDERECO, tbl_contabancaria.numeroconta as NR_CONTA, tbl_mvtbancaria.codhistorico, tbl_historico.nome as HISTORICO, tbl_historico.operacao as H_OPERACAO, ');
    db_MvtBancaria.SQL.Add('tbl_mvtbancaria.dataconc, tbl_mvtbancaria.nrodoc, tbl_mvtbancaria.credito, tbl_mvtbancaria.debito, tbl_mvtbancaria.empenho, tbl_mvtbancaria.dt_cadastro, tbl_mvtbancaria.status, tbl_mvtbancaria.dt_alteracao, ');
    db_MvtBancaria.SQL.Add('tbl_mvtbancaria.conta, tbl_mvtbancaria.tipooperacao, tbl_mvtbancaria.rec_des, tbl_mvtbancaria.receita_despesa, tbl_mvtbancaria.ano ');
    db_MvtBancaria.SQL.Add('from tbl_mvtbancaria ');
    db_MvtBancaria.SQL.Add('inner join tbl_contabancaria on (tbl_mvtbancaria.codctabancaria = tbl_contabancaria.codcontabancaria) ');
    db_MvtBancaria.SQL.Add('inner join tbl_agencia on (tbl_contabancaria.codagencia = tbl_agencia.codagencia) ');
    db_MvtBancaria.SQL.Add('inner join tbl_banco on (tbl_agencia.codbanco = tbl_banco.codbanco) ');
    db_MvtBancaria.SQL.Add('inner join tbl_historico on (tbl_mvtbancaria.codhistorico = tbl_historico.codhistorico) ');

    wTudo := '(tbl_mvtbancaria.DATALANCTO >= :AData1) AND (tbl_mvtbancaria.DATALANCTO <= :AData2)';


ja alterei na propriedade providerflags (pflnupdate e pflnwhere) para false dos campos estrangeiros mas mesmo assim nao funciona.

o que tenho que fazer para que os campos estrangeiros nao entre no update.
Iramar Junior

Iramar Junior

Curtidas 0
POSTAR