14 diciembre 2007

Conectar SQLServer con BD en Access 2003

En ocasiones necesitamos acceder desde SQLServer a otra base de datos, existen varias maneras de lograr esto, en este articulo vamos a ver específicamente los “servidores vinculados” y un ejemplo de cómo vincular nuestro servidor SQL con una base de datos en Access 2003.

Ejemplo:

Lo primero que tenemos que tener es nuestra base de datos en Access y luego añadiremos un servidor vinculado a nuestro servidor SQL. Para ello desde el analizador de consultas (SQLAnalizer) utilizamos el procedimiento almacenado sp_addlinkedserver:

sp_addlinkedserver
@server = 'nombre de la BD',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'camino donde esta la BD'

Si ahora miramos en el administrador corporativo en servidores vinculados que se encuentra en la carpeta de seguridad encontraremos un icono que representa nuestra conexión con la base de datos.

El segundo paso será crearnos un login para validarnos en nuestro servidor vinculado, para ello tenemos otro procedimiento almacenado, el sp_addlinkedsrvlogin:

EXEC sp_addlinkedsrvlogin
@rmtsrvname='nombre de la BD',
@useself ='false'

En este ejemplo se crea una asignación para asegurar que todos los inicios de sesión al servidor local se conectan al del servidor vinculado creado sin utilizar un inicio de sesión ni una contraseña en el servidor vinculado. Podemos hacer esto porque Access no requiere credenciales de inicio de sesión.

Ahora podemos probar de manera sencilla si nuestro trabajo ha dado resultado, recopilando los datos de una de las tablas de nuestra base de datos:

select * from “nombre de la BD”...”nombre de la tabla”

Sin las comillas por supuesto, pero los tres puntos si son necesarios.

Visto que funciona podemos utilizar cualquier script que utilice nuestra base de datos: por ejemplo para insertar en una tabla, eliminar o cualquier otro que se nos ocurra.


Blogalaxia Tags:

2 comentarios:

Anónimo dijo...

Mas que comentario es una duda, alguién sabe cómo puedo hacer para conectarme si la bd de access tiene contraseña?? el ejemplo anterior me marca error.

Aunque funciona correctamente si la bd de access no tien contraseña

Alex dijo...

He obrado con una infinidad files. Pero he casualmente chocado con - ayuda para abrir un archivo bdd access. El programa asombra gran cantidad las possibilidades. Por ejemplo el resurso ha restituido a mis .accdb ficheros corrompidos. Además el instrumento puede resolver este problema eficazmente y recuperar files.