Foros del Web » Programando para Internet » ASP Clásico »

Donde especifico el DNS name?

Estas en el tema de Donde especifico el DNS name? en el foro de ASP Clásico en Foros del Web. Saludos gente, estoy tratando de conectarme a mi base de datos. Ahora bien, mi base de datos esta en una carpeta que se llama databases ...
  #1 (permalink)  
Antiguo 15/04/2004, 11:29
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Donde especifico el DNS name?

Saludos gente, estoy tratando de conectarme a mi base de datos.

Ahora bien, mi base de datos esta en una carpeta que se llama databases y la base de datos se llama prueba.mdb

Ahora bien tengo el siguiente código para conectarme

Set fs=Server.CreateObject("Scripting.FileSystemObject ")
strConn ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("\") & "\databases\prueba.mdb"
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open strConn


La cadena de conexion es la siguiente:

DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=O:\Hosted Web Sites\carlos.mena\cozumelparks_com_mx\www\database s\prueba.mdb

Pero a la hora de abrir la pagina me manda este error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0xd78 Thread 0xc40 DBC 0x1183ff24 Jet'.

Ahora bien, a través de un panel de control que me proporciona el Host crre un DSN a la base de datos sin usuario y sin contraseña, pero no se donde debo de poner el nombre del DSN en la cadena de conexión.

Alguien me podria ayudar?

Saludos.
  #2 (permalink)  
Antiguo 15/04/2004, 11:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 4 meses
Puntos: 50
Pues si es por DSN solo sería:

strConn = "DSN=mi_nomnre_dsn"


por otro lado si tienes ésto:

strConn ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("\") & "\databases\prueba.mdb"

porque lo lo intentas con ésto:

strConn ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("\databases\prueba.mdb")

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 15/04/2004, 12:01
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Grácias RootK

Lo voy a revisar

Saludos
  #4 (permalink)  
Antiguo 15/04/2004, 12:41
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Creo que me voy a suicidar.

La cuestion es esta.

La carpeta de inicio del sitio se llama www, sin embargo al mismo nivel de la carpeta www esta la carpeta databases donde esta la base de datos, el proveedor me paso una cadena de conexión que supuestamente debe funcionar, sin embargo sigue marcandome el error:

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

La conexión la realizo de la siguiente manera:
__________________________

Set fs=Server.CreateObject("Scripting.FileSystemObject ")
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/") & "/../databases/prueba.mdb"
Set rs = Server.CreateObject ("ADODB.Recordset")
_____________________

Ven algun error? ya no se qu emas hacer por favor ayudeneme.

Saludos.
  #5 (permalink)  
Antiguo 15/04/2004, 12:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Supuestamente es un errror de permisos de escritura. revisá eso
__________________
...___...
  #6 (permalink)  
Antiguo 15/04/2004, 14:31
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Ahhh ok gracias dazuaga, solo una cuestioncita mas :) pero que permisos debe tener la carpeta donde esta el .mdb para poder insertar nuevos registros? como puedo verificar que perisos tiene? habria una ofrma de modificar los permisos remotamente o lo tengo que solicitar al administrador del servidor?

El servidor es Windows 2000, gracias por su ayuda, aquí pongo el codigo del asp por si ayuda en algo.

_____________________________

<%

Sub CloseDB()
dbc.Close
Set dbc = Nothing
End Sub


Set fs=Server.CreateObject("Scripting.FileSystemObject ")
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/") & "/../databases/prueba.mdb"
Set rs = Server.CreateObject ("ADODB.Recordset")

strSQL = "INSERT INTO datos (Nombre, Telefono, Direccion) "
strSQL = strSQL & "VALUES ('This is the name', 'This is the Telephone', 'This is the address');"

Response.Write strSQL
Set rs = dbc.Execute(strSQL) '<---- Aqui esta el problema
Set rs = Nothing
Call CloseDB()
%>


________________________

La tabla datos solo tiene cuatro campos:

ID - Nombre - Telefono - Direccion

El campo ID es Autonumerico entero largo que uso como indice

Los otros tres son de texto de 50 caracteres, no requeridos, no longitud cero, no indexados y con compresión unicode.

La sentencia SQL que se arma queda asi:

INSERT INTO datos (Nombre, Telefono, Direccion) VALUES ('This is the name', 'This is the Telephone', 'This is the address');

Si alguien ve algun error en el SQL por favor que me lo indique, por que yo la veo bien, si todo esta bien como parece tal vez entonces no sea otra cosa que los permisos como dijo dazu.

Muchas gracias a todos por su ayuda.

Saludos.
  #7 (permalink)  
Antiguo 15/04/2004, 14:49
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 4 meses
Puntos: 50
Para empezar te recomiendo que de una vez uses la cadena de provider para Access?

Prueba con ésto:

strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/databases/prueba.mdb")

Por cierto.. tambien coincido que posiblemente sean por permisos de lectura..

intenta ponerlo en modo 3

ejemplo..

Set cn = CreateObject("ADODB.Connection")
cn.Mode = 3 ' adModeReadWrite


Saludos
  #8 (permalink)  
Antiguo 15/04/2004, 17:29
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Creo que me voy a rendir y hacer toda a aplicación en PHP, ya probé modificando la cadena de conexión y quedo de la siguiente manera:

Dim conexion, registros, basedatos
basedatos = Server.MapPath("/databases/prueba.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Mode = 3 ' adModeReadWrite
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"

Como pueden ver le agregue la líne aque amablemente me sugirió RootK pero sigue mostrando el ismo error, parece que simplemente no se `peuden modificar los permisos.

Bueno señores creo que hasta aqui acaba mi lucha agradezco toda su ayuda.

Saludos.
  #9 (permalink)  
Antiguo 15/04/2004, 17:43
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Aqui les dejo la última versión del código como mi obituario de mi paso por el mundo ASP

______________________________

<%

Sub CloseDB()
dbc.Close
Set dbc = Nothing
End Sub

Dim conexion, registros, basedatos
basedatos = Server.MapPath("/databases/prueba.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Mode = 3 ' adModeReadWrite
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"

Response.Write basedatos

strSQL = "INSERT INTO datos (Nombre, Telefono, Direccion) "
strSQL = strSQL & "VALUES ('This is the name', 'This is the Telephone', 'This is the address');"

Set rs = conexion.Execute(strSQL)
Set rs = Nothing
Call CloseDB()
%>

________________________________________

También les pongo la base de datos si alguien tiene la curiosidad de verla.

http://www.finred.com.mx/prueba.mdb

Saludos
  #10 (permalink)  
Antiguo 16/04/2004, 08:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 4 meses
Puntos: 50
Elalux, definitivamente era por cuestion de permisos de tu BD..

Para hacer tienes que hacer click con el boton derecho sobre tu archivo pruebas.mdb, luego te vas a la pestaña security, posteriormente buscas al usuario Everyone y le das full control( o control total) para que pueda leer, escribir.. etc...y con ello ya puedes correr tu código..

Hice pruebas con tu bd y a mi si me inserta los valores...

Pruebalo y nos cuentas como te fue. . .
  #11 (permalink)  
Antiguo 16/04/2004, 10:10
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 5 meses
Puntos: 22
Aquí encontré una explicaci´´on en sitio de Microsoft:

http://support.microsoft.com/default...b;EN-US;175168

Gracias RootK al menos por ahora el problea esta aislado, ahora es cuestión de trabajar en los permisos, ucchas gracias, los mantendre informados

Saludos.
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 00:25.