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 |
|