Fórum Erro QRYADO #400953
12/05/2011
0
Alguem se puder me ajudar...
Fiz este select no delphi mas ele só me traz a primeira linha, não retorna a segunda linha.
procedure TfrmRelatParcial.BuscaDados; begin vCont := 1; BuscaQuantidadeLinha; with dtm.DataModule1.Qry_Dados_Linhas do begin Close; SQL.Clear; while vCont <= vQtdeLinha do begin SQL.Add('Select '); SQL.Add('PSG.PSG_ID,'); SQL.Add('TT.TT_LONGDESC CARTÃO,'); SQL.Add('CSE.CS_LABEL LABEL,'); SQL.Add('PSG.PSG_FIRSTNAME NOME_PSG,'); SQL.Add('LM.LNM_ID ID_LINHA,'); SQL.Add('LM.LNM_DESCSHORT LINHA,'); SQL.Add('CT.CSTT_VLDSTADATE CRIADO,'); SQL.Add('CT.CSTT_VLDENDDATE VALIDADE'); SQL.Add('FROM'); SQL.Add('PASSENGERS PSG,'); SQL.Add('CARDSTOCKXTICKETTYPES CT,'); SQL.Add('LINEMT LM,'); SQL.Add('TICKETTYPES TT,'); SQL.Add('CARDSTOCKEXTRA CSE,'); SQL.Add('CARDSTOCKXPASSENGERS CP,'); SQL.Add('PSGTCKTTYPESXLINEMT PTL,'); SQL.Add('PASSENGERSXTICKETTYPES PT'); SQL.Add('WHERE'); SQL.Add('PSG.PSG_ID = CP.PSG_ID'); SQL.Add('AND CSE.CS_SNR = CP.CS_SNR'); SQL.Add('AND CSE.CS_SNR = CT.CS_SNR'); SQL.Add('AND CP.CSP_STATUS = ''A'''); SQL.Add('AND PSG.PSG_ID = PT.PSG_ID'); SQL.Add('AND TT.TT_CODE = PT.TT_CODE'); SQL.Add('AND PT.PSG_ID = PTL.PSG_ID'); SQL.Add('AND PT.PTT_SEQNBR = PTL.PTT_SEQNBR'); SQL.Add('AND PT.TT_CODE = PTL.TT_CODE'); SQL.Add('AND PTL.LNM_ID = LM.LNM_ID'); SQL.Add('AND CSE.CS_LABEL =' + edtNumCartao.Text +''); OPEN; vCodLinha := FieldByName('ID_LINHA').AsInteger; vCont := vCont + 1; NEXT; end; end; end;
POR FAVOR, NÃO SE PREOCUPEM COM AS VARIAVEIS, POIS ELAS ESTÃO FUNCIONANDO;
ATT
Fiz este select no delphi mas ele só me traz a primeira linha, não retorna a segunda linha.
procedure TfrmRelatParcial.BuscaDados; begin vCont := 1; BuscaQuantidadeLinha; with dtm.DataModule1.Qry_Dados_Linhas do begin Close; SQL.Clear; while vCont <= vQtdeLinha do begin SQL.Add('Select '); SQL.Add('PSG.PSG_ID,'); SQL.Add('TT.TT_LONGDESC CARTÃO,'); SQL.Add('CSE.CS_LABEL LABEL,'); SQL.Add('PSG.PSG_FIRSTNAME NOME_PSG,'); SQL.Add('LM.LNM_ID ID_LINHA,'); SQL.Add('LM.LNM_DESCSHORT LINHA,'); SQL.Add('CT.CSTT_VLDSTADATE CRIADO,'); SQL.Add('CT.CSTT_VLDENDDATE VALIDADE'); SQL.Add('FROM'); SQL.Add('PASSENGERS PSG,'); SQL.Add('CARDSTOCKXTICKETTYPES CT,'); SQL.Add('LINEMT LM,'); SQL.Add('TICKETTYPES TT,'); SQL.Add('CARDSTOCKEXTRA CSE,'); SQL.Add('CARDSTOCKXPASSENGERS CP,'); SQL.Add('PSGTCKTTYPESXLINEMT PTL,'); SQL.Add('PASSENGERSXTICKETTYPES PT'); SQL.Add('WHERE'); SQL.Add('PSG.PSG_ID = CP.PSG_ID'); SQL.Add('AND CSE.CS_SNR = CP.CS_SNR'); SQL.Add('AND CSE.CS_SNR = CT.CS_SNR'); SQL.Add('AND CP.CSP_STATUS = ''A'''); SQL.Add('AND PSG.PSG_ID = PT.PSG_ID'); SQL.Add('AND TT.TT_CODE = PT.TT_CODE'); SQL.Add('AND PT.PSG_ID = PTL.PSG_ID'); SQL.Add('AND PT.PTT_SEQNBR = PTL.PTT_SEQNBR'); SQL.Add('AND PT.TT_CODE = PTL.TT_CODE'); SQL.Add('AND PTL.LNM_ID = LM.LNM_ID'); SQL.Add('AND CSE.CS_LABEL =' + edtNumCartao.Text +''); OPEN; vCodLinha := FieldByName('ID_LINHA').AsInteger; vCont := vCont + 1; NEXT; end; end; end;
POR FAVOR, NÃO SE PREOCUPEM COM AS VARIAVEIS, POIS ELAS ESTÃO FUNCIONANDO;
ATT
Flavio Silva
Curtir tópico
+ 0
Responder
Posts
12/05/2011
Wilson Junior
Me explica o que vc quer fazer, pois não consegui entender porque vc abre Query e depois da um Next e depois retorna ao loop e abre novamente e manda pegar o próximo...não entendi o que vc quer fazer.
Eu deduzo que vc quira fazer isto:
Espero ter colaborado.
Eu deduzo que vc quira fazer isto:
begin
vCont := 1;
BuscaQuantidadeLinha;
with dtm.DataModule1.Qry_Dados_Linhas do
begin
Close;
SQL.Clear;
SQL.Add('Select ');
SQL.Add('PSG.PSG_ID,');
{ ... }
Open;
First;
while (vCont <= vQtdeLinha) or (not Eof) do
begin
vCodLinha := FieldByName('ID_LINHA').AsInteger;
vCont := vCont + 1;
Next;
end;
end;
end;
Espero ter colaborado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)