Conexion a acces

Tengo algunas dudas con respecto a la conexión a access desde visual fox 6.0. Lo hago perfectamente desde el asistente a una base de datos mdb y luego creando una conexión y una vista, pero cuando paso el sistema a otro equipo tengo que volver a hacer la conexión a la base de datos con el asistente. Aparentemente se puede hacer esto con los comandos create connection y sqlconnection pero he fracasado en todos los intentos. Si tienes algún ejemplo para conectarme a la base de datos datos.mdb y que tenga contraseña te agradezco infinitamente.
Miguel Cortez
Jujuy
[email protected]

1 respuesta

Respuesta
1
Tienes que crear un DSN con el nombre y la ruta de la base de datos en una máquina que será tu servidor de datos, posteriormente, an cada máquina, que será tu cliente, deberás definir el DSN del odbc que hace referencia a tu servidor.
Hecho lo anterior el resto en sencillo, a continuaciíon te obsequio un código que se conecta a access y trae las bases de datos de allí para ponerlas en una de VFP.
Primera versión vía ADO.
lcDataBaseName = 'DAVPHA'
lcMDBDir = 'e:\Interpruebas\'
lcMDBName = 'somapach.MDB'
lnConnHandle = SQLSTRINGCONNECT('DSN=MS Access Database;DBQ='+;
lcMDBDir+'\'+lcMDBName+';DefaultDir='+;
lcMDBDir+';DriverId=25;FIL=MS Access;MaxBufferSize=2048;'+;
'PageTimeout=5;UID=admin;')
Create data (lcDataBaseName)
SQLTABLES(lnConnHandle, ['TABLE'], 'myMDB')
Select myMDB
Scan
lcSQL = 'select * from "'+trim(table_name)+'"'
lcCursor = chrtran(trim(table_name),' ','_')
lcTableName = '_'+lcCursor
SQLEXEC(lnConnHandle,lcSQL,lcCursor)
Select (lcCursor)
Copy to (lcTableName)
Add table (lcTableName)
Endscan
SQLDISCONNECT(lnConnHandle)
Modi data
Versión ODBC.
lnConnHandle = SQLCONNECT('DSNAccess','user','password')
Create data (lcDataBaseName)
SQLTABLES(lnConnHandle, ['TABLE'], 'myMDB')
Select myMDB
Scan
lcSQL = 'select * from "'+trim(table_name)+'"'
lcCursor = chrtran(trim(table_name),' ','_')
lcTableName = '_'+lcCursor
SQLEXEC(lnConnHandle,lcSQL,lcCursor)
Select (lcCursor)
Copy to (lcTableName)
Add table (lcTableName)
Endscan
SQLDISCONNECT(lnConnHandle)
Modi data

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas