Subversion Repositories DevTools

Rev

Rev 1283 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'=====================================================
'                                        COMMON DB EDIT
'=====================================================
%>
<%
Sub Update_Pkg_Category ( SSrtag_id, SSpv_id, SSbase_view_id )

        OraDatabase.Parameters.Add "PV_ID",     SSpv_id,                                ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "RTAG_ID",   SSrtag_id,                              ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "VIEW_ID",   SSbase_view_id,                                 ORAPARM_INPUT, ORATYPE_NUMBER


        OraSession.BeginTrans
        OraDatabase.ExecuteSQL _
        "BEGIN PK_ENVIRONMENT.CHANGE_PACKAGE_VIEW ( :PV_ID, :RTAG_ID, :VIEW_ID );  END;"
        OraSession.CommitTrans


        OraDatabase.Parameters.Remove "PV_ID"
        OraDatabase.Parameters.Remove "RTAG_ID"
        OraDatabase.Parameters.Remove "VIEW_ID"

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Seed_Package_Names_Versions ( ARRdep, NNretPV_ID )
        Dim i
        OraDatabase.Parameters.Add "retPV_ID", 0, ORAPARM_OUTPUT, ORATYPE_NUMBER
        OraSession.BeginTrans
        For i = 0 To UBound( ARRdep, 2 )
                OraDatabase.ExecuteSQL "BEGIN Seed_Package_Names_Versions ('"& ARRdep(0,i) &"','"& ARRdep(1,i) &"', "& objAccessControl.UserId &", :retPV_ID); END;"
        Next
        OraSession.CommitTrans
        OraDatabase.Parameters.Remove "retPV_ID"
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function IsExtention ( SSstr )
        Dim objRegEx, Match, Matches, StrReturnStr
    Set objRegEx = New RegExp

    objRegEx.IgnoreCase = True
    objRegEx.Pattern = "[A-Za-z]+"

        Set Matches = objRegEx.Execute( SSstr )
    For Each Match in Matches
        IsExtention = true
    Next
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Get_Pkg_Base_View_ID ( NNpv_id, NNrtag_id )
        Dim rsTemp, Query_String

        If Request("rtag_id") = "" Then
                Get_Pkg_Base_View_ID = -1
                Exit Function
        End If

        Query_String = _
        " SELECT rc.base_view_id"&_
        "  FROM release_content rc"&_
        " WHERE rc.rtag_id = "& NNrtag_id &_
        "   AND rc.pv_id = "& NNpv_id

        Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                Get_Pkg_Base_View_ID = CInt( rsTemp("base_view_id") )
        Else
                Get_Pkg_Base_View_ID = NULL
        End If

        rsTemp.Close
        Set rsTemp = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Get_V_EXT ( SSversion )
        Dim v_ext
        v_ext = Right(SSversion, Len(SSversion) - InStrRev( SSversion, "." ))

        If IsExtention ( v_ext ) Then
                Get_V_EXT = v_ext
        Else
                Get_V_EXT = NULL
        End If

End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub Touch_Package ( NNpv_id )
        If NNpv_id = "" Then Exit Sub
        OraSession.BeginTrans
        OraDatabase.ExecuteSQL " UPDATE package_versions "&_
                                                   " SET modified_stamp = "& ORA_SYSDATETIME  &", modifier_id = "& objAccessControl.UserId &_
                                                   " WHERE pv_id = "& NNpv_id
        OraSession.CommitTrans
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Rebuild_Environment ( NNrtag_id )
        Dim Query_String, rsTemp, needRebuild, secToday

        If NNrtag_id = "" Then Exit Sub         ' Exit if rtag_id is not supplied

        ' Find if rebuild is required
        Query_String = "SELECT rebuild_env FROM release_tags WHERE rtag_id = "& NNrtag_id
        Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                If rsTemp("rebuild_env") = "Y" Then
                        needRebuild = TRUE
                Else
                        needRebuild = FALSE
                End If
        Else
                needRebuild = FALSE
        End If
        rsTemp.Close
        Set rsTemp = nothing

        ' EXIT on no rebuild required
        If NOT needRebuild Then Exit Sub

        ' /*  REBUILD ENVIRONMENT  */
        OraSession.BeginTrans

        ' Update rebuild stamp
        secToday = Int( Timer )
        'OraDatabase.ExecuteSQL " UPDATE release_tags "&_
        '                                          " SET rebuild_stamp = "& secToday &_
        '                                          " WHERE rtag_id = "& NNrtag_id


        ' It is important to set the flag rebuild_env = 'N' first, to stop multiple processes doing the same thing
        OraDatabase.ExecuteSQL " UPDATE release_tags "&_
                                                   " SET rebuild_env = 'N'"&_
                                                   " WHERE rtag_id = "& NNrtag_id

        OraSession.CommitTrans


        OraSession.BeginTrans

        ' Now rebuild environment
        OraDatabase.ExecuteSQL " BEGIN Rebuild_Environment( "& NNrtag_id &" ); END;"

        ' Remove rebuild flag
        'OraDatabase.ExecuteSQL " UPDATE release_tags "&_
        '                                          " SET rebuild_env = 'N'"&_
        '                                          " WHERE rtag_id = "& NNrtag_id &_
        '                                          " AND rebuild_stamp = "& secToday


        OraSession.CommitTrans
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, sQuery )
        Dim rsErr, Query_String
        Query_String = sQuery


        ' --------- SQL PARAMETERS ------------
        OraDatabase.Parameters.Add "RTAG_ID",                                   nRtag_id,                               ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "PV_ID",                                     nPv_id,                                 ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "enumPKG_STATE_OK",                  enumPKG_STATE_OK,               ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "enumISSUES_STATE_FIXED",    enumISSUES_STATE_FIXED, ORAPARM_INPUT, ORATYPE_NUMBER
        ' -------------------------------------
        Set rsErr = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        returnERRmsg = NULL
        returnALRTmsg = NULL

        If ( nPkgType = enumBASE_VIEW_PRODUCTS ) Then
                ' Check Requirement for products
        Do While ((NOT rsErr.BOF) AND (NOT rsErr.EOF))
                If Not IsNull(rsErr("err_message")) Then
                returnERRmsg = rsErr("err_message")
                        returnALRTmsg = rsErr("products_msg")
                        returnParameters = "_make_released.asp" &"|"
                        If returnALRTmsg = "ERROR" Then
                                returnParameters = rsErr("rfile") &"|"& rsErr("anchor")
                                Exit Do
                        End If
                End If

                rsErr.MoveNext
                Loop

        Else
                ' Check Requirements for other packages
                Do While ((NOT rsErr.BOF) AND (NOT rsErr.EOF))
                If Not IsNull(rsErr("err_message")) Then
                        returnERRmsg = rsErr("err_message")
                        returnParameters = rsErr("rfile") &"|"& rsErr("anchor")
                        Exit Do
        End If

                rsErr.MoveNext
        Loop

        End If



        rsErr.Close
        Set rsErr = nothing
        OraDatabase.Parameters.Remove "RTAG_ID"
        OraDatabase.Parameters.Remove "PV_ID"
        OraDatabase.Parameters.Remove "enumPKG_STATE_OK"
        OraDatabase.Parameters.Remove "enumISSUES_STATE_FIXED"
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub CheckRequirementsForMakeRelease ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )
        Dim QueryString, rsQry
        QueryString = "SELECT pv.IS_PATCH FROM PACKAGE_VERSIONS pv WHERE pv.PV_ID = "& nPv_id
        Set rsQry = OraDatabase.DbCreateDynaset( QueryString, cint(0))

        If IsNull(rsQry("is_patch")) Then
                ' For Package
                'Response.write "HERE"
                Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_official.sql" ) )
        Else
                ' For Patch
                Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_official_patch.sql" ) )
        End If

        rsQry.Close()
        Set rsQry = nothing

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub CheckRequirementsForMakePending ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )
        Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_pending.sql" ) )
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub CheckRequirementsForMakeApproved ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )
        Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_approved.sql" ) )
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Notify ( NNrtag_id )
        Dim Query_String, Location_SQL, rsNotify, emailBody, readyPv_id_list, SentTODict, releaseSTR
        Dim httpRef, URL_root, headerSTR, footerSTR, oAttachmentsDict

        Set SentTODict = CreateObject("Scripting.Dictionary")
        Set oAttachmentsDict = CreateObject("Scripting.Dictionary")

        OraSession.BeginTrans

        Query_String = ReadFile( rootPath & "queries\to_notify.sql" )
        Query_String = Replace( Query_String, "/*PKG_STATE_MAJOR_READY*/", enumPKG_STATE_MAJOR_READY)
        Query_String = Replace( Query_String, "/*PKG_STATE_MINOR_READY*/", enumPKG_STATE_MINOR_READY)
        Query_String = Replace( Query_String, "/*PKG_STATE_OK*/", enumPKG_STATE_OK)
        Query_String = Replace( Query_String, "/*ORA_SYSDATETIME*/", ORA_SYSDATETIME)

        ' --------- SQL PARAMETERS ------------
        OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT
        OraDatabase.Parameters("RTAG_ID").ServerType = ORATYPE_NUMBER

        OraDatabase.Parameters.Add "CURRENT_USER", objAccessControl.UserId, ORAPARM_INPUT
        OraDatabase.Parameters("CURRENT_USER").ServerType = ORATYPE_NUMBER
        ' -------------------------------------
        'Response.write Query_String
        Set rsNotify = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        readyPv_id_list = "-1"
        emailBody = ""

        '---- Get notification list ----
        If ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF)) Then
                httpRef = Request.ServerVariables("HTTP_REFERER")
                URL_root = Left( httpRef, InStrRev(httpRef, "/") )

                emailBody = emailBody & "<tr>"
                emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Owner</b></font></td>"
                emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Package Name</b></font></td>"
                emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Version</b></font></td>"
                emailBody = emailBody & "</tr>"

                While ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF))
                    emailBody = emailBody & "<tr>"
                        emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'>"& rsNotify("full_name") &"</font></td>"
                        emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'><a href='"& URL_root &"dependencies.asp?pv_id="& rsNotify("pv_id") &"&rtag_id="& NNrtag_id &"'>"& rsNotify("pkg_name") &"</a></font></td>"
                        emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'>"& rsNotify("pkg_version") &"</font></td>"
                        emailBody = emailBody & "</tr>"

                        readyPv_id_list = readyPv_id_list &","& rsNotify("pv_id")

                        If NOT SentTODict.Exists (Cstr(rsNotify("user_email"))) Then SentTODict.Add Cstr(rsNotify("user_email")), Cstr(rsNotify("full_name"))

                        rsNotify.MoveNext
                WEnd

                emailBody = "<table width='50%' border='1' cellspacing='0' cellpadding='1'>" & emailBody & "</table>"

        End If

        rsNotify.Close
        Set rsNotify = nothing


        If readyPv_id_list <> "-1" Then
                '---- Header ----
                headerSTR = _
                "<table width='50%' border='0' cellspacing='0' cellpadding='0'>"&_
                "       <tr>"&_
                "         <td valign='bottom'><img src='cid:RM-Envelop' width='60' height='30'></td>"&_
                "         <td valign='bottom' align='right'><font size='3' face='tahoma,sans-serif'><b>release</b>manager Notifications</font></td>"&_
                "       </tr>"&_
                "       <tr> "&_
                "         <td bgcolor='#003399'></td>"&_
                "         <td bgcolor='#003399'></td>"&_
                "       </tr>"&_
                "</table><br><br>"

                '---- Footer ----
                footerSTR = _
                "<br><br>"&_
                "<table width='50%' border='0' cellspacing='0' cellpadding='0'>"&_
                "  <tr>"&_
                "    <td colspan='2'><hr size='1' noshade color='#003399'></td>"&_
                "  </tr>"&_
            "  <tr>"&_
            "    <td><img src='cid:RM-MASSlogo' width='22' height='17' hspace='5' align='absmiddle'><font size='1' face='tahoma,sans-serif'>&nbsp;<a href='http://mass.erggroup.com'>mass</a></font></td>"&_
            "    <td nowrap align='right'><font size='1' face='tahoma,sans-serif'>ERG Confidential &copy; ERG</font></td>"&_
            "  </tr>"&_
            "</table>"


                '---- Get Release loction ----
                Location_SQL = _
                " SELECT proj.proj_name, rt.rtag_name"&_
                "  FROM release_tags rt,"&_
                "       projects proj"&_
                " WHERE rt.proj_id = proj.proj_id"&_
                "   AND rt.rtag_id = :RTAG_ID"

                Set rsNotify = OraDatabase.DbCreateDynaset( Location_SQL, cint(0))
                If ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF)) Then
                releaseSTR = rsNotify("proj_name")  &" > "& rsNotify("rtag_name")
                emailBody = "<font size='1' face='tahoma,sans-serif'>"&_
                            "Following packages are ready to build.<br><br>"&_
                                        rsNotify("proj_name") &" &gt; "& rsNotify("rtag_name") &"<br>"&_
                                        "<a href='"& URL_root &"dependencies.asp?rtag_id="& NNrtag_id &"'>"& URL_root &"dependencies.asp?rtag_id="& NNrtag_id  &"</a>"&_
                                        "</font>"&_
                                        emailBody
                End If
                rsNotify.Close
                Set rsNotify = nothing

                emailBody = headerSTR & emailBody & footerSTR

                '---- Remove pkg form notification history ----
                OraDatabase.ExecuteSQL " DELETE FROM notification_history WHERE rtag_id = :RTAG_ID AND pv_id IN ( "& readyPv_id_list &" )"


                '---- Insert into notification history ----
                OraDatabase.ExecuteSQL "INSERT INTO notification_history (rtag_id, pv_id, user_id, date_time_stamp) "&_
                                                           " SELECT ins.rtag_id, ins.pv_id, ins.user_id, ins.date_time_stamp"&_
                                                           "   FROM ("&_
                                                           Query_String &_
                                                           "            ) ins"

        End If

        OraSession.CommitTrans

        '================= Send Email ==========================
        'Call Send_Email ( "Release Manager Notifications", adminEmail, adminEmail, "Your package is ready to build at "& releaseSTR, emailBody, oAttachmentsDict )

        ' ---------- Attachments -------------
        oAttachmentsDict.Add "images\i_mail.gif",               "RM-Envelop"
        oAttachmentsDict.Add "images\s_masslogo_w.gif", "RM-MASSlogo"

        Call Send_Email ( "Release Manager Notifications", adminEmail, SentTODict, "Your package is ready to build at "& releaseSTR, emailBody, oAttachmentsDict )

        OraDatabase.Parameters.Remove "RTAG_ID"
        OraDatabase.Parameters.Remove "CURRENT_USER"

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function NeedSync ( nPv_id, nRtag_id )
        Dim rsTemp, Query_String
        Query_String = ReadFile( rootPath & "queries\sync_check.sql" )

        ' --------- SQL PARAMETERS ------------
        OraDatabase.Parameters.Add "RTAG_ID",                                   nRtag_id,                               ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "PV_ID",                                     nPv_id,                                 ORAPARM_INPUT, ORATYPE_NUMBER
        ' -------------------------------------
        Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        If rsTemp.RecordCount > 0 Then
                NeedSync = TRUE
        Else
                NeedSync = FALSE
        End If

        rsTemp.Close
        Set rsTemp = nothing
        OraDatabase.Parameters.Remove "RTAG_ID"
        OraDatabase.Parameters.Remove "PV_ID"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Lookup_Document ( sDocNum, outDocTitle, outDoc_id, outDoc_version, outDoc_created  )
        Dim rsDocReg

        outDocTitle = NULL
        outDoc_id = NULL
        outDoc_version = NULL
        outDoc_created = NULL

        Set rsDocReg = Server.CreateObject("ADODB.Recordset")
        rsDocReg.ActiveConnection = DOCREP_conn

        rsDocReg.Source = "EXEC docregister.dbo.sp_RM_getDocumentFiles '"& sDocNum &"';"
        rsDocReg.CursorType = 0
        rsDocReg.CursorLocation = 2
        rsDocReg.LockType = 3

        On Error Resume Next

        rsDocReg.Open()

        If (NOT rsDocReg.BOF) AND (NOT rsDocReg.EOF)  Then
                outDocTitle = rsDocReg("title")
                outDoc_id = rsDocReg("id")
                outDoc_version = rsDocReg("version")
                outDoc_created = rsDocReg("created")
        End If

        rsDocReg.Close

        Lookup_Document = Err.Number    ' Return Error number

        Set rsDocReg = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Short_Document_Details ( nDocId, outDocTitle, outDoc_version, outDoc_created  )
        Dim rsDocReg

        outDocTitle = NULL
        outDoc_version = NULL
        outDoc_created = NULL

        Set rsDocReg = Server.CreateObject("ADODB.Recordset")
        rsDocReg.ActiveConnection = DOCREP_conn

        rsDocReg.Source = "EXEC docregister.dbo.sp_RM_getFileDetails "& nDocId &";"
        rsDocReg.CursorType = 0
        rsDocReg.CursorLocation = 2
        rsDocReg.LockType = 3

        On Error Resume Next

        rsDocReg.Open()

        If (NOT rsDocReg.BOF) AND (NOT rsDocReg.EOF)  Then
                outDocTitle = rsDocReg("title")
                outDoc_version = rsDocReg("version")
                outDoc_created = rsDocReg("created")
        End If

        rsDocReg.Close

        Short_Document_Details = Err.Number     ' Return Error number

        Set rsDocReg = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function GetIssueNumber ( nIssDB, nIssId )
        Dim rsQry

        Set rsQry = Server.CreateObject("ADODB.Recordset")
        rsQry.ActiveConnection = CQ_conn

        If CInt(nIssDB) = enumCLEARQUEST_DEVI_ID Then
        rsQry.Source = "EXEC CQ_DEVI.dbo.sp_RM_getIssueDetails "& nIssId &";"
        End If

        rsQry.CursorType = 0
        rsQry.CursorLocation = 2
        rsQry.LockType = 3

        On Error Resume Next

        rsQry.Open()

        If (NOT rsQry.BOF) AND (NOT rsQry.EOF)  Then
                GetIssueNumber = rsQry("iss_num")
        End If

        rsQry.Close
        Set rsQry = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub LoadFieldRules ( sFieldList, ByRef outobjForm )
        Dim rsQry, query

        query = _
        "   SELECT FIELD_NAME, "&_
        "                  IS_REQUIRED, "&_
        "                  IS_NUMERIC, "&_
        "                  MIN_NUMERIC_VALUE, "&_
        "                  MAX_NUMERIC_VALUE, "&_
        "                  IS_DATE, "&_
        "                  START_DATE, "&_
        "                  END_DATE, "&_
        "                  MIN_STRING_LENGTH, "&_
        "                  MAX_STRING_LENGTH, "&_
        "                  REGEXP, "&_
        "                  REGEXP_DESCRIPTION "&_
        "         FROM VALIDATION_RULES"&_
        "        WHERE field_name IN ("& sFieldList &")"


        Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                outobjForm.LoadFieldRules rsQry.GetRows()

        End If

        rsQry.Close
        Set rsQry = Nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Log_Action ( nPvId, sActionTypeName, sComments )

        OraDatabase.Parameters.Add "PV_ID",             nPvId,  ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "USER_ID",           objAccessControl.UserId,        ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "ACTION_TYPE_NAME",          sActionTypeName,        ORAPARM_INPUT, ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "COMMENTS",          sComments,      ORAPARM_INPUT, ORATYPE_VARCHAR2


        OraSession.BeginTrans

        OraDatabase.ExecuteSQL _
        "BEGIN  Log_Action ( :PV_ID, :ACTION_TYPE_NAME, :USER_ID, :COMMENTS );  END;"

        OraSession.CommitTrans


        OraDatabase.Parameters.Remove "PV_ID"
        OraDatabase.Parameters.Remove "USER_ID"
        OraDatabase.Parameters.Remove "ACTION_TYPE_NAME"
        OraDatabase.Parameters.Remove "COMMENTS"

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function GetUsername ( nUser_id )
        Dim rsQry, sQuery

        OraDatabase.Parameters.Add "USER_ID", nUser_id, ORAPARM_INPUT, ORATYPE_VARCHAR2
        sQuery = "SELECT full_name FROM users WHERE user_id = :USER_ID"
        Set rsQry = OraDatabase.DbCreateDynaset( sQuery, cint(0))

        If rsQry.RecordCount = 1 Then
                GetUsername = rsQry.Fields("full_name").Value
        Else
                GetUsername = nothing
        End If

        OraDatabase.Parameters.remove "USER_ID"
        rsQry.Close
        Set rsQry = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function GetUserEmail ( nUser_id )
        Dim rsQry, sQuery

        OraDatabase.Parameters.Add "USER_ID", nUser_id, ORAPARM_INPUT, ORATYPE_VARCHAR2
        sQuery = "SELECT user_email FROM users WHERE user_id = :USER_ID"
        Set rsQry = OraDatabase.DbCreateDynaset( sQuery, cint(0))

        If rsQry.RecordCount = 1 Then
                GetUserEmail = rsQry.Fields("user_email").Value
        Else
                GetUserEmail = nothing
        End If

        OraDatabase.Parameters.remove "USER_ID"
        rsQry.Close
        Set rsQry = nothing
End Function
'------------------------------------------------------------------------------------------------------------------
%>