Foros del Web » Creando para Internet » Herramientas y Software »

Conectar una base de datos remota con OLE DB

Estas en el tema de Conectar una base de datos remota con OLE DB en el foro de Herramientas y Software en Foros del Web. Desde la implantación de los nuevos IIS6, Microsoft retira la opción de realizar conexiones a bases de datos mediante driver ODBC. La conexión que se ...
  #1 (permalink)  
Antiguo 27/02/2004, 15:19
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
Conectar una base de datos remota con OLE DB

Desde la implantación de los nuevos IIS6, Microsoft retira la opción de realizar conexiones a bases de datos mediante driver ODBC.

La conexión que se recomienda es por medio de OLE DB.

Alguien sabe como conectar desde Dreamweaver?, yo lo hacía antes con ODBC directamente sin necesidad de entrar en el código, se puede hacer con OLEDB?

Gracias a todos.
  #2 (permalink)  
Antiguo 29/02/2004, 08:40
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
El ODBC, está ahora en;
Panel de control/rendimientoo y mantenimiento/herramientas adm/Orígenes de datos,
Aquí podras crear y configurar el origen de los datos al igual que desde DW.
Cuando crees tu página dinámica,Insertar/objetos de aplicación/... te saldrá un panel de config. donde tendrás que definir tu nueva conexión creada.
Suerte.
  #3 (permalink)  
Antiguo 29/02/2004, 09:31
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias pero sigo sin entender

Lo que necesito es conectar dreamweaver con la base de datos remota, antes se hacía mediante DNS en el panel base de datos y ahora creo que ya no se realiza así, ahora creo (y espero no equivocarme), mediante una cadena de conección personalizada. En esta ventana, se debe incluir un nombre, y una cadena de conección.

Por cierto es necesario tener instalado ISS en mi ordenador? Siempre he trabajado con una red local utilizando mi propio ordenador para gestionar el sitio.

Gracias de nuevo.
  #4 (permalink)  
Antiguo 01/03/2004, 07:42
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Si quieres comprobar que tus páginas funcionan correctamente,
tienes que tener el IIS, la mayoría de los códigos creado para que tus páginas
tengan conexión a bd, estan creados para ser interpretados con el IIS u otro.

El DNS, tienes que crearlo y configurarlo desde el ODBC,
dependiendo de con qué has creado tu bd y donde se encuentre.

No tiene que ver el editor que tengas para crear tu web.


Cuando quieras crear una conexión en una página.te pedirá el DNS que has creado.Pudiendo acceder en el DW,como te he indicado.
Crea por ejemplo un juego de registro y
verás que te pide los datos del DNS.
  #5 (permalink)  
Antiguo 01/03/2004, 09:19
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
gracias por tu paciencia

Te comento, las conecciones con bases de datos OBDC se realizan mef¡diante DNS, cosa que no me reporta problema alguno, el caso es que ya ese tipo de conexiones se están acabando y ahora las conexiones se realizan mediante OLE DB, es decir una conexión sin DNS.

He estado investigando y el tipo de ruta que se tiene que crear en el panel conexión personalizada es algo así:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("\")

Pero no me funciona, y no se si lo estoy haciando mal dado que como no necesito un DNS ya no se configura desde panel de control porque todo el proceso lo hace el servidor remoto.

Te remito a una página para que veas a lo que me refiero he hecho todo lo que me decían pero me da error.

http://www.ecofin.ull.es/users/jggom...xion%20BDR.htm

No se si has hecho alguna vez conecciones desde el dreamweaver a base de datos en servidor remoto con OLE DB, sin DNS, pero me interesaría mucho saber como se hace.

Una vez mas gracias por tu paciencia.
  #6 (permalink)  
Antiguo 01/03/2004, 11:12
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Todo lo que hacias antiguamente con Ultradev ahora lo incorpora DW. Es decir que puedes hacer la conexión con DNS.
No es que se estén acabando, sino que sólo funcionan con el equipo en el que se añade la nueva conexión, es decir que si creas una pág.asp y la subes a otro equipo diferente al tuyo, no podrás utilizarlo, una gran desventaja.
Por eso siempre resultará mejor crearlas sin DNS, ya que son nás eficientes.
Aquí tienes un ejemplo de un página que recoje los datos y los envía a una bd llamada mibasededatos.mdb


<body >
<%
If Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("mibasededatos.mdb"))

TBL.Open "Afiliados" ,DB, 1, 2
TBL.AddNew
TBL("Nombre") = Request.Form("Nombre")
TBL("Apellido") = Request.Form("Apellido")
TBL("Pais") = Request.Form("Pais")
TBL.Update
TBL.Close

DB.Close

Set DB = Nothing
Set TBL = Nothing

Response.Write "Se a agregado con exito"
else
%>
<form name="form1" method="post" action="agregar.asp">
<p> Nombre
<input type="text" name="Nombre" maxlength="50">
</p>
<p> Apellido
<input type="text" name="Apellido" maxlength="50">
</p>
<p> Pais
<input type="text" name="Pais" maxlength="50">
</p>
<p>
<input type="submit" name="Submit" value="Enviar">
</p>
</form>
<%
End If
%>
</body>

Suerte, ya me contarás.
  #7 (permalink)  
Antiguo 01/03/2004, 11:26
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Toma nota del error
TBL.Open "mibasededatos" ,DB, 1, 2
TBL.AddNew

En , ("mibasededatos.mdb")), pon el directorio de tu bd,en este ejemplo está en el mismo nivel del sitio.
  #8 (permalink)  
Antiguo 02/03/2004, 10:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola Gardel, he realizado una página asp con tu código y veo a lo que te refieres, pero mi problema es que no domino ningún lenguaje de programación, pero mas o menos se ver a que partes pertenecen cada script.

Lo que me interesa de tu código es saber realizar la primera parte o sea, esta:

If Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("mibasededatos.mdb"))


Pero directamente desde el Dreamweaver mx 2004 (que es el que tengo), sin entrar en el código, debido a que me es mas cómodo ir añadiendo nuevas entradas a medida de que se vayan creando nuevas bases de datos. No ha de ser muy difícil dado que los requerimientos son menos que cuando las realizaba mediante ODBC con DNS. Y debido a que ahora uso un servidor remoto y no un Local Host.

El resto, :recordset, repeticiones de región, formularios, etc ya los creo directamente desde el Dreamweaver.

Lo que quiero es solo la conexión, para poder seguir avanzando.

Por lo que veo en tu código usas para las conexiones páginas asp javascript. Lo comento porque no sabía que era mejor si Vsscript o Javascrpit, o asp.net.

Un saludo.
  #9 (permalink)  
Antiguo 02/03/2004, 13:24
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Cabestrum, me gustaría añadir algunos detalles, básicamente las ASP son páginas que se han creado con programas escritos en visual Basic scrips, con la diferencia que si comienzan por “<%” y terminan en” %>” y al archivo en cuestión lo guardamos con extensión asp, en vez de html, lo convertimos en una página activa al lado del servidor es decir una página ASP.

Ante que nada aclararte algo referente a una afirmación que te dije, respecto a “que si la crea con dns, no podrás utilizarlo en el servidor remoto”, no me expliqué del todo bien, decirte que sí podrías, siempre y cuando te dejen crear el DNS en ese servidor remoto, que no sé si será tu caso, sería cuestión de preguntarlo y estudiarlo.


Referente a “Y debido a que ahora uso un servidor remoto y no un Local Host”, Decirte que sigues utilizando un local host, el servidor remoto es el que utilizarás para colgar tu sitio en otra máquina diferente.
En el caso de que utilices tu host para comprobar tu sitio. Como ya sabes tendrás que configurar el sitio local, el de prueba (que normalmente es tu host) y el remoto, pero si no la has colgado y quieres comprobar si la conexión te funcionaría utilizando el Usuario creado por el IIS, es decir, conectarte por medio de http://x.x.x.x/index.html y no por medio de http://localhost/index.html, y sólo a efectos de configuración tendrías que configurarlo igual que tu host., no sé si me he explicado bien.


Mi fuerte tampoco es la programación, tenía entendido que con el DW, sólo se podía hacer conexiones con DNS, por lo tanto pensaba que la única forma de programarla sin el nombre de fuente de datos, el era con el código fuente.
Referente a la primera parte del código me imagino que te refieres a la cadena de conexión para insertarla en el DW, pon lo siguiente ;
“DRIVER={Microsft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\prueba.mdb;”
-Se escribe seguido, ojo con las llaves y paréntesis.
-En “Microsft Access Driver”, dependiendo de con qué has creado tu bd.
-En “C:\Inetpub\wwwroot\prueba.mdb;” dependiendo del tipo de servidor remoto donde cuelgues tu página, tendrá un directorio u otro, en este caso sería un IIS.
Está claro que si utilizas el IIS de tu máquina tendrás que cambiar dicho directorio.

Aquí tienes más ejemplos;

conexión a una base de datos ACCESS sin declarar DSN
strconn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\dirBD\asptutor.mdb")
set conn = Server.Createobject("adodb.connection")
conn.open strconn

conexión a una base de datos ACCESS sin declarar DSN usado Jet
strconn = ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dirDb/asptutor.mdb")
set conn = Server.Createobject("adodb.connection")
conn.open strconn

conexión a una base de datos SQL SERVER sin declarar DSN
strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1; UID=LoginID;PWD=Password;DATABASE=Database_Name
set conn = server.createobject("adodb.connection")
conn.open strconn


Cuéntame cuando lo hagas.

Un saludo .
  #10 (permalink)  
Antiguo 02/03/2004, 18:44
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
En;"Está claro que si utilizas el IIS de tu máquina tendrás que cambiar dicho directorio".
Quería decir:
Está claro que si no utilizas el IIS de tu máquina tendrás que cambiar dicho directorio.
Me refiero que ese dato te lo tendrían que dar los que gestionan ese servidor, ya que aún siendo un IIs como el tuyo, podrían tener un directorio raiz en otro sitio virtual.

Un saludo.
  #11 (permalink)  
Antiguo 02/03/2004, 19:20
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola Gardel mi Proveedor de aceso me acaba de enviar un código de prueba para conectar la base de datos que dice que funciona, es este:

<%
' Nuestras tres variables para jugar con la bd

Dim oConn, rs, SQL

'Creamos los objetos

dbpath = server.mappath("\pruebanet.mdb")

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & dbpath

'set oConn=Server.CreateObject("ADODB.Connection")

set rs=Server.CreateObject("ADODB.Recordset")

'Conectamos con DSN a la base de datos

'oConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("\")

'oConn.Open "DSN=pruebaacens.arcanumdata.com"

'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\webs\bearzu\data\db1.mdb;"

SQL="SELECT * FROM tablapruebanet;"

'Ejecutamos la consulta y traemos los datos al recordset

rs.Open SQL, oConn

'Ahora iteramos por el recordset y mostramos los resultados en una tabla

'Primero pintamos la cabecera de la tabla

'Response.Write("<TABLE BORDER="0">"&VbCrlf) 'VbCrLf mete un salto de línea

'Ahora recorremos el recordset con un bucle

'pintando una fila de la tabla para cada registro

do until rs.EOF

Response.Write("<TR><TD>"&VbCrLf)

Response.Write(rs.Fields("dni")&"</TD><TD>")

Response.Write(rs.Fields("nombre")&"</TD><TD>")

'Response.Write(rs.Fields("apellidos")&</TD></TR>")

'Pasamos al siguiente registro

rs.MoveNext

'volvemos al do

loop

'Cierro la tabla

Response.Write("</TABLE>")

'Como ya he terminado, cierro los objetos

rs.Close

oConn.Close

set rs=nothing

set oConn=nothing

%>





en lo que a mi conecxión respecta he escrito lo siguiente:

<%
' Nuestras tres variables para jugar con la bd

Dim oConn, rs, SQL

'Creamos los objetos

dbpath = server.mappath("\ht3d.mdb")

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & dbpath

'set oConn=Server.CreateObject("ADODB.Connection")

set rs=Server.CreateObject("ADODB.Recordset")

'Conectamos con DSN a la base de datos

'oConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("\ht3d.mdb")

'oConn.Open "DSN=pruebaacens.arcanumdata.com"

'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\Inetpub\wwwroot\ht3d.mdb;"


Mi base de datos se llama ht3d.mdb y se encuentra dentro de la carpeta remota html.

Pero es aquí donde tengo la duda, ¿no se puede conectar la base de datos, es decir, solo hacer la conección mediante el código y luedo realizar los recordset, tablas y demás funciones con el dreamweaver?

lo que me interesa es que se me active el panel "aplicación" del dreamweaver para poder ejecutar las ordenes de bases de datos.

Ya todo me está quedando mucho mas claro, espero no acabar con tu paciencia. Gracias.
  #12 (permalink)  
Antiguo 03/03/2004, 13:13
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0


Hola Gardel, ya por fin he realizado la conexión a la base de datos. El problema no era otro si no que no había definido una carpeta remota en el servidor, como la principal.

El problema que tengo ahora es que no puedo coenctar con la base de datos si no está fuera de esta carpeta, pero bueno eso ya se solucionará.

Tonterías que le hacen a uno perder los nervios eh?

Mi cara se parece a esta mas o menos

ahora me voy a relajar un poquito

Nos vemos

y Gracias por tu ayuda.
  #13 (permalink)  
Antiguo 03/03/2004, 15:14
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Me alegro de que lo tengas solucionado.
¿Que cadena has utilizado?

¿Con DNS configurado desde el ODBC?
Tu proveedor te ofrece el DNS, con sólo llamarlo igual “pruebaacens.arcanumdata.com”, te funcionaría.

¿Sin declarar el DNS?, con ;
DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\Inetpub\wwwroot\ht3d.mdb;"

¿O con OLEDB?;
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("\ht3d.mdb")


Bueno...creo que se nos está acabando la clase, te felicito nuevamente;

Un saludo, ya sabes donde localizarme.
  #14 (permalink)  
Antiguo 03/03/2004, 16:00
 
Fecha de Ingreso: febrero-2004
Mensajes: 25
Antigüedad: 20 años, 2 meses
Puntos: 0
Lo que he hecho ha sido lo siguiente, perimero intentar descifrar el código y solo quedarme con la parte de conexión. OLEDB.

Luego mediante el panel de base de datos de Dreamweaver te tienes que crear un DNS. Por lo visto aunque la conexión sea mediante OLE DB (sin dns), tienes que crearlo igualmente, aunque esta vez no te lo creas desde panel de control sino que lo añades directamente desde el Dreamweaver, ya con eso vale.

la cadena que he utilizado es Ole DB:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("\ht3d.mdb")


La verdad es que este esfuerzo ha valido la pena, he aprendido bastante del lenguaje ASP.

Muchas gracias por tu ayuda. Si necesitas alguna cosa, ya sabes.
  #15 (permalink)  
Antiguo 03/03/2004, 16:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Canarias
Mensajes: 156
Antigüedad: 20 años, 2 meses
Puntos: 0
Decirte tambien, que se están utilizando dentro de las páginas ASP , consultas SQL, que es un lenguaje estandar de comunicaciones con bases de datos, repasando un poquito de este tema entenderás todo el código.

Nos vemos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.