Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con ASP para conectar con una BD MySQL empleando el comando ADODB.Command

Estas en el tema de Problema con ASP para conectar con una BD MySQL empleando el comando ADODB.Command en el foro de Mysql en Foros del Web. Hola: Soy relativamente nuevo en la programación web. He desarrollado la aplicación web conectada a una base de datos MySQL, en ASP VBScript y con ...
  #1 (permalink)  
Antiguo 14/12/2007, 07:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Problema con ASP para conectar con una BD MySQL empleando el comando ADODB.Command

Hola:

Soy relativamente nuevo en la programación web. He desarrollado la aplicación web conectada a una base de datos MySQL, en ASP VBScript y con Dreamweaver CS3 como herramienta de desarrollo.

No tengo problemas con el site corriendo en mi testing server (localmente).

El problema surge cuando subo el site al host que he contratado. Resulta que cuando ejecuto la aplicación desde el remote server, cuando ésta quiere comunicarse con la base de datos alojada en el servidor MySQL del host, la aplicación me devuelve un error y es el siguiente:

"Microsoft OLE DB Provider for ODBC Drivers error '80040e31'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.20a-community]SELECT command denied to user 'usuario'@'localhost' for table 'usuarios'

/sections/login/login.asp, line 20"


En este caso la línea 20 es la que contiene el Execute del objeto Command (pueden ver el código al final del post).

Al principio pensé que había algún error con la asignación de permisos del usuario 'usuario' para interactuar con la base de datos, por lo que solicité asistencia al equipo técnico del host.

La respuesta que me dan es que el usuario 'usuario' tiene permisos de root para acceder a las bases de datos creadas desde el dpanel del site y que no hay ningún inconveniente para comunicarse con la base de datos. Incluso, colocan una página que a modo de ejemplo se conecta con mi base de datos exitosamente.

Al abrir dicha página para revisar el código de conexión, observo que el método ADO para conectarse a la BD es mediante la creación de un objeto ADODB.Recordset.

He aquí el problema: El método ADO que utiliza Dreamweaver CS3 para generar todo el código de conexión de la aplicación web con la BD es mediante la creación de objetos ADODB.Command.

Para descartar otros motivos como eventual causa del problema, reemplacé en una de las páginas que interactúan con la DB el método ADODB.Command por el ADODB.Recordset, subí la página al remote server y verifiqué que la conexión se realiza sin problemas.

Al constatar esto, volví a solicitar asistencia al equipo técnico del host para que me explicaran por qué no me funcionaba la conexión con el método ADODB.Command, pero aún no he tenido ninguna respuesta.

En fin... he buscado ayuda en la web pero no he encontrado ninguna pista que me ayude a resolver el problema.

Tal vez es una tontería para alguien con conocimiento avanzado, pero a mi me está quitando el sueño. Por favor, si alguien puede darme una mano, me será de inmensa ayuda!

Gracias.

PD: Incluyo a continuación el código de la página para mayores referencias:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Dim ConnSquashchaco
Set ConnSquashchaco = Server.CreateObject("ADODB.Connection")
ConnSquashchaco.Open "Driver={MySQL ODBC 3.51 Driver}; " & _
"Server=localhost; " & _
"Database=database; " & _
"UID=usuario; " & _
"PWD=password"
%>
<%
Dim rsUsuarios
Dim rsUsuarios_cmd
Dim rsUsuarios_numRows

Set rsUsuarios_cmd = Server.CreateObject ("ADODB.Command")
rsUsuarios_cmd.ActiveConnection = ConnSquashchaco
rsUsuarios_cmd.CommandText = "SELECT nombreusuario FROM squashchaco.usuarios"
rsUsuarios_cmd.Prepared = true
Set rsUsuarios = rsUsuarios_cmd.Execute
rsUsuarios_numRows = 0
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<%
While Not rsUsuarios.EOF
response.write rsUsuarios.fields(1).value
rsUsuarios.MoveNext
Wend
%>
</body>

</html>
<%
rsUsuarios.Close()
Set rsUsuarios = Nothing
%>
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 13:31.