Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ADO
 Cambiar ruta Tablas Vinculadas
 Foro Bloqueado  Tema Bloqueado


Autor Temas
chec0
Junior Member

Colombia
145 Posts
Mensajes - 08 Nov 2002 :  22:37:03  Ver Perfil  Enviar Email  Enviar chec0 un Mensaje ICQ
Como puedo cambiar con ADO la ruta dee las tablas vinculadas que tenga, por hai me encontre un buen ejemplo con DAO, pero no me sirve para lo que estoy haciendo necesito hacerlo en ADO.
anexo el ejemplo en DAO para el que lo pueda trraducir.

Gracias
Dim path As String
Dim NOMBRE As String
Dim oldpath As String
Dim newpath As String
Dim db As Database
Dim tbf As TableDef

path = "\\pc2\c\archivos de programa\carpeta\"

newpath = path & "datos.mdb"
Set db = CurrentDb
For Each tbf In db.TableDefs
If tbf.Connect <> "" Then
oldpath = tbf.Connect
oldpath = Mid(oldpath, InStr(oldpath, "=") + 1)
If oldpath <> newpath Then
tbf.Connect = ";DATABASE=" & newpath
tbf.RefreshLink
End If
End If
Next


CHEC0 a sus servicios

buho_nero
Moderator

España
1316 Posts
Posted - 11 Nov 2002 :  11:57:40  Ver perfil  Enviar e-mail
En ADO puedes conectar con una BD por medio de una DSN o por una propiedad del objeto Connection (ConnectionString):

oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(".\mi_carpeta\mi_base.mdb"))

Es este ejemplo estoy usando la conectionstring como parámetro del método open, y como puedes ver es sólo una cadena, por lo que puedes construirla en una variable como te venga en gana y usarla.

Inicio Pagina

aalaiz
Junior Member

España
374 Posts
Posted - 03 Dec 2002 :  13:19:56  Ver perfil  Enviar e-mail
Me parece que no es eso lo que preguntaba.

Una cosa es conectar con una b. de datos y otra son las conexiones de LAS TABLAS VINCULADAS que contenga una b. de datos...

Saludos.

Inicio Pagina

aalaiz
Junior Member

España
374 Posts
Posted - 04 Dec 2002 :  19:17:24  Ver perfil  Enviar e-mail
Hola:

Después de "mucho investigar", he visto un sitio: http://archive.devx.com/upload/free/features/tgvp/1999/fa99/rjfa99/rjfa99.asp en el que se explica que ADO tiene muchas carencias respecto a DAO. Entre ellas está el acceso a TableDef, que es la forma de, mediante programación, cambiar la cadena de conexión de las tablas vinculadas, tal como muy bien puso chec0 en su ejemplo.

Esto se suple, tal como dice en el sitio mencionado, con los objetos ADOX, extensión de los ADO. La colección TableDefs aquí sí que existe, aunque se llama Tables.

Siguiendo con la "investigación", y con ayuda del Access 2000, previo hacer referencia en el mismo (en el menú de VBasic del Access -diseño de módulo-: Herramientas->Referencias) a 'Microsoft ADO Ext 2.5for DDL and Security' (lo digo por si queréis hacer pruebas y tal) he escrito un ejemplo, lo más sencillo posible, para, desde ASP, conseguir lo que queríamos. Ahí va:


<%@ LANGUAGE=VBScript%>
<%Option Explicit%>

<!-- #include file="include/adovbs.inc" -->

<%
dim tbl
dim cat

Set cat = Server.CreateObject("ADOX.Catalog")
Set tbl = Server.CreateObject("ADOX.Table")

'Naturalmente los paths siguientes los podemos poner de la forma Server.MapPath(...)
cat.ActiveConnection = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\PathMiBase\MiBase.mdb;"

cat.Tables("TablaVinculada").Properties("Jet OLEDB:Link Datasource") = "c:\PathBaseVinculada\BaseVinculada.mdb"

Set tbl=Nothing
Set cat=Nothing
%>

Para que funcione, lógicamente, el servidor tiene que tener instalada la biblioteca mencionada. Lo probé en mi PC (con el Personal Web Server) y fue bien. Naturalmente, como tengo el Access 2000 instalado tengo esa biblioteca. Pero supongo que será algo que, a estas alturas, todos los servidores tendrán (al menos los que ejecuten ASP :-)

Como curiosidad, ahí van las 10 Table.Properties:

Jet OLEDB:Table Hidden In Access
Jet OLEDB:Create Link
Jet OLEDB:Exclusive Link
Jet OLEDB:Link Datasource
Jet OLEDB:Link Provider String
Jet OLEDB:Remote Table Name
Jet OLEDB:Cache Link Name/Password
Jet OLEDB:Table Validation Rule
Jet OLEDB:Table Validation Text
Temporary Table


Saludos.


Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar