 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Lun 18 Ago, 2003 11:40 am Asunto: Arrancar servidor Interbase/Firebird desde Builder |
|
|
Hola chicos estoy intentando arrancar el servidor Interbase/Firebird desde Builder C++, porque a veces sucede cuando arrancas la maquina que se dedica a tareas de servidor, que no se ha arrancado Interbase, incluso aunque está puesto como arranque automatico al inicio del sistema. El codigo en cuestión es este, por ahora no estoy comprobando si ya está ejecutado, simplemente estoy probando que funcione. (Este sería un buen truco para ponerlo en la sección de trucos).
| Código: |
TIBConfigService *IBCS_Interbase=new TIBConfigService(this);
IBCS_Interbase->ServerName="Poulet";
IBCS_Interbase->LoginPrompt=false;
IBCS_Interbase->Params->Add("user_name=SYSDBA");
IBCS_Interbase->Params->Add("password=masterkey");
IBCS_Interbase->DatabaseName="C:\\Trafico\\trafico.gdb";
IBCS_Interbase->Active=true;
try {
IBCS_Interbase->BringDatabaseOnline();
} catch (const Exception &e) {
IBCS_Interbase->Active=false;
ShowMessage("No se ha podido levantar el servidor");
}
delete IBCS_Interbase;
|
El codigo funciona de la siguiente manera. Si el servicio no estaba arrancado, la primera vez que se ejecute este codigo funciona sin problemas. Te arranca el servidor y puedes seguir funcionando ya sea con BDE, IBX, o lo que sea, ya que lo que hace es arrancarte el servidor. El problema viene cuando por ejemplo apago el servidor haciendo un Shutdown del servidor sobre el administrador de Interbase o el IBGuardian, sucede que al ejecutarlo la segunda vez entonces da un error y no funciona da el error:
...raised excepction class EIBInterBaseError with message 'Cannot attach to services manager'. Process stopped...blah blah blah
Lo gracioso del asunto es que si a continuación abro IBConsole y selecciono una BD, me arranca el motor, entonces cierro IBConsole, a continuación vuelvo a hacer un shutdown de Interbase de la misma forma que antes, pinchando con el boton derecho del raton sobre el icono de Interbase Server que hay en el System Tray y selecciono ShutDown, si vuelvo a ejecutar el codigo va perfectamente otra vez.
Entonces mi pregunta es ? Que sucede ? me falta algun parametro con el que arrancar el servidor, que hace que al hacer el shutdown del servidor la proxima vez de el fallo? (Una pregunta un poco retorcida pero bueno).
Venga alguna sugerencia please. |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Lun 18 Ago, 2003 6:29 pm Asunto: |
|
|
| Bueno depurando IBConsole me he dado cuenta de que no lo hace de esta manera, sino que lo hace mirando en el registro y ejecutando el proceso, en cuanto lo tenga el codigo pasado a Builder lo pondré como truco. Ciao. |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Lun 18 Ago, 2003 11:02 pm Asunto: |
|
|
Bueno pues ya está terminado el codigo lo teneis aqui:
https://cppbuilder.es/viewtopic.php?t=6181
Al final el metodo es simplemente ir al registro ver donde se encuentra instalado el ibserver y crearlo como proceso llamado. Va estupendamente, yo lo he probado con Firebird, pero debe ir con Interbase, de hecho la entrada del registro que consulta es la de Interbase. Ciao. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|