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

sqlsrvr - store procedures como actualizar tabla y seleccionar, luego mostrar en asp

Estas en el tema de sqlsrvr - store procedures como actualizar tabla y seleccionar, luego mostrar en asp en el foro de Bases de Datos General en Foros del Web. Hola amigos estoy queriendo hacer un store procedures que me actualice un campo de una base datos y luego me muestre otros campos del registro ...
  #1 (permalink)  
Antiguo 29/04/2005, 09:25
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 9 meses
Puntos: 14
sqlsrvr - store procedures como actualizar tabla y seleccionar, luego mostrar en asp

Hola amigos estoy queriendo hacer un store procedures que me actualice un campo de una base datos y luego me muestre otros campos del registro actualizado.

Se actualiza pero no puedo mostrar, lo seleccionado en asp.

Código:
-- codigo de store ---
CREATE PROCEDURE [dbo].[ws_usuarios_activar]
@codigo int
AS
UPDATE usuarios SET estado=1 WHERE codigo=@codigo
SELECT email,clave FROM usuarios WHERE codigo=@codigo
GO


-- codigo en asp --

set cmdActivar = server.CreateObject("adodb.command")
cmdActivar.ActiveConnection = conn
cmdActivar.CommandType = adCmdStoredProc
cmdActivar.CommandText = "ws_usuarios_activar"

cmdActivar.Parameters.Append cmdActivar.CreateParameter("@codigo", adInteger, adParamInput, , codigo )

set rs = cmdActivar.execute
set cmdActivar = nothing

'crear session de usuario
if not rs.eof then
	session("email") = rs("email")
	session("clave") = rs("clave")
end if
el error que me tira es este:

ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

/activar.asp, line 18



¿que estoy haciendo mal?

Gracias de antemano
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #2 (permalink)  
Antiguo 29/04/2005, 15:10
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Agrégale esto a tu código y me dices:
Código:
CREATE PROCEDURE [dbo].[ws_usuarios_activar]
@codigo int
AS
SET NOCOUNT ON
UPDATE usuarios SET estado=1 WHERE codigo=@codigo
SELECT email,clave FROM usuarios WHERE codigo=@codigo
GO
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 02/05/2005, 12:58
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 9 meses
Puntos: 14
Excelente!!!


No conocia cual era el uso de

SET NOCOUNT {ON | OFF}


Gracias.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #4 (permalink)  
Antiguo 18/11/2009, 11:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sqlsrvr - store procedures como actualizar tabla y seleccionar, luego most

Excelente informacion gracias
  #5 (permalink)  
Antiguo 18/11/2009, 16:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Respuesta: sqlsrvr - store procedures como actualizar tabla y seleccionar, luego most

Hola amigos, en el proyecto en el que me encuentro estamos utilizando PHP 5 con MySQL 5 y ADODB para esto creamos una clase que es la que ejecuta todas las llamadas a la clase ADO... en esta clase hicimos la siguiente función para llamar a un procedimiento almacenado de MySql el cual recibe dos parámetros:


$this->Connec = &ADONewConnection("mysql://root:root@localhost/db?clientflags=65536");

$this->Connec->Connect($this->Servidor, $this->Usuario, $this->Clave, $this->BDatos);

$query = "Call proyeccion_ingreso('$num_orden', $vanno);";

$recordSet = $this->Connec->Execute($query);



Esta función se ejecuta y devuelve los datos correctamente. Cual es el problema que la llamada a esta función esta dentro de un ciclo y al llamarla por segunda vez me lanza el siguiente error:



#2014 ==> Commands out of sync; you can't run this command now



Alguien puede ayudarme a solucionar este problema...



Saludos y muchas gracias...
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:22.