ayuda objetos connection hola tengo un problema y es el sgte:
resulta que cree un formulario que consta de dos partes la primera parte los datos se guardn en una tabla llamada usuario y la segunda parte de los datos se guarda en una tabla llamada sistema estas tablan estan relacionadas de uno a muchos (un usuario puede tener muchos sistemas) para hacer el ingreso de los datos uso procedimientos almacenados y he aki mi problema; cuando hago el ingreso de los datos por separado (cabe decir que tengo dos formularios de prueba uno para usuario y otro para sistemas ) los procedimientos almacenados funcionan correctamente haciendo el ingreso de los datos, ahora cuando quiero hacer el ingreso de los datos de una sola vez en el formulario que he creado solo ingresan los datos a la tabla usuario y no a la de sistemas, investigando opr ahi supe que esto se debe que en una pagina solo se puede utilizar un solo procedimiento almacenado y no dos como yo lo estaba haciendo , pero me dicen que para poder utilizar dos procedimientos almacenados hay una forma y es utilizando los objetos de conexion BeginTrans,CommitTrans ,RollBackTrans agregue estas objetos a mi codigo de insercion de datos pero solo me pesca la primera parte
aki les dejo el codigo si les sirve de algo para aclarar la idea es un poco largo pero solo quieor ke se fijen en los objetos connection, de antemano les agradezco su colaboracion muchas gracias :D
call check_sesion(session("Menu"))
nuevo = trim(request("nuevo"))
loc_slcusu_id = request("ch_1")
loc_slcusu_rut = request("ch_2")
loc_slcusu_pnombre = request("ch_3")
loc_slcusu_snombre = request("ch_4")
loc_slcusu_apaterno = request("ch_5")
loc_slcusu_amaterno = request("ch_6")
loc_slcusu_cargo = request("ch_7")
loc_slcusu_anexo = request("ch_8")
loc_sisper_id = request("ch_19")
loc_sisper_id_sistema = request("ch_20")
loc_sisper_id_perfil = request("ch_21")
loc_sisper_tipo_grupo = request("ch_22")
loc_sisper_desc_sistema = request("ch_23")
loc_sisper_desc_perfil = request("ch_24")
cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = Sys_conn Sys_conn.BEGINTRANS
file_ret = "nacu_00010.asp"
graba = "SI"
QRY_pkg = "{ Call nacu_PUT_solctausuario ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ) }"
CmdTemp.Parameters.Append CmdTemp.CreateParameter ("Pkg_que", 129, 1, 1)
CmdTemp.Parameters.Append CmdTemp.CreateParameter( "Pkg_slcusu_id",5,3,18)
CmdTemp.Parameters.Append CmdTemp.CreateParameter( "Pkg_slcusu_rut",5,1,18)
CmdTemp.Parameters.Append CmdTemp.CreateParameter( "Pkg_slcusu_pnombre",129,1,50)
CmdTemp.Parameters.Append CmdTemp.CreateParameter( "Pkg_slcusu_apaterno",129,1,50)
CmdTemp.Parameters.Append CmdTemp.CreateParameter( "Pkg_slcusu_amaterno",129,1,50)
If Trim(nuevo) = "SI" Then
CmdTemp.Parameters("Pkg_que") = "I": 'ingresa
'================================================= ===============================
IF nuevo = "SI" then
CmdTemp.Parameters( "Pkg_slcusu_id" ) = Null
ELSE
if len(trim(loc_slcusu_id)) = 0 then
graba = "NO"
else
CmdTemp.Parameters( "Pkg_slcusu_id" ) = trim( loc_slcusu_id )*1
end if
END IF
if len(trim(loc_slcusu_rut)) = 0 then
graba = "NO"
else
CmdTemp.Parameters( "Pkg_slcusu_rut" ) = trim( loc_slcusu_rut )* 1
end if
if len(trim(loc_slcusu_pnombre)) = 0 then
graba = "NO"
else
CmdTemp.Parameters( "Pkg_slcusu_pnombre" ) = trim( loc_slcusu_pnombre )
end if
if len(trim(loc_slcusu_apaterno)) = 0 then
graba = "NO"
else
CmdTemp.Parameters( "Pkg_slcusu_apaterno" ) = trim( loc_slcusu_apaterno )
end if
if graba = "NO" then sys_conn.RollbackTrans
Response.Write ("<center><br><h3><strong>Tenga Paciencia pero sus Datos son Inconsistentes no los puedo Procesar<br><br>Informe esto a su Administrador</strong></h3></center>")
Response.Write("<br>"&qry_pkg)
for tr = 0 to 18
Response.write ("<br>"& cmdTemp(tr).name &" = "& cmdTemp(tr).Value )
next sys_conn.close
Response.End
End if
'================ ejecuta PKG =======================
On Error resume next
CmdTemp.CommandText = QRY_pkg
CmdTemp.Execute
' Verifica error en procedimiento
DError = Err.Number & " : " & Err.Description
if Err.Number <> 0 then sys_conn.RollbackTrans
A = instr(DError,"PK_")
B = instr(DError,"IX_")
C = instr(DError,"FK_")
if a > 0 then
Mder = "Error : No Controlado <br><br>" & "Codigo Error: "& current_page &"<br>"& DError
Response.Write ("<center><br><h3><strong>"& Mder &"<br><br>Informe esto a su Administrador</strong></h3></center>")
end if
Response.Write ("<script LANGUAGE=javascript>"& vbCrLf)
Response.Write ("alert(" & chr(34) &"No Puedo Ejecutar su Página "& chr(34) &")"& vbCrLf)
Response.Write ("// window.history.back()"& vbCrLf)
Response.Write ("</script>") sys_conn.close
Response.End
end if sys_conn.committrans
sys_conn.close
a = instr(1,file_ret,"?")
if a = 0 then
file_ret = file_ret &"?XP="& time
else
a = instr(1,file_ret,"&REL=")
if a = 0 then
file_ret = file_ret &"&XP="& time
else
file_ret = replace(file_ret,"&REL=SI","")
file_ret = file_ret &"&XP="& time &"&REL=SI"
end if
end if
Response.Write ("<script LANGUAGE=javascript>"& vbCrLf)
Response.Write ("window.open('"& file_ret &"','_self') "& vbCrLf)
Response.Write ("</script>")
Response.End
' ================= Var Input DE systema=================================
'
'================================================= ===============================
'================================================= =========================== Sys_conn.BEGINTRANS
graba = "SI"
loc_sisper_slcusu_id = CmdTemp.Parameters( "Pkg_slcusu_id" )
QRY_pkg = "{ Call nacu_PUT_sistema ( ?,?,?,?,?,?,?,? ) }"
CmdTemp1.Parameters.Append CmdTemp1.CreateParameter ("Pkg_que", 129, 1, 1)
CmdTemp1.Parameters.Append CmdTemp1.CreateParameter( "Pkg_sisper_id",5,3,18)
CmdTemp1.Parameters.Append CmdTemp1.CreateParameter( "Pkg_sisper_id_sistema",5,1,18)
CmdTemp1.Parameters.Append CmdTemp1.CreateParameter( "Pkg_sisper_id_perfil",5,1,18)
CmdTemp1.Parameters.Append CmdTemp1.CreateParameter( "Pkg_sisper_tipo_grupo",5,1,18)
'================================================= ===============================
If Trim(nuevo) = "SI" Then
CmdTemp1.Parameters("Pkg_que") = "I": 'ingresa
End If
'================================================= ===============================
IF nuevo = "SI" then
CmdTemp1.Parameters( "Pkg_sisper_id" ) = Null
ELSE
if len(trim(loc_sisper_id)) = 0 then
graba = "NO"
else
CmdTemp1.Parameters( "Pkg_sisper_id" ) = trim( loc_sisper_id )*1
end if
END IF
if len(trim(loc_sisper_id_sistema)) = 0 then
graba = "NO"
else
CmdTemp1.Parameters( "Pkg_sisper_id_sistema" ) = trim( loc_sisper_id_sistema )* 1
end if
if len(trim(loc_sisper_id_perfil)) = 0 then
graba = "NO"
else
CmdTemp1.Parameters( "Pkg_sisper_id_perfil" ) = trim( loc_sisper_id_perfil )* 1
end if
if len(trim(loc_sisper_tipo_grupo)) = 0 then
graba = "NO"
else
CmdTemp1.Parameters( "Pkg_sisper_tipo_grupo" ) = trim( loc_sisper_tipo_grupo )* 1
end if
'
'================================================= ===================
'
if graba = "NO" then sys_conn.RollbackTrans
Response.Write ("<center><br><h3><strong>Tenga Paciencia pero sus Datos son Inconsistentes no los puedo Procesar<br><br>Informe esto a su Administrador</strong></h3></center>")
Response.Write("<br>"&qry_pkg)
for tr = 0 to 7
Response.write ("<br>"& cmdTemp(tr).name &" = "& cmdTemp(tr).Value )
next sys_conn.close
Response.End
End if
'
'================================================= ===================
' <%
'================ ejecuta PKG =======================
On Error resume next
CmdTemp1.CommandText = QRY_pkg
CmdTemp1.Execute
' Verifica error en procedimiento
DError = Err.Number & " : " & Err.Description
if Err.Number <> 0 then
sys_conn.RollbackTrans
A = instr(DError,"PK_")
B = instr(DError,"IX_")
C = instr(DError,"FK_")
if a > 0 then
Mder = "Error : No Controlado <br><br>" & "Codigo Error: "& current_page &"<br>"& DError
Response.Write ("<center><br><h3><strong>"& Mder &"<br><br>Informe esto a su Administrador</strong></h3></center>")
end if
Response.Write ("<script LANGUAGE=javascript>"& vbCrLf)
Response.Write ("alert(" & chr(34) &"No Puedo Ejecutar su Página "& chr(34) &")"& vbCrLf)
Response.Write ("// window.history.back()"& vbCrLf)
Response.Write ("</script>") sys_conn.close
Response.End
end if sys_conn.committrans
sys_conn.close
a = instr(1,file_ret,"?")
if a = 0 then
file_ret = file_ret &"?XP="& time
else
a = instr(1,file_ret,"&REL=")
if a = 0 then
file_ret = file_ret &"&XP="& time
else
file_ret = replace(file_ret,"&REL=SI","")
file_ret = file_ret &"&XP="& time &"&REL=SI"
end if
end if
Response.Write ("<script LANGUAGE=javascript>"& vbCrLf)
Response.Write ("window.open('"& file_ret &"','_self') "& vbCrLf)
Response.Write ("</script>")
Response.End
%>
<!-- #include file="../dtr_include_2k4/Dtr_check_sesion.Mit"--> |