Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ADOConnection con tabla acces.mdb (https://www.clubdelphi.com/foros/showthread.php?t=79275)

nmenna10 20-06-2012 20:08:58

ADOConnection con tabla acces.mdb
 
Hola, buenas tardes, este es mi prmer post. Mi nombre en Nicolas, soy de Argentina y tengo 21 años, estoy estudiando Analista Programador y mi consulta es:


Estoy haciendo un programa con una base de datos acces.mdb para practicar, hasta ahi va bien, pero mi problema es que cuando creo el instalador con el "inno setup" y al programa lo instalo en otra PC para ver si anda, me sale un cartel que dice algo asi como que no se puede encontrar la tabla o la ruta de la base no es la correcta...


El programita ya estaria hecho y anda, pero solo en mi PC, por que cuando lo instalo en otra no encuentra la base.


Quisiera consultar si no me podrian dar una manito con algun codigo como para que el programa encuentre la base.


Muchas graciasss.

Casimiro Notevi 20-06-2012 20:18:01

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Debes dar más información, más clara, el mensaje exacto del error, etc.

Northern 20-06-2012 21:01:18

Yo lo que hago es capturar la cadena que se crea en ADOConnectionString quitarle la ruta de la BD y pasarla a una variable. Después leo la ruta del ejecutable y donde está la *.MDB, normalmente en una subcarpeta dentro de la carpeta del ejecutable. Asocio esa ruta al ConnectionString y yastá (suponiendo que el PC donde instalas la aplicación tenga el MDAC).

nmenna10 20-06-2012 21:38:28

Hola muchas gracias por tu respuesta, seria mucha molestia que me des una manito con el codigo??? por que no me doy cuenta como hacerlo.

pero si no te incomodo con otra cosa..


Desde ya muchas gracias.

Northern 20-06-2012 22:11:54

Cita:

Empezado por nmenna10 (Mensaje 435703)
Hola muchas gracias por tu respuesta, seria mucha molestia que me des una manito con el codigo??? por que no me doy cuenta como hacerlo.

pero si no te incomodo con otra cosa..


Desde ya muchas gracias.


No tiene mayor misterio:

1. En el DataModule (supongo que usas un DataModule) pongo después de implementation:

Código Delphi [-]
const
  AdoConn: WideString =
    'Provider=Microsoft.Jet.OLEDB.4.0;'+
    'Password="";'+
    'User ID=Admin;'+
    'Mode=Share Deny None;'+
    'Extended Properties="";'+
    'Locale Identifier=1034;'+
    'Jet OLEDB:System database="";'+
    'Jet OLEDB:Registry Path="";'+
    'Jet OLEDB:Database Password="";'+
    'Jet OLEDB:Engine Type=5;'+
    'Jet OLEDB:Database Locking Mode=1;'+
    'Jet OLEDB:Global Partial Bulk Ops=2;'+
    'Jet OLEDB:Global Bulk Transactions=1;'+
    'Jet OLEDB:New Database Password="";'+
    'Jet OLEDB:Create System Database=False;'+
    'Jet OLEDB:Encrypt Database=False;'+
    'Jet OLEDB:Don''t Copy Locale on Compact=False;'+
    'Jet OLEDB:Compact Without Replica Repair=False;'+
    'Jet OLEDB:SFP=False';


var
  TheBaseDatos: WideString;


2. En un procedure, o function, cualquiera que llames para establecer la conexión y abrir las tablas:


Código Delphi [-]
procedure TDM1.AbrirTablas;
begin
  ADOConnection1.Connected := False;
  ADOConnection1.ConnectionString := '';
  TheBaseDatos := ';Data Source='+WideString(AppPath+'\Data\MyAccessBD.mdb');
  ADOConnection1.ConnectionString := ADOConn+TheBaseDatos;
  ADOConnection1.Connected := True;

  adoTable1.Active := True;
  ....


end;

AppPath es es la ruta de tu aplicación que puedes obtener de diferentes maneras.


Como ves uso Jet, pero puedes usar otro motor. El asunto está en capturar la cadena de texto del ADOConnection, esa que está en la propiedad ConnectionString cuando Connection es True.


------------
Donde sale :D tiene que salir ": D" todo junto

nmenna10 20-06-2012 22:19:20

Muchas pero muchas Gracias!!! ahora a probarloo graciassss.

nmenna10 21-06-2012 22:21:16

Bueno queria avisarles que me andubo a la perfeccion la explicacion y codigo que me enseñaste, muchisimas gracias por ayudarme, nos vemos suerte y saludoss.


La franja horaria es GMT +2. Ahora son las 18:02:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi