Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   List Index Out of Bounds(1) (https://www.clubdelphi.com/foros/showthread.php?t=56591)

Paulao 21-05-2008 16:33:12

List Index Out of Bounds(1)
 
Siempre que pongo mi Provider en Run Time, me lo da este error, pero si yo pongo fijo este error no viene, pero yo necesito que mi Provider sea en Run Time y no fijo. Si yo pongo una Query asi: Select * from tabla, con Provider en Run Time, este error no me lo da, pero si pongo mi select real, entonces viene el error. Mi query esta abajo:
Código Delphi [-]
Cds.Close;
  Cds.ProviderName := 'dspTB_SAC_NF_CAPEADOR';
  Cds.CommandText := ' SELECT'+
                     '  SUM(COALESCE(TB_SAC_NF_CAPEADOR.VL_BRUTO,0) + COALESCE(TB_SAC_NF_CAPEADOR.VL_DESC_ACR,0)) AS VL_LIQ' +
                     ' FROM' +
                     '  TB_SAC_NF_CAPEADOR' +
                     ' WHERE' +
                     '  (TB_SAC_NF_CAPEADOR.CD_FUNC = 99999) AND' +
                     '  (TB_SAC_NF_CAPEADOR.ST_CANC = 0) AND' +
                     '  ((TB_SAC_NF_CAPEADOR.SR_NF = ''D2'') OR  ((TB_SAC_NF_CAPEADOR.SR_NF = ''B2'') AND' +
                     '  (TB_SAC_NF_CAPEADOR.CD_CFOP = 6102)))';
  Cds.Open;

duilioisola 21-05-2008 18:50:14

Se me ocurre que el Provider no esté conectado o abierto.
Chequea que esté abierto antes de ejecuter este código que envías.

Código Delphi [-]
if (not Provider.Avtive) then
   Provider.Open;
CDS.Close;
...

Paulao 21-05-2008 20:12:14

Mira, si yo pongo asi:

Select * from TB_SAC_NF_CAPEADOR
Asi funciona, pero si yo traigo solo uno o mas campos, pero no todos, entonces me lo da el error.

eduarcol 21-05-2008 21:21:27

Cita:

Empezado por Paulao (Mensaje 288397)
Mira, si yo pongo asi:

Select * from TB_SAC_NF_CAPEADOR
Asi funciona, pero si yo traigo solo uno o mas campos, pero no todos, entonces me lo da el error.

eso me hace pensar que en algun lado estas recorriendo los campos, y llega el momento que haces referencia a un numero de campo mayor a los que tiene

duilioisola 22-05-2008 07:55:26

Fíjate qué es lo que tienes en los métodos Before/AfterOpen Before/AfterScroll de CDS.
También debes comprobar si tienes campos persistentes y si estos tiénen algún método creado por tí.

Campos Persistentes son los que creas en diseño. Botón derécho sobre CDS --> Fields Editor --> Add Fields/Add All Fields.


La franja horaria es GMT +2. Ahora son las 20:05:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi