PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Zquery post depois de consulta com inner join #552954

02/05/2016

0

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar