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

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 ASP Clásico 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 13/12/2007, 13:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 6 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
%>
  #2 (permalink)  
Antiguo 15/02/2008, 19:14
 
Fecha de Ingreso: enero-2002
Ubicación: Rosario
Mensajes: 8
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Problema con ASP para conectar con una BD MySQL empleando el comando ADODB.Comman

mira segun tengo entendido hay objetos y propiedades que el driver odbc de mysql no soporta, se que hay un conector OleDB de mySql que resuelve algunos de estos problemas, lo que quizas te convenga es investigar en la pagina de Mysql por este conector y ver si en el hosting tenes disponible este conector

acate tenes algo de info http://www.luggle.com/~sean/Articles/MySQLPV.php

espero que te sirva my respuesta.

Saludos.
  #3 (permalink)  
Antiguo 15/02/2008, 19:35
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Problema con ASP para conectar con una BD MySQL empleando el comando ADODB.Comman

No a ver...tu quieres conectarte por OLEDB verdad? Sólo por medio de OLEDB podrás utilizar las propiedades del objeto command, si no hay conexión por OLEDB, no servirá, trata este string de conexión:

Código:
Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 22:29.