Ver Mensaje Individual
  #2  
Antiguo 07-11-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Reputación: 18
Gabo Va por buen camino
Solucionado

Bueno, tras un descanso pude con el problema...

Guardo todos los codigos en un vector temporal (así me aseguro de no perderlos) y, luego, los paso al vector definitivo tras comprobar que sean de un registro que se corresponde con un nodo hoja.

Código:
 
void __fastcall TForm1::obtenerhojas (int codigo)
{
   vector <int> codTemp;
   vector <bool> hojaTemp;
   DataModule->Query->Close();
   DataModule->Query->SQL->Clear();
   DataModule->Query->SQL->Add("SELECT ARBOL_CODIGO, ARBOL_ESHOJA FROM ARBOL \
                                  WHERE ARBOL_CODPADRE=:codigo and ARBOL_BORRADO=0 ORDER BY ARBOL_ORDEN");
   DataModule->Query->ParamByName("codigo")->AsInteger=codigo;
   DataModule->Query->Prepare();
   DataModule->Query->Open();
   DataModule->Query->First();
   while(!DataModule->Query->Eof)
   {
        int codigo= DataModule->Query->FieldByName("ARBOL_CODIGO")->AsInteger;
        bool esHoja=  DataModule->Query->FieldByName("ARBOL_ESHOJA")->AsInteger == 1;
        codTemp.push_back(codigo);
        hojaTemp.push_back(esHoja);
        DataModule->Query->Next();
   }
   for(unsigned int i=0; i<hojaTemp.size(); i++)
   {
      int codigo= codTemp[i];
      bool esHoja= hojaTemp[i];
      if (esHoja)
      {
         codigos.push_back(codigo);
      }else{
         obtenerhojas(codigo);
      }
   }
}
Gracias a todos por su tiempo...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita