PDA

Ver la Versión Completa : correr un exe hecho en delphi desde un CD


ernestogiss
17-05-2007, 04:45:58
Hola a todos.
El problema que tengo es que he creado una aplicación y delphi la ha compilado en un .exe que se ejecuta perfectamente. La aplicación la grabe en un CD. pero cuando ejecuto el exe me dice que no encuentra las bases de datos, pues las está buscando en el directorio donde originalmente estaban (C:\escuela).(Aunque ahora estan grabadas en el CD)(D:\Escuela) Hay alguna forma de ejecutar todo el programa desde el CD sin tener que vaciar nada al disco duro?
Gracias por la ayuda

dec
17-05-2007, 04:53:21
Hola,

Siempre que no te sea necesario escribir o guardar información la base de datos, no veo porqué no puede hacerse. De hecho en algún punto tienes que indicar que la base de datos está en "C:\escuela". Pues bien, es cuestión de que utilizes rutas relativas al ejecutable de tu aplicación.

¿Que cómo es esto? Pues muy sencillo. Suponiendo que la base de datos se encuentra en un directorio de nombre "datos" al lado de tu ejecutable (en el mismo directorio), donde ahora especifiques la ruta de la base de datos haz algo como esto:


var
rutaBD: string;
begin
rutaBD := ExtractFilePath(ParamStr(0))+'datos\bdatos.bd';
{...}
end;


"ExtractFilePath" retorna el directorio en que se encuentra el archivo pasado como parámetro: en este caso "ParamStr(0)", es decir, el propio ejecutable de tu aplicación, de modo que obtenemos el directorio en que se encuentra el ejecutable de tu aplicación.

A continuación le añadimos el resto de la ruta para llegar a la base de datos. La idea es que de este modo dará igual en qué unidad se ejecute tu aplicación, puesto que la ruta de la base de datos se conforma "relativamente" al ejecutable de la aplicación, esté donde esté.

Insisto una vez, aunque seguramente es algo que no se escapa, que en el CD no podrás escribir, así que podrás leer información de la base de datos, pero, no insertar nueva información. Pero supongo que esto ya lo sabes y lo tienes en cuenta.

ernestogiss
18-05-2007, 04:03:24
Hola Dec
Te agradezco el apoyo y efectivamente, lo que necesitaba es correr la base de datos desde el CD. (Y como tu lo dices, es lógico que no se pueda escribir nada en ellas pues el disco esta cerrado y es de solo lectura)El proyecto es basicamente para guardar archivos de exalumnos de una escuela y no se requiere modificar sus datos. Voy a probar Tu sugerencia y nuevamente GRACIAS