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

Procedimiento almacenado

Estas en el tema de Procedimiento almacenado en el foro de Programación General en Foros del Web. Hola, estoy desarrollando un sitio web con Dreamweaver MX , tecnología ASP VBScript, Personal Web Server como servidor de prueba y SQL 2000 Server como ...
  #1 (permalink)  
Antiguo 05/06/2003, 12:10
 
Fecha de Ingreso: marzo-2003
Mensajes: 38
Antigüedad: 21 años, 1 mes
Puntos: 0
Procedimiento almacenado

Hola, estoy desarrollando un sitio web con Dreamweaver MX , tecnología ASP VBScript, Personal Web Server como servidor de prueba y SQL 2000 Server como base de datos.

He creado un procedimiento almacenado en SQL Server el cual me inserta una serie de parámetros en dos tablas distintas de la base de datos, me funciona perfecto dentro de SQL Server. También me funciona bien dentro de Dreamweaver cuando en el cuadro de diálogo desde donde llamo el procedimiento le doy al botón prueba, me hace bien las inserciones en las tablas de la BD. Pero cuando lo pruebo con el explorador NO FUNCIONA, me da siempre el mensaje de error siguiente:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
/tienda/nueva oferta ok.asp, line 55

¿Alguien me puede decir a que se debe este error y como puedo solucionarlo?

Gracias,
Cesar
  #2 (permalink)  
Antiguo 05/06/2003, 15:37
Avatar de winsor  
Fecha de Ingreso: junio-2003
Mensajes: 35
Antigüedad: 20 años, 11 meses
Puntos: 0
Hello:
si pones el codigo que hay en la linea 55 (/tienda/nueva oferta ok.asp, line 55 ) te podria ayudar de mejor manera.
chauuu.
  #3 (permalink)  
Antiguo 06/06/2003, 02:39
 
Fecha de Ingreso: marzo-2003
Mensajes: 38
Antigüedad: 21 años, 1 mes
Puntos: 0
Hello winsor,

el código de la linea 55 solo es el siguiente:

Id = nueva_oferta.Execute

No se si con esto tendras suficiente , te pongo todo el código que incluie tambien la linea 55. Es el código que me escribe DW después de indicarle que me coja el procedimiento almacenado de SQL, primero define las variables y después me pone esto:

<%

set nueva_oferta = Server.CreateObject("ADODB.Command")
nueva_oferta.ActiveConnection = MM_Conexion2_STRING
nueva_oferta.CommandText = "dbo.form_nueva_oferta"
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@RETURN_VALUE", 3, 4)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@Data", 135, 1,8,nueva_oferta__Data)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@Titulo_Oferta", 200, 1,16,nueva_oferta__Titulo_Oferta)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@Empresa_Num", 3, 1,4,nueva_oferta__Empresa_Num)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@NomProducte", 200, 1,16,nueva_oferta__NombreProducto)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@FamiliaNum", 3, 1,4,nueva_oferta__FamiliaNum)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@CalidadNum", 3, 1,4,nueva_oferta__CalidadNum)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@Medidas", 131, 1,9,nueva_oferta__Medidas)
nueva_oferta.Parameters.Append nueva_oferta.CreateParameter("@Preciokilo", 6, 1,8,nueva_oferta__PrecioKilo)
nueva_oferta.CommandType = 4
nueva_oferta.CommandTimeout = 0
nueva_oferta.Prepared = true

Id = nova_oferta.Execute

Id_Oferta_numRows = 0
Id_numRows = 0
%>


Espero que te suene algo ,
Gracias


Cita:
Mensaje Original por winsor
Hello:
si pones el codigo que hay en la linea 55 (/tienda/nueva oferta ok.asp, line 55 ) te podria ayudar de mejor manera.
chauuu.
  #4 (permalink)  
Antiguo 06/06/2003, 16:23
Avatar de winsor  
Fecha de Ingreso: junio-2003
Mensajes: 35
Antigüedad: 20 años, 11 meses
Puntos: 0
Hello:
Veo que estas asignando el resultado de la intruccion a una variable (corrigeme si no es asi) y puede que de la ejecucion de esa instruccion se esten devolviendo mas de un valor y por eso puede que se maree, si es asi deverias condicionar mas la instruccion para que te devuelva solo un resultado, espero sea eso y buena suerte
chauuu
  #5 (permalink)  
Antiguo 09/06/2003, 05:42
 
Fecha de Ingreso: marzo-2003
Mensajes: 38
Antigüedad: 21 años, 1 mes
Puntos: 0
Sonrisa Solucionado

Si, estoy asignando el resultado de la instrucción a una variable, pero no sé que quieres decir con lo de “puede que de la ejecución de esa instrucción se estén devolviendo mas de un valor”.

Pero me parece que ya he encontrado el “error”. ¿Te has fijado en los trozos de código estos? : ("@Medidas", 131, 1,9,nueva_oferta__Medidas), pues el primer número, en este caso “131” significa el tipo de dato que envía a la base de datos, en este caso el “131” es del tipo numérico, pues mi base de datos SQL 2000 no le gusta o no entiende este tipo y me da el error cuando envío la variable, pero funciona bien si en vez de poner “131” pongo por ejemplo “200” que es del tipo “varchar”. Estos códigos de tipo de dato que usa Dreamweaver es del lenguaje ADO VBScript que hace posible el entendimiento con la base de datos, me lo puso DW él solito cuando le indiqué el procedimiento almacenado que tenia que coger desde el cuadro de diálogo para insertar comandos, de hecho él me puso todo el código .


Gracias por tú interés, y si quieres aconsejarme cualquier cosa ¡ adelante!
Cesar







Cita:
Mensaje Original por winsor
Hello:
Veo que estas asignando el resultado de la intruccion a una variable (corrigeme si no es asi) y puede que de la ejecucion de esa instruccion se esten devolviendo mas de un valor y por eso puede que se maree, si es asi deverias condicionar mas la instruccion para que te devuelva solo un resultado, espero sea eso y buena suerte
chauuu
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 14:59.