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

ADO con MySql

Estas en el tema de ADO con MySql en el foro de ASP Clásico en Foros del Web. Hola, He creado una clase generica de acceso a bd en asp, en la cual puedes ejecutar sql, sp's... en diferentes bd's (SqlServer, Oracle, MySql...) ...
  #1 (permalink)  
Antiguo 23/01/2007, 11:19
 
Fecha de Ingreso: octubre-2003
Ubicación: barcelona/La seu d'urgell
Mensajes: 26
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo ADO con MySql

Hola,

He creado una clase generica de acceso a bd en asp, en la cual puedes ejecutar sql, sp's... en diferentes bd's (SqlServer, Oracle, MySql...)
El problema es cuando intento ejectuar un SP en MySql, cuando le paso parametros al objeto command, si estos son strings no me los coge bien... y no se cual es el fallo. He intentado con diferentes tipos adVarchar, adChar,... pero solo me funciona cuando le paso adInteger.
En SqlServer no tengo ningún problema.

Un ejemplo del código es:

oCommand.CommandTimeout = 60
oCommand.CommandType = adCmdStoredProc
oCommand.CommandText = "SELECT * FROM USUARIOS"
oCommand.Prepared=True
set p = oCommand.Parameters

p.Append oCommand.CreateParameter("nombre", adVarchar,adParamInput,50)
oCommand("nombre") = "Toni"

oCommand.Execute
oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.Open oCommand

Alguien sabe cual es el problema?
Gracias,
m
__________________
En el mundo hay 10 tipos de personas, los que entienden el binario y los k no.
  #2 (permalink)  
Antiguo 23/01/2007, 12:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: ADO con MySql

Mmmhhhhh lo único que se me ocurre es que no te estés conectando a esa base de datos con OLEDB, además de que verifiques tu conexión, trata pasando el valor cuando creas el parámetro:

Código:
Set p = oCommand.CreateParameter("nombre", adVarChar, adParamInput, 50, "Toni")
oCommand.Parameters.Append(p)
Ja, ya vi otro detalle más...si tienes un stored procedure, para qué le pasas un commandText? no deberías pasarle el nombre de tu stored procedure?
Porque ahí realmente estás creando el parámetro sin necesidad...bueno, ya nos dirás más cosas.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 23/01/2007, 12:25
 
Fecha de Ingreso: octubre-2003
Ubicación: barcelona/La seu d'urgell
Mensajes: 26
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: ADO con MySql

Pedon, no he escrito bien el codigo... he hecho un mix de la consulta en sql y sp :P

oCommand.CommandTimeout = 60
oCommand.CommandType = adCmdStoredProc
oCommand.CommandText = "ConsultaUsuario"
oCommand.Prepared=True
set p = oCommand.Parameters

p.Append oCommand.CreateParameter("nombre", adVarchar,adParamInput,50)
oCommand("nombre") = "Toni"

oCommand.Execute
oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.Open oCommand

Por lo k me comentas, diria k no es la conexion porque cuando ejecuto un sp con un paramentro integer me devuelve bien los datos... y cuando no le paso ningun parametro tb funciona bien.
Entonces he deducido k solo puede ser del parametro k no lo paso bien o k realmente no funciona bien en MySql.

Otra cosa k he visto es k si ejecuto el sp de esta forma si k funciona bien:

oCommand.CommandTimeout = 60
oCommand.CommandType = adCmdStoredProc
oCommand.CommandText = "ConsultaUsuario('Toni')"
oCommand.Prepared=True
oCommand.Execute

oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.Open oCommand

Gracias por responder,

m
__________________
En el mundo hay 10 tipos de personas, los que entienden el binario y los k no.
  #4 (permalink)  
Antiguo 23/01/2007, 13:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: ADO con MySql

Ok, pero no entiendo entonces qué es lo que preguntas, intentaste algo de lo que ya mencionamos?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 23/01/2007, 14:03
 
Fecha de Ingreso: octubre-2003
Ubicación: barcelona/La seu d'urgell
Mensajes: 26
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: ADO con MySql

No aún no, mañana en el trabajo intenaré pasar el parametro cuando lo cree, tal komo me dijiste:

Set p = oCommand.CreateParameter("nombre", adVarChar, adParamInput, 50, "Toni")
oCommand.Parameters.Append(p)

Ya te comento algo mañana, a ver si funciona.
Gracias,
m
__________________
En el mundo hay 10 tipos de personas, los que entienden el binario y los k no.
  #6 (permalink)  
Antiguo 24/01/2007, 04:23
 
Fecha de Ingreso: octubre-2003
Ubicación: barcelona/La seu d'urgell
Mensajes: 26
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: ADO con MySql

He probado lo que comentamos y me sigue fallando al abrir el recordset. Puede que el error venga por la bd... pq le he dado todos los derechos posibles, y nose que puede ser.
En SqlSever me funciona perfecto todo.

oCommand.CommandTimeout = 60
oCommand.CommandType = adCmdStoredProc
oCommand.CommandText = "ConsultaUsuario"
oCommand.Prepared=True
oCommand.Execute

set p = oCommand.Parameters
p.Append oCommand.CreateParameter("nombre", adVarchar,adParamInput,20, "Toni")

oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.Open oCommand

Saludos,
m
__________________
En el mundo hay 10 tipos de personas, los que entienden el binario y los k no.
  #7 (permalink)  
Antiguo 24/01/2007, 12:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: ADO con MySql

Cita:
Iniciado por diRKoM Ver Mensaje
He probado lo que comentamos y me sigue fallando al abrir el recordset. Puede que el error venga por la bd... pq le he dado todos los derechos posibles, y nose que puede ser.
En SqlSever me funciona perfecto todo.

oCommand.CommandTimeout = 60
oCommand.CommandType = adCmdStoredProc
oCommand.CommandText = "ConsultaUsuario"
oCommand.Prepared=True
oCommand.Execute

set p = oCommand.Parameters
p.Append oCommand.CreateParameter("nombre", adVarchar,adParamInput,20, "Toni")

oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.Open oCommand

Saludos,
m
No estoy seguro si realmente tienes que ejecutar ahi el comando, ni siquiera le has pasado los parametros.

Saludos
__________________
"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 00:54.