Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Aplicacion que se cierra sola

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Aplicacion que se cierra sola Responder citando

Bueno, se que no doy muchos datos porque en realidad no se donde puede estar el problema.

Tengo una aplicacion que me ha funcionado perfectamente en mi equipo y en el de mi compañero de trabajo. Es el tipico form con un menu para abrir otros forms y demas. Trabaja con base de datos y es cliente/servidor.

El problema (y no pasa siempre) es que en el ordenador de mi cliente, tras hacer un ejecutable, configurar rutas y demas, al elegir una opcion de menú, en lugar de mostrar el formulario correctamente, la aplicación se cierra, sin dar ningún tipo de excepción. Lo mismo funciona correctamente la aplicación o se produce este fallo.

No se, no se que mas datos daros pues no termino de comprender que puede estar fallando. A ver si podeis ayudarme o a ver si os ha pasado alguna vez algo parecido. Gracias.
Volver arriba
Mensaje    Asunto: Responder citando

TE sugiero que compiles con opciones de debug.

Luego, es posible q lo q anda en Win98, no ande en Win 2000 o XP, ya que son SO más estables, digamos.

Otra cosa, es intentar saber el punto de exacto de cuelgue para luego revisar. Siguiendo la linea podrías programar una bitácota del sistema que vaya agregando en un simple archivito, que ha ido pasando con el sistema. Esto te permitirá hacer una ingeniería inversa del problema.

atte
_________________
Adrián

http://adrian.org.ar
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

La aplicacion la he desarrollado en w2000. De momento lo unico que he conseguido averiguar es lo siguiente. En el evento onShow de uno de los formularios que suele hacer que la aplicacion se cierre tengo el siguiente código:

Código:

void __fastcall TformTratamientoRiesgosEvitables::FormShow(TObject *Sender)
{
        GB_RieEvi->Enabled=false;
        btNuevoInforme->Enabled = true;
        btSiguientePuesto->Enabled = false;
        btAsignarCausa->Enabled = true;
        GB_Pue->Enabled = false;
        btTratarPuesto->Enabled=true;
        GB_Con->Enabled = true;
        btNuevoInforme->Enabled = true;
        btAceptar->Enabled = true;

        try
        {
                //Ejecutamos la consulta del Query y sacamos los contratos
                DM_prevensys->IBQ_SelInfTec->Close();
                DM_prevensys->IBQ_SelInfTec->ParamByName("dni")->AsString = formIdentificacion->Label_id_tecnico->Caption;
                DM_prevensys->IBQ_SelInfTec->ParamByName("tipo")->AsString = "RE";
                DM_prevensys->IBQ_SelInfTec->Open();
                DM_prevensys->IBQ_SelInfTec->First();

                //Borramos lo que hubiese en el Combo Informes
                CB_Inf->Clear();
                //Recorremos el Query para ir insertando en el ComboBox
                while (!(DM_prevensys->IBQ_SelInfTec->Eof)) {
                        CB_Inf->Items->Add(DM_prevensys->IBQ_SelInfTecID_INFORME->Value);
                        DM_prevensys->IBQ_SelInfTec->Next();
                }
                //Cerramos el Query
                DM_prevensys->IBQ_SelInfTec->Close();

                //Ejecutamos la consulta del Query y sacamos los nombres
                //de los riesgos que hay en la BD

                DM_prevensys->IBQ_SelRie->Open();
                DM_prevensys->IBQ_SelRie->First();

                //Borramos lo que hubiese en el Combo
                CB_RieEvi->Items->Clear();

                //Recorremos el Query para ir insertando en el ComboBox
                while (!(DM_prevensys->IBQ_SelRie->Eof)) {
                        CB_RieEvi->Items->Add(DM_prevensys->IBQ_SelRieNOMBRE->Value);
                        DM_prevensys->IBQ_SelRie->Next();
                }
                //Cerramos el Query
                DM_prevensys->IBQ_SelRie->Close();

        } catch(...) {
                String error = AnsiString("ERROR. Problema con la base de datos. Avise al Administrador.") +
                        AnsiString("LOCALIZACION: onShow/ModificarPuestoEvitable.cpp");
                ShowMessage(error);
        }

}



La consulta DM_prevensys->IBQ_SelRie lo que hace es un select de una tabla de la base de datos que devuelve una lista de nombres de riesgos, lo curioso es que cuando los añade en el combo CB_RieEvi, algunos de los riesgos aparecen cortados y terminan en "2" o "^". Sin embargo en la base de datos están bien guardados. Creo que algo de esto es lo que hace que se cierre la aplicación, porque a veces en lugar de cerrar salta excepcion y no entiendo por que, puesto que lo unico que hago es consultar. A ver si alguien puede despejarme las dudas.
Volver arriba
Mensaje    Asunto: Responder citando

Pues rarisimo, IBQ_SelRie al meterse en el while funciona bien, al ejecutarse el mismo while en otro formulario acto seguido, falla en el ultimo elemento (exactamente el mismo codigo). He borrado la Query, la he vuelto a crear (con las mismas propiedes) y ahora va bien. Eso si, ni idea de porqué.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.