• Sábado 4 de Mayo de 2024, 05:15

Autor Tema:  Recorrer Tabla  (Leído 1508 veces)

kekabzo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Recorrer Tabla
« en: Lunes 22 de Mayo de 2006, 17:25 »
0
Hola amigos, otra vez...aqui..esto es interminable!!

Esta vez la duda q me surge, es la siguiente:

Tengo una tabla DEUDAS, en la q hay un importe por cada apunte, y yo calculo una cosa, para q cada importe de esa deuda se le reste una cantidad.
Pero no me recorre toda la tabla, pq solo me lo hace en el primero...

el codigo es este:

    qrApuntes->SQL->Clear();
    qrApuntes->Close();
    qrApuntes->SQL->Add("SELECT importe");
    qrApuntes->SQL->Add("FROM deudas");
    qrApuntes->SQL->Add("WHERE idMatricula=:idmatri");
    qrApuntes->ParamByName("idmatri")->AsInteger=id;//lo saco en otra arriba
    qrApuntes->Open();
    importe=qrApuntes->FieldByName("importe")->AsFloat;
    while(!qrApuntes->Eof)
    {
   // qrApuntes->SQL->Clear();
    //qrApuntes->Close();
    qrApuntes->SQL->Add("UPDATE deudas");
    qrApuntes->SQL->Add("SET importe=:im");
    qrApuntes->SQL->Add("WHERE idMatricula=:idmatri");
    qrApuntes->ParamByName("idmatri")->AsString =id;
    qrApuntes->ParamByName("im")->AsFloat=(importe - resta);
    qrApuntes->ExecSQL();
    qrApuntes->Next();
    }


como lo puedeo hacer..muchas gracias

SkaJaf

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Recorrer Tabla
« Respuesta #1 en: Sábado 27 de Mayo de 2006, 13:46 »
0
Comprueba que el datasource esté bien configurado, es decir, que como dataset tenga tu tabla y además despues del open situa la tabla al principio con first
Un saludo

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Recorrer Tabla
« Respuesta #2 en: Domingo 28 de Mayo de 2006, 20:14 »
0
Espero no haber llegado tarde para responderte.

La razón de que solo te lo haga en una fila (creo que eso dijiste) es porque solo le estás diciendo (ejemplo)

 importe=qrApuntes->FieldByName("importe")->AsFloat;

En este caso solo está haciendo el cálculo para la fila seleccionada, y así lo irá haciendo si recorres manualmente la tabla.

Para que te lo haga todo debes recorrer la tabla con un ciclo for, ya se que recorras solo los renglones o las columnas, o si es necessario recorrer ambas pues utiliza un ciclo for doble. Sic.

Espero te sirva y me hayas entendido.


Saludos. :hola:  :smartass:  :whistling:  :comp:  :lightsabre:
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.