Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2005, 09:41
Avatar de Sayra
Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 5 meses
Puntos: 1
Error para actualizar datos usuario

Hola tengo una aplicacion en la cual actualizo datos y agrego nuevos usuarios
y cuando desea actualizar o agregar me genera este error

Cita:
Microsoft OLE DB Provider for SQL Server error '80040e10'

Procedure 'UpdateUser' expects parameter '@buss_id', which was not supplied.
EL CODE QUE USO ES ESTE

Cita:
' Variables
Dim oRec, iUserId
dim sTitle, sMess
dim sFirstName, sLastName, sPersEmail, sPersPhone
dim iCountry, iSite, iLevel, iFunction, iBussUnit
dim dtStartDate, sPGPhone, sPGEmail, sUniversity
dim iAccessLevel, sPass, bActivo, iManager


' Inicialización de variables
sMess = ""

' Tomar id
iUserId = Request.QueryString("user_id")

' Manager
if Request.Form("manager") = "" then
iManager = 0
else
iManager = Request.Form("manager")
end if


' Validar si se hizo post
if (Request.form("last_name") <> "") then

'Clear Parameters
oConn.ClearParameters
oConn.CreateParameter "@personal_email" , advarchar, adParamInput,50, Request.Form("pers_email")
oConn.CreateParameter "@pg_email" , advarchar, adParamInput,50, Request.Form("pg_email")
Set oRec = oConn.ExecuteQuery("ValidateNewUser")

' Parámetros
oConn.ClearParameters
oConn.CreateParameter "@user_nomb" , advarchar, adParamInput,50, Request.Form("first_name")
oConn.CreateParameter "@user_apel" , advarchar, adParamInput,50, Request.Form("last_name")
oConn.CreateParameter "@coun_id" , adtinyint, adParamInput,1, Request.Form("country")
oConn.CreateParameter "@user_mail" , advarchar, adParamInput,50, Request.Form("pers_email")
oConn.CreateParameter "@site_id" , adsmallint,adParamInput, 2, Request.Form("site")
oConn.CreateParameter "@buss_id" , adsmallint,adParamInput, 2, Request.Form("_unit")
oConn.CreateParameter "@user_telf" , advarchar, adParamInput,12, Request.Form("pers_phone")
oConn.CreateParameter "@func_id" , adsmallint,adParamInput, 2, Request.Form("funcion")
oConn.CreateParameter "@user_sdate" , addate, adParamInput, 8, Request.Form("start_year") & "-" & Request.Form("start_month") & "-" & Request.Form("start_day")
oConn.CreateParameter "@user_pgmail", advarchar, adParamInput,50, Request.Form("pg_email")
oConn.CreateParameter "@leve_id" , adtinyint, adParamInput,1, Request.Form("level")
oConn.CreateParameter "@user_univ" , advarchar, adParamInput,50, Request.Form("university")
oConn.CreateParameter "@user_pgtel" , advarchar, adParamInput,12, Request.Form("pg_phone")
oConn.CreateParameter "@user_nive" , adtinyint, adParamInput,1, Request.Form("access_level")
if len(Request.Form("password")) = 0 then
oConn.CreateParameter "@user_pass" , advarchar, adParamInput,10, "123"
else
oConn.CreateParameter "@user_pass" , advarchar, adParamInput,10, Request.Form("password")
end if
oConn.CreateParameter "@user_stat" , adtinyint, adParamInput,1, Request.Form("activo")
oConn.CreateParameter "@manager", adInteger, adParamInput, 4, iManager

' Iniciar la transacción
oConn.BeginTrans
' Edición
if (iUserId <> "") then
if not(oRec.eof) then
oConn.CreateParameter "@user_id", adInteger, adParamInput, 4, iUserId
oConn.ExecuteNonQuery("UpdateUser")
sMess = "The User has been updated"
else
%>
<script>
alert('A problem has ocurred.');
</script>
<%
end if
'Nuevo usuario
else
if (oRec.eof) then
oConn.CreateParameter "@user_id", adInteger, adParamOutput, 4, null
oConn.ExecuteNonQuery("InsertUser")

' Tomar nuevo id
iUserId = oConn.GetParameterValue("@user_id")
sMess = "The User has been created"
else
%>
<script>
alert('User already exist.');
</script>
<%
end if
end if

' Guardar las asignaciones de encuestas
' Borrar encustas anteriores (las que no haya contestado el usuario)
oConn.ClearParameters
oConn.CreateParameter "@user_id", adInteger, adParamInput, 4, iUserId
oConn.ExecuteNonQuery("DeleteUserEncuesta")
dim aEncSel
aEncSel = split(Request.Form("encuestas_asig"), ",")
if (isarray(aEncSel)) then
for i=0 to ubound(aEncSel)
oConn.ClearParameters
oConn.CreateParameter "@user_id", adInteger, adParamInput, 4, iUserId
oConn.CreateParameter "@encu_id", adTinyint, adParamInput, 1, aEncSel(i)
oConn.ExecuteNonQuery("InsertUserEncuesta")
next
end if

' Confirmar la transacción
oConn.CommitTrans
end if

' Si es edición
if (iUserId <> "") then
sTitle = "Edit User"

' Buscar datos en la bd
oConn.ClearParameters
oConn.CreateParameter "@user_id", adInteger, adParamInput, 1, iUserId
set oRec = oConn.ExecuteQuery("SelectUserEditData")
if not oRec.eof then
sLastName = oRec.Fields("user_apel")
sFirstName = oRec.Fields("user_nomb")
sPersEmail = oRec.Fields("user_mail")
sPersPhone = oRec.Fields("user_telf")
iCountry = oRec.Fields("coun_id")
iSite = oRec.Fields("site_id")
iLevel = oRec.Fields("leve_id")
iFunction = oRec.Fields("func_id")
iBussUnit = oRec.Fields("buss_id")
dtStartDate = oRec.Fields("user_sdate")
sPGPhone = oRec.Fields("user_pgtel")
sPGEmail = oRec.Fields("user_pgmail")
sUniversity = oRec.Fields("user_univ")
iAccessLevel = oRec.Fields("user_nive")
sPass = oRec.Fields("user_pass")
bActivo = oRec.Fields("user_stat")
iManager = oRec.Fields("user_manager")
end if
else
sTitle = "Add User"
bActivo=true
dtStartDate = date()
end if
El store procedure involucrado es este


Cita:
CREATE PROCEDURE dbo.UpdateUser
@user_nomb varchar(50),
@user_apel varchar(50),
@coun_id tinyint,
@user_mail varchar(50),
@site_id smallint,
@buss_id smallint,
@user_telf varchar(12),
@func_id smallint,
@user_sdate datetime,
@user_pgmail varchar(50),
@leve_id tinyint,
@user_univ varchar(50),
@user_pgtel varchar(12),
@user_nive tinyint,
@user_pass varchar(10),
@user_stat bit,
@manager int,
@user_id int
AS
Update users set
user_nomb=@user_nomb, user_apel=@user_apel, coun_id=@coun_id, user_mail=@user_mail,
site_id=@site_id, buss_id=@buss_id, user_telf=@user_telf, func_id=@func_id, user_sdate=@user_sdate,
user_pgmail=@user_pgmail, leve_id=@leve_id, user_univ=@user_univ, user_pgtel=@user_pgtel,
user_nive=@user_nive, user_pass=@user_pass, user_stat = @user_stat, user_manager = @manager
where user_id=@user_id


GO
Sinceramente nose como resolver este problemas

gracias por la ayuda