Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2007, 10:21
rezocrew
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
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"-->