PDA

Ver la Versión Completa : Delphi 2009 - Acces - Problema con proveedor.


Fede14lp
04-12-2011, 19:15:23
Buen dia a todos.

Me estoy iniciando en el tema de la programacion, y me encontre con un problema que todavia no pude solucionar.
La cuestion es la siguente, estoy haciendo una aplicacion con Delphi 2009 y Access 2010. El problema es que cuando quiero conectar con la DB, creo el Link .udl, y cuando quiero seleccionar el proveedor Microsoft Jet 4.0 OLE DB Provider, no esta en la lista. Por lo tanto no puedo hacer la conexion.

Querria saber si existe alguna manera de agregar ese proveedor a la lista de proveedores, o si existe alguna otra forma de conectar a Access, pudiendo yo llevar mi aplicacion a cualquier pc sin necesidad de cambiar el ConnectionString.

Les agradezco de ante mano y un saludo para todos.

PD: Recuerden que soy principiante y quizas no entienda algunas cosas, sepan disculpar :P.

radenf
04-12-2011, 22:57:16
Estimado Fede14lp :

La conexión debes hacerla con un TADOConnection y en su connection string debes activar use connection string, no actives use data link file, luego al apretar el botón build te debe mostrar los proveedores de OLE DB y entre ellos el Microsoft Jet 4.0 OLE DB Provider.
No sé si te creará problemas, pero yo nunca logré conectar las bases de datos de Access 2007. Tuve que convertirlas a formato de Access 2002-2003 y funcionaron sin problemas. Basta con guardarlas en ese formato desde Access.

Salu2

Fede14lp
10-12-2011, 01:01:44
Hola radenf, gracias por tu respuesta.
El problema es que yo necesito hacer la conexion para luego despues poder usar el proyecto en cualquier pc sin necesidad de modificar el ConnectioString. Un amigo me dio la siguiente solucion:

En OnActivate del formulario principal:


Procedure TFPrincipal.FormActivate(Sender: TObject);
Var
origen:string;
BD:string;
dirconeccion: string;

begin
//averiguo la direccion donde esta la base y lo pongo en la conexion
origen:= ExtractFilePath(ParamStr(0));
BD:= 'bd.mdb'; //nombre de la base de datos
dirconeccion:= origen+ BD;
//asigno la direccion a la conexion
Datos.conexion.ConnectionString := dirconeccion;
//conecto con labase de datos
Datos.conexion.Connected :=TRUE;



Pero cuando realizo esto y compilo, me sale el siguiente error:


Project Agenda.exe raised exception class EOleException with message '[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado'.


Quisiera saber cual es el error que estoy cometiendo, desde ya les agradezco de antemano.

Un saludo!

Caral
10-12-2011, 01:26:24
Hola
Como te han dicho: El Microsoft Jet 4.0 OLE DB Provider no es aceptado por access 2009, tienes que cambiar el formato a 2003 para usarlo.
Una vez hecho esto sera sencillo hacer lo que quieres.
Saludos

ecfisa
10-12-2011, 01:29:05
Hola Fede14lp y bienvenido a Club Delphi :)

Como a todos los nuevos miembros te invito a que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

Veo que te has tomado mucho trabajo para presentar tu código con colores por lo que paso a comentarte como usar los TAG's (etiquetas), que dán mayór legibilidad resaltando palabras reservadas e identación y sobre todo, te hará muchísimo más sencilla la edición:

http://img403.imageshack.us/img403/3461/75416396.jpg

Un saludo.

Fede14lp
15-12-2011, 20:34:14
Gracias por la recomendacion ecfisa, y gracias a todos por sus respuestas.
Caral, ahora estoy trabajando con access 2003, y tampoco me aparece ese proveedor, pero creo que el problema es que mi windows 7 es de 64 bits y el Delphi 2009 es para 32 bits (ya tuve otros problemas por el mismo tema, que pude solucionar).

De todos modos, gracias a todos por la ayuda, un saludo!