%@LANGUAGE="VBSCRIPT"%>
<%
Option explicit
Response.Expires = 0 ' always load the page, dont store
%>
<%
'=====================================================
' _wform_change_eref.asp
'=====================================================
%>
<%
'------------ ACCESS CONTROL ------------------
%>
<%
'------------ Variable Definition -------------
Dim parPv_id
Dim sMessage, sMessageType
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
parPv_id = QStrPar("pv_id")
sMessage = NULL
sMessageType = 3
'----------------------------------------------
%>
<%
'------------------------------------------------------------------------------------------------------------------------------------------
'
' Add a line of text to the System Message
' eLevel - 1 == Critical, 2==Warning, 3==Note
Sub sMessageAdd(eLevel, text)
If NOT isNull(sMessage) Then
sMessage = sMessage & "
"
End If
sMessage = sMessage & text
If eLevel < sMessageType Then
sMessageType = eLevel
End If
End Sub
Sub Get_Pkg_Info_With_Eref ( NNpv_id )
Dim rsTemp, Query_String
Query_String = _
" SELECT pkg.pkg_name, pv.pkg_version, pe.eref"&_
" FROM packages pkg, package_versions pv, package_eref pe"&_
" WHERE pkg.pkg_id = pv.pkg_id"&_
" AND pv.pv_id = "& NNpv_id &_
" AND pe.pv_id(+) = pv.pv_id"
Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
pkgInfoHash.Add "pkg_name", (rsTemp.Fields("pkg_name"))
pkgInfoHash.Add "pkg_version", (rsTemp.Fields("pkg_version"))
pkgInfoHash.Add "eref", (rsTemp.Fields("eref"))
End If
rsTemp.Close
Set rsTemp = nothing
End Sub
Sub Update_Eref ( NNpv_id, erefText )
Dim rsTemp, Query_String, sComments
'If the entry is empty then delete the table element
If erefText = "" Then
Delete_Eref(NNpv_id)
Exit Sub
End If
'-- Update database to change the eRef
objEH.TryORA ( OraSession )
On Error Resume Next
Query_String = _
"MERGE INTO PACKAGE_EREF pe" &_
" USING (SELECT "& NNpv_id & " pv_id, '"& erefText & "' eref from dual) s" &_
" ON (pe.pv_id = s.pv_id)" &_
" WHEN MATCHED THEN UPDATE SET pe.eref = s.eref" &_
" WHEN NOT MATCHED THEN INSERT (pv_id, eref) VALUES (s.pv_id, s.eref)"
OraDatabase.ExecuteSQL Query_String
objEH.CatchORA ( OraSession )
If objEH.LastOraFailed = FALSE Then
'-- Log the change
sComments = "Set: "& erefText
call Log_Action ( NNpv_id, "eref_change", sComments )
End If
rsTemp.Close
Set rsTemp = nothing
End Sub
'-------------------------------------------------
' Function: Delete_Eref
' Description: Delete a Package external Reference
'
Sub Delete_Eref ( NNpv_id )
Dim rsTemp, Query_String, sComments
'-- Update database to change the eRef
objEH.TryORA ( OraSession )
On Error Resume Next
Query_String = _
"DELETE FROM PACKAGE_EREF pe" &_
" WHERE PV_ID = " & NNpv_id
OraDatabase.ExecuteSQL Query_String
objEH.CatchORA ( OraSession )
If objEH.LastOraFailed = FALSE Then
'-- Log the change
sComments = "Deleted"
call Log_Action ( NNpv_id, "eref_change", sComments )
Else
bOraError = TRUE
End If
rsTemp.Close
Set rsTemp = nothing
End Sub
%>
<%
'Process submition
If CBool(QStrPar("action")) AND objAccessControl.UserLogedIn Then
Call Update_Eref ( parPv_id, Request("eref") )
If isNULL(sMessage) AND NOT objEH.LastOraFailed Then
Call ReloadParentWindow
Call CloseWindow
End If
End If
%>
<%
Call Get_Pkg_Info_With_Eref ( parPv_id )
%>