FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema Access + Delphi + InnoSetup !!!
Buenas, paso a comentar mi problema:
Estoy haciendo una pequeña aplicación en Delphi, la misma interactúa con una BD en Access. Los ADO Conection, ADO Table , etc , etc los tengo en un DataModule. Ahora hice lo siguiente, la ruta de la base para que no sea fija la edite desde el dfm del DataModule ( hice esto: --> "... Source: .\Database.mdb" Teóricamente empieza a buscar la BD en el directorio donde esta el ejecutable.) y la conección anda bárbaro. El problema surge cuando al programa le hago un instalador.... o sea mediante un programa que se llama InnoSetup 5, creo un instalador de la aplicación. Esto también anda bárbaro, ya que el mismo al final lo tengo que compilar y lo hace bárbaro. En más cuando termino de crearlo, instalo la aplicación y todo!!. Ahora lo raro es lo siguiente: como toda aplicación al final de la instalación me pide de ejecutarla y le digo que Si; bien se ejecuta la misma y anda bárbaro, la conección es perfecta. Bueno yo ahora cierro la aplicación, y cuando vuelvo a ejecutarla no me encuentra la base de datos en una " x " ruta. Bueno si alguien puede darme una mano voy a estar muy agradecido, suerte y gracias de antemano jeje. Saludos! Pancho.- |
#2
|
||||
|
||||
Hola
Para mi el asunto esta en el adoconnetion. Creo que deberias o poner la BD en la misma carpeta del exe o usar un archivo ini para que la busque. Saludos
__________________
Siempre Novato |
#3
|
|||
|
|||
Cita:
Mirá, la BD ya está en la misma carpeta que el ejecutable. Te molesto mucho si te pido que me expliques lo del archivo ini para que la busque? Gracias igualmente. Saludos! Pancho.- |
#4
|
||||
|
||||
Hola
Paso a paso: Primero que nada coloco un archivo como muestra, decargalo y lo abres con dobleclick. Vas a ver dentro esto: Cita:
Para cambiarla simplemente colocas la nueva direccion y guardas el archivo. Ahora vamos a leer el archivo desde delphi: Dale doble click al ADOConnetion. Esto te creara el evento OnCreate, coloca esto ahi: Para que funcione el archivo ini coloca en el uses del datamodule estos: Como veras al iniciar el programa cuando se inicia el adoconnection busca el archivo ini que se llama datosbd, ahi busca los datos que estan incluidos en el path y completa la ruta de la bd. Si cambias la bd a donde sea, con solo cambiar la ruta del path en el ini buscara la bd ahi. El archivo ini TIENE que estar en la misma carpeta del exe del programa, la base de datos puede estar donde quieras. Listo, sencillo y facil. Saludos
__________________
Siempre Novato Última edición por Caral fecha: 22-10-2010 a las 22:46:03. |
#5
|
|||
|
|||
Cita:
Lo voy a probar en éstas horas y te aviso como me fué. Gracias de antemano. Saludos! Pancho.- |
#6
|
|||
|
|||
Buenas ....
Mirá estube chusmeando bien la idea que me tirastes con el archivo.ini Por lo que entiendí, es un archivo que en el momento de crearse el modulo de datos de la aplicación, me conecta el ADOConection a la BD ... Pero el problema que tengo yo no es la conección. Bueno si es la conección, pero no desde Delphi a Access. O sea, lo que me está generando un problema es que cuando yo le creo un instalador al programa, pierdo la ruta ... o sea que me tira el error ( onda un mtError ) diciendome que no pudo conectar la base y me tira una ruta ( C:\ Documents ...\ Administrador ) cualquiera donde NO esta la base y nunca le dije que estaba ahí. Ahora una pregunta, cuando vos me decís que en el archivo.ini le cargue la ruta de mi BD, si yo en ves de ponerle la ruta específica donde se encuentra la base le pongo ".\Database.mdb", funciona igual ??. Te pregunto por que lo voy a tener que meter en otra compu el programa. No se si me explico bien, pero el problema que tengo yo es que cuando creo el Instalador pierdo la ruta, o mejor dicho, me busca la BD en una ruta cualquierra y bueno, obviamente no la encuentra. Igualmente voy a probar haciendolo como me decís vos con el archivo.ini para ver que onda. Saludos! Pancho.- PD: No puedo abrir el archivo que me adjuntastes desde un editor ... |
#7
|
|||
|
|||
Buenas nuevamente, ya descubrí el problema pero no se como solucionarlo jeje. El tema es así, el instalador de la aplicación anda bárbaro, siempre y cuando la ruta desde el ADOConnection a la BD en Access sea mmm fija digamos ( osea si en el Source le mando D:\Pancho\Sistemas\ "lalala"\Database.mdb ). Ahora, cuando en el Source del ADOConnection le mando: .\Database.mbd ( para hacerlo genérico ), instálo la aplicación correctamente pero cuando la ejecuto no me encuentra la BD, lo raro es que me la busca en una ruta que nunca le especifiqué para nada ¿? ....
Saludos! Pancho.- PD: Aclaración, cuando le mando la ruta genérica y ejecuto el programa desde Delphi anda bien. Cuando le genero el instalador anda mal. Perdón si soy muy repetitivo, lo que busco es ser claro jeje. |
#8
|
||||
|
||||
Tal vez deberías construir esa ruta de forma dinámica.
Es decir, la primera vez que arrancas, buscas el path de tu aplicación, le concatenas el nombre de la base de datos y lo almacenas (NOTA1) para las siguientes ejecuciones. (NOTA1): Lo normal es usar un archivo de texto (INI por ejemplo) o el registro.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
Buenas
Gente, problema "solucionado". Voy a intentar hacer la BD en MySql y a la mierda. Agradesco muchísimo a los que se calentaron en responder. Saludos! Pancho.- |
#10
|
||||
|
||||
Bueno, yo no diría que el problema está "solucionado", más bien está "esquivado"
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#11
|
|||
|
|||
Cita:
si, tenés razón, no lo solucioné al problema le hice un Oooole! más bien. Te pido una mano? Asi igualmente, aunque lo vaya a hacer en MySql, puedo llegar a la solución del problema original. Me podrías explicar como crear un archivo .ini .... éso nomás. Lo demás ya me lo explicaron más arriba. Va a ser la primera vez que uso ése tipo de archivos, ya entiendo para que se usa y todo, el problema es que no se crearlos jeje. Por lo que tengo entendido simplemente creo un archivo de texto y pongo lo que tenga que poner, la duda es como lo guardo .... lo guardo simplemente con extención .ini y listo? Gracias! Saludos! Pancho-. |
#12
|
|||
|
|||
Buenas,
perdón por tantos idas y vuelta. Finalmente eh podido resolver el problema. Me descargué otro programa para generar instaladores ( InstallShell ). El problema lo tenía cuando, al generar el instalador, me pedía el archivo ejecutable; bueno además de ése archivo tenía que meter la BD en ése momento. Saludos! Pancho.- |
#13
|
||||
|
||||
Hola Pancho.
Auque veo que ya lo has solucionado por otros medios, te puedo explicar cómo lo haría yo. No es complicado. Cita:
Al instalar copias la Base de Datos en el lugar donde toca (el mismo del EXE o en la carpeta BD). (1) Al arrancar la apliación compruebas si existe el fichero de configuración (app.bd.ini), por ejemplo. (2a) Si existe, ir paso (4) (2b) Si no existe crear el fichero ini (app.bd.ini) (3) Calcular la ruta de la Base de Datos a partir del path del EXE (Application.ExeName) y guardarla en el fichero. (4) Leer la tura del fichero y asignarla a la conexión (si vienes del (3) ya la tienes). Para crear y leer ficheros INI, delphi tienes la clase TIniFile.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#14
|
||||
|
||||
Si buscas en los foros (sobre TINIFile) y revisas el FTP encontrarás ejemplos y código de cómo trabajar con este tipo de archivos. Es un tema que hemos tratado otras veces.
Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#15
|
|||
|
|||
Cita:
Te agradesco mucho el aporte. Sinceramente no lo voy a probar AHORA, la verdad fué un dolor de huevos lo que me pasó así que lo quiero dejar ahí, como "solucionado". Igualmente mas adelante me va a volver a pasar algo por el estilo seguro, así que, en todo caso, ya se donde tener un excelente material para guiarme. Gracias nuevamente y que sigas bien! Saludos! Pancho.- |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con Access y Delphi 2 | Besto | Conexión con bases de datos | 3 | 17-04-2008 15:32:46 |
Problema de Access Violation en Delphi 7 | nlsgarcia | API de Windows | 5 | 20-02-2007 02:58:07 |
Problema con transacciones en Access y Delphi | Capi666 | SQL | 1 | 11-01-2007 21:49:14 |
Problema con instalador (en InnoSetup) | Laurana | C++ Builder | 2 | 30-11-2006 13:44:33 |
Delphi->Access (Problema con Usuarios de Windows) | Gelmin | Conexión con bases de datos | 2 | 10-06-2005 19:54:11 |
|