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 

Base de datos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Base de datos Responder citando

Hola a ver si alguien puede hecharme una mano, resulta que tengo hecha una aplicacion con base de datos ABS database que en mi equipo funciona a la pefección. La he hecho con BCB6.
El problema es que no se donde me guarda la dirección original del archivo de base de datos y no hay forma de cambiarla.
En el OnCreate del form tengo el siguiente código:
Código:

ABSDatabase1->DatabaseFileName = ExtractFilePath(Application->ExeName) + "\socis.abs";

En el mismo equipo si funciona pero en cuanto la paso a otro equipo al ejecutar la aplicación me sale un mensaje de error diciendo que no encuentra el archivo de base de datos (busca en el directorio original) y el archivo se encuentra en el mismo directorio de la aplicación.
Gracias.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

mira a ver si es problema de la doble barra que creo que hay que poner doble barra para que lo interprete bien el compilador

Código:
+ "\\socis.abs";
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Nada, ya lo había probado, me sigue dando el mismo error Crying or Very sad
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Solución Responder citando

Publico la solución por si a alguien le sirve de algo en el OnCreate del form principal:
Código:

   AnsiString rutaprograma = ExtractFilePath(Application->ExeName);
   ABSDatabase1->Close();
   ABSQuery1->Close();
   ABSQuery1->Active = false;
   ABSDatabase1->Connected = false;
   ABSDatabase1->DatabaseFileName = rutaprograma+"socis.abs";
   ABSDatabase1->Open();
   ABSQuery1->Open();
   ABSQuery1->Active = true;
   ABSDatabase1->Connected = true;

Laughing Laughing
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Falsa alarma sólo funciona en el equipo de origen en los otros no Sad
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿No tiene un antivirus (o algo del género) bloqueando el acceso?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

No ya lo he probado en montón de equipos y algo pasa pero no sé que es.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Por fín, resulta que el truco es que en tiempo de diseño la base de datos y los querys deben estar cerrados o inactivos y activarlos luego cuando el programa arraca, y así si que funciona:
Código:

void __fastcall TEsquinque::FormCreate(TObject *Sender)
{
   AnsiString rutaprograma = ExtractFileDir(Application->ExeName);
   ABSDatabase1->Close();
   ABSQuery1->Close();
   ABSDatabase1->DatabaseFileName = rutaprograma+"\\socis.abs";
   ABSDatabase1->Open();
   ABSQuery1->Open();
   ABSQuery1->Active = true;
   ABSDatabase1->Connected = true;
}

Laughing Laughing
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.