Distribuir programa

Hace poco hice un pequeño programa que utiliza una base de datos para cargarle información, y me gustaría que me digas como tengo que hacer para poder hacerlo funcionar en otra computadora (¿qué archivos debo copiar, y otras características para que funcione bien?).
Te cuento que destilde las opciones:
Linker: Desmarcar la checkbox 'Use dynamic RTL'
Packages: Desmarcar la checkbox 'Build with runtime packages'.
Hasta ahí todo bien, genera un exe que anda al pelo, pero cuando lo utilizo en otra computadora me dice que el path de la base de datos esta mal y aparece el que esta en mi computadora. ¿Cómo puedo resolver esto?
Utilizo Builder C++ 5

1 respuesta

Respuesta
1
Veo que has elegido algunas opciones para compilar estáticamente, asegurate que compilas estáticamente todo, te queda un ejecutable más grande, pero te aseguras que no te pida librerías en ejecución, pero este no es el problema.
Creo que se debe a que la conexión a la base de datos necesita de una cadena de conexión en la que se indica donde esta la base de datos y si es una conexión ADO, ODBC, ACCESS ..., la que sea. Para que tu programa funcione correctamente tienes desde luego que a la vez que llevar el ejecutable al otro ordenador llevar la base de datos (a no ser que uses una conexión remota, pero como no especificas mucho el problema, pues supongo que no es el caso), y reproducir en este ordenador la secuencia de directorios que tienes en el ordenador donde todo funciona, si tienes:
ejecutable en -> c:\Miprograma\
base de datos -> c:\Miprograma\base_de_datos
En el otro ordenador crea estos directorios y guarda cada cosa en su sitio.
Si este no es el error especifícame más cual es tu problema:
¿Qué tipo conexión a la base de datos usas?
¿Cómo creaste esta conexión, tu a base de código o con un asistente del Builder?
El problema es así, tengo el programa en C:/PROGRAMAS/PRUEBA (ahí se encuentra el exe) y la base de datos se encuentra en C:/PROGRAMAS/PRUEBA/DATOS, la base de datos esta hecha en Paradox es extensión DB.
Mi problema es que quiero llevarlo a otra computadora y me aparece el siguiente error:
BASE DE DATOS NO ENCONTRADA, C:/PROGRAMAS/PRUEBA/DATOS.
Lo que quiero hacer es que no importa donde este ubicada la base funcione igual.
Espero me haya explicado bien.
Saludos
Bien, quieres que el programa busque el solo la base de datos dentro del propio ordenador supongo, porque esto no me lo aclaras si quieres conectarte desde un ordenador cualquiera al que tiene la base de datos o buscarla dentro del propio ordenador.
Veamos los dos casos:
Conexión remota: desde luego necesitas programarlo a saco, tendrías que establecer una comunicación con el otro ordenador por sockets y demás. El ordenador solo por arte de magia no se va a ir a buscar la base de datos por la red. Desde luego el ordenador remoto donde este la base de datos debe estar encendido y con un programa que acepte las peticiones de otros ordenadores. Pero creo que esto no es lo que quieres.
Conexión local: tu llevas el ejecutable y la base de datos a otro ordenador y los metes en el directorio que te de la gana. Para encontrar la base de datos como sabes su nombre existen funciones ( que tienes que meter en el programa y compilarlo) que encuentran un fichero, el nombre de las funciones no lo se porque yo uso VisualC++ y no Builder, en la MFC existen, supongo que Borland también las tendrá, mira la ayuda de funciones. Entonces con esta función obtienes una cadena en la que esta el path entero de donde esta la base de datos, ahora coges y en la clase que se encarga de la conexión con la base de datos lo que haces es añadir una variable que es la que va a contener el path de la base de datos y donde se construya el string de conexión cambias el path fijo que tienes "C:/PROGRAMAS/PRUEBA/DATOS" por esta variable, así cada vez que arranques el programa llamas a la función de obtener el path de la base de datos, le pasas esta variable a la clase encargada de la conexión con la base de datos y por ultimo que se cree la conexión a la base de datos.
Con esto ya tienes el programa independiente del path de la base de datos siempre que esta este en el mismo ordenador donde esjecutas el programa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas