SQL don't return rows
Posted: Mon 21 Nov 2005 18:19
Hi !
if execute this code, don't return any row..
qryLivro.SQL.Clear;
qryLivro.SQL.Add('SELECT ');
qryLivro.SQL.Add('NF.NF_CODIGO, NF.NF_DT_ENTRADA, NF.NF_SERIE, Nf.NF_NUM, NF.NF_DT_EMISSAO,');
qryLivro.SQL.Add('FORN.FOR_CODIGO, MUN.MUN_UF, PLA.PLA_NUM,NFP.NFPRO_CLC, TPD.TPD_SIGLA, NF_NRCONHEC, ');
qryLivro.SQL.Add('NF.PLA_CODIGO_FRETE, NF.NF_VLFRETE, NF.NF_FRETE_CLASSCONT, PLAFRETE.PLA_NUM as PLA_NUMFRETE, ');
qryLivro.SQL.Add('SUM(NFP.NFPRO_QTDE*NFP.NFPRO_VLR) as NF_VALCONT');
qryLivro.SQL.Add('FROM NOTAFISCAL NF');
qryLivro.SQL.Add('JOIN FORNECEDOR FORN ON (NF.FOR_CODIGO = FORN.for_codigo)');
qryLivro.SQL.Add('LEFT OUTER JOIN MUNICIPIO MUN ON (FORN.mun_codigo = MUN.MUN_CODIGO)');
qryLivro.SQL.Add('JOIN NF_PRO NFP ON (NFP.NF_CODIGO = NF.NF_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN PLACON PLA ON (NFP.PLA_CODIGO = PLA.PLA_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN PLACON PLAFRETE ON (NF.PLA_CODIGO_FRETE = PLAFRETE.PLA_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN TPDOC TPD ON (TPD.TPD_CODIGO = NF.TPD_CODIGO)');
qryLivro.SQL.Add('JOIN CFOP ON (CFOP.CFOP_CODIGO = NF.CFOP_codigo)');
qryLivro.SQL.Add('WHERE NF.NF_LIVROFISCAL = ''S''');
qryLivro.SQL.Add(' AND NF_DT_ENTRADA BETWEEN :NF_DT_ENTRADAINI AND :NF_DT_ENTRADAFIM');
qryLivro.SQL.Add(' AND NF.EMP_CODIGO = :EMP_CODIGO');
qryLivro.SQL.Add('GROUP BY ');
qryLivro.SQL.Add('NF.NF_CODIGO, NF.NF_DT_ENTRADA, NF.NF_SERIE, Nf.NF_NUM, NF.NF_DT_EMISSAO,');
qryLivro.SQL.Add('FORN.FOR_CODIGO, MUN.MUN_UF, PLA.PLA_NUM,NFP.NFPRO_CLC, TPD.TPD_SIGLA, NF_NRCONHEC,');
qryLivro.SQL.Add('NF.PLA_CODIGO_FRETE, NF.NF_VLFRETE, NF.NF_FRETE_CLASSCONT, PLAFRETE.PLA_NUM');
qryLivro.SQL.Add('order by nf.nf_dt_entrada, NF.nf_num');
qryLivro.ParamByName('NF_DT_ENTRADAINI').AsDateTime:=EncodeDate(2005,01,01);
qryLivro.ParamByName('NF_DT_ENTRADAFIM').AsDateTime:=EncodeDate(2005,01,30);
qryLivro.ParamByName('EMP_CODIGO').AsInteger:=1;
qryLivro.Open;
but, after any change on the instruction, like a space in some part, return rows.
Example:
Change:
qryLivro.SQL.Add('FROM NOTAFISCAL NF');
to
qryLivro.SQL.Add(' FROM NOTAFISCAL NF');
will return rows.
if execute this code, don't return any row..
qryLivro.SQL.Clear;
qryLivro.SQL.Add('SELECT ');
qryLivro.SQL.Add('NF.NF_CODIGO, NF.NF_DT_ENTRADA, NF.NF_SERIE, Nf.NF_NUM, NF.NF_DT_EMISSAO,');
qryLivro.SQL.Add('FORN.FOR_CODIGO, MUN.MUN_UF, PLA.PLA_NUM,NFP.NFPRO_CLC, TPD.TPD_SIGLA, NF_NRCONHEC, ');
qryLivro.SQL.Add('NF.PLA_CODIGO_FRETE, NF.NF_VLFRETE, NF.NF_FRETE_CLASSCONT, PLAFRETE.PLA_NUM as PLA_NUMFRETE, ');
qryLivro.SQL.Add('SUM(NFP.NFPRO_QTDE*NFP.NFPRO_VLR) as NF_VALCONT');
qryLivro.SQL.Add('FROM NOTAFISCAL NF');
qryLivro.SQL.Add('JOIN FORNECEDOR FORN ON (NF.FOR_CODIGO = FORN.for_codigo)');
qryLivro.SQL.Add('LEFT OUTER JOIN MUNICIPIO MUN ON (FORN.mun_codigo = MUN.MUN_CODIGO)');
qryLivro.SQL.Add('JOIN NF_PRO NFP ON (NFP.NF_CODIGO = NF.NF_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN PLACON PLA ON (NFP.PLA_CODIGO = PLA.PLA_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN PLACON PLAFRETE ON (NF.PLA_CODIGO_FRETE = PLAFRETE.PLA_CODIGO)');
qryLivro.SQL.Add('LEFT OUTER JOIN TPDOC TPD ON (TPD.TPD_CODIGO = NF.TPD_CODIGO)');
qryLivro.SQL.Add('JOIN CFOP ON (CFOP.CFOP_CODIGO = NF.CFOP_codigo)');
qryLivro.SQL.Add('WHERE NF.NF_LIVROFISCAL = ''S''');
qryLivro.SQL.Add(' AND NF_DT_ENTRADA BETWEEN :NF_DT_ENTRADAINI AND :NF_DT_ENTRADAFIM');
qryLivro.SQL.Add(' AND NF.EMP_CODIGO = :EMP_CODIGO');
qryLivro.SQL.Add('GROUP BY ');
qryLivro.SQL.Add('NF.NF_CODIGO, NF.NF_DT_ENTRADA, NF.NF_SERIE, Nf.NF_NUM, NF.NF_DT_EMISSAO,');
qryLivro.SQL.Add('FORN.FOR_CODIGO, MUN.MUN_UF, PLA.PLA_NUM,NFP.NFPRO_CLC, TPD.TPD_SIGLA, NF_NRCONHEC,');
qryLivro.SQL.Add('NF.PLA_CODIGO_FRETE, NF.NF_VLFRETE, NF.NF_FRETE_CLASSCONT, PLAFRETE.PLA_NUM');
qryLivro.SQL.Add('order by nf.nf_dt_entrada, NF.nf_num');
qryLivro.ParamByName('NF_DT_ENTRADAINI').AsDateTime:=EncodeDate(2005,01,01);
qryLivro.ParamByName('NF_DT_ENTRADAFIM').AsDateTime:=EncodeDate(2005,01,30);
qryLivro.ParamByName('EMP_CODIGO').AsInteger:=1;
qryLivro.Open;
but, after any change on the instruction, like a space in some part, return rows.
Example:
Change:
qryLivro.SQL.Add('FROM NOTAFISCAL NF');
to
qryLivro.SQL.Add(' FROM NOTAFISCAL NF');
will return rows.