SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: kekabzo en Lunes 22 de Mayo de 2006, 17:25

Título: Recorrer Tabla
Publicado por: kekabzo en Lunes 22 de Mayo de 2006, 17:25
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
Título: Re: Recorrer Tabla
Publicado por: SkaJaf en Sábado 27 de Mayo de 2006, 13:46
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
Título: Re: Recorrer Tabla
Publicado por: Linspire en Domingo 28 de Mayo de 2006, 20:14
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: