![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
|
Recursividad. Obtener registros que sirven como nodo hoja.
Hola de nuevo,
![]() Verán estoy un poco atorado con un procedimiento recursivo, a ver si me pueden "echar una mano". Se trata de éste: Código:
void __fastcall TForm1::obtenerhojas (int codigo)
{
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)
{
if (DataModule->Query->FieldByName("ARBOL_ESHOJA")->AsInteger == 1)
{
int cod= DataModule->Query->FieldByName("ARBOL_CODIGO")->AsInteger;
codigos.push_back(cod);
}else{
int cod= DataModule->Query->FieldByName("ARBOL_CODIGO")->AsInteger;
obtenerhojas(cod);
}
DataModule->Query->Next();
}
}
Código:
vector <int> codigos; Supongamos que la primera vez le paso el codigo 683 que corresponde a la siguiente jerarquía: Código:
683 - 684 - 685 - 686
- 687
- 688
- 689 - 690
- 691
- 695 - 693
La razón creo tenerla clara y es que al entrar cada vez y ejecutar la consulta de nuevo, el contenido se borra. Es decir, la primera vez obtiene 684, 688, 689, 691 y 695. La segunda vez, analiza el 684, pero cuando vuelve no puede seguir con el 688 ya que los datos se han perdido. ¿Alguna idea sobre cómo abordar el problema?
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Archivos _QSQLXXXX ¿Que son? ¿Para que sirven? ¿Como se crean? | Wonni | Conexión con bases de datos | 2 | 13-08-2007 09:37:43 |
| Obtener un fichero adjunto a un nodo de un fichero XML | muntasil | Internet | 0 | 18-07-2006 12:57:57 |
| Como selecionar un nodo de un TTreeView | VRO | OOP | 2 | 18-05-2005 16:45:24 |
| Como puedo eliminar un nodo de un TTreeVieu | didier | OOP | 1 | 15-07-2004 19:33:38 |
| FastReport salgan dos registros por hoja | cahosoft | Impresión | 0 | 13-07-2004 18:13:02 |
|