Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3892 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'                  NEW VERSION
5
'       Package Inquiry utilities
6
'       Designed to be called via AJAX and to return
7
'       JSON formatted data to dynamic page
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Good idea to set when using redirect
13
Response.Expires = 0   ' always load the page, dont store
14
%>
15
<!--#include file="common/conf.asp"-->
16
<!--#include file="common/globals.asp"-->
17
<!--#include file="common/formating.asp"-->
18
<!--#include file="common/qstr.asp"-->
19
<!--#include file="common/common_subs.asp"-->
20
<!--#include file="class/classaspJSON.asp" -->
3896 dpurdie 21
<!--#include file="class/classSortHelper.asp"-->
3892 dpurdie 22
<%
23
'------------ Variable Definition -------------
24
Dim parOpr
25
Dim parPkgName
26
Dim result
27
Dim SqlQry
28
Dim rsQry
29
 
30
parOpr = QStrPar("Opr")
31
parPkgName = Trim(QStrPar("packageName"))
32
result = -1
33
 
3896 dpurdie 34
' Init the output JSON class
35
'   Operations can add data
36
'   Default data will be added at the end
37
Dim oJSON
38
Set oJSON = New aspJSON
39
Dim newitem
40
 
3892 dpurdie 41
If (parOpr = "checkName") Then
42
 
43
    ' Test existance of a package name
44
    ' Returns the PKG_ID of the package or 0
45
    '
46
    result = 0
47
    SqlQry = "SELECT pkg.*" &_
48
         "  FROM packages pkg"&_
49
         " WHERE pkg.pkg_id != 0"&_
50
         "   AND UPPER(pkg.pkg_name) = UPPER('"& parPkgName & "')"
51
 
52
    On Error Resume Next
53
    objEH.ErrorRedirect = FALSE
54
    objEH.TryORA ( OraSession )
55
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
56
    objEH.CatchORA ( OraSession )
57
 
58
    If objEH.Finally Then
59
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
60
            result = rsQry("pkg_id")
61
        End If
62
    End If
63
 
64
    rsQry.Close
65
    Set rsQry = Nothing
66
 
67
ElseIf (parOpr = "checkVer") Then
68
    '
69
    ' Test the existance of a Package-Version
70
    ' Returns the PV_ID of the package-Version or 0
71
    '
72
    result = 0
73
    SqlQry = "select pv.pkg_id, pv.PV_ID" &_
74
         "  FROM packages pkg,"&_
75
         "       package_versions pv"&_
76
         " WHERE pkg.pkg_id = pv.pkg_id"&_
77
         "   AND UPPER(pkg.pkg_name) = UPPER('"& parPkgName & "')" &_
78
         "   AND UPPER(pv.pkg_version) = UPPER('" & QStrPar("Version") & "')"
79
 
80
    On Error Resume Next
81
    objEH.ErrorRedirect = FALSE
82
    objEH.TryORA ( OraSession )
83
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
84
    objEH.CatchORA ( OraSession )
85
 
86
    If objEH.Finally Then
87
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
88
            result = rsQry("PV_ID")
89
        End If
90
    End IF
91
 
92
    rsQry.Close
93
    Set rsQry = Nothing
3896 dpurdie 94
 
95
ElseIf (parOpr = "getVerList") Then
96
    Dim parPkgId
97
    parPkgId = QStrPar("pkg_id")
98
 
99
    result = 0
100
    SqlQry = "select pv_id, pkg_version, dlocked" &_
101
         "  FROM package_versions pv" &_
102
         " WHERE pv.pkg_id = "& parPkgId
103
 
104
    On Error Resume Next
105
    objEH.ErrorRedirect = FALSE
106
    objEH.TryORA ( OraSession )
107
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
108
    objEH.CatchORA ( OraSession )
109
 
110
    If objEH.Finally Then
111
 
112
        oJSON.data("VersionRef") = QStrPar("Ref")
113
        Set oJSON.data("Versions") = oJSON.Collection()
114
 
115
        Dim aVersions
116
        Dim objSortHelper
117
        Dim lastRow, i
118
 
119
	    If rsQry.RecordCount > 0 Then
120
 
121
		    aVersions = rsQry.GetRows()
122
		    lastRow = UBound( aVersions, 2 )
123
 
124
		    Set objSortHelper = New SortHelper
125
 
126
		    ' Sort versions
127
		    Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsQry.FieldIndex("pkg_version") )
128
 
129
		    ' Descending order
130
		    For i = lastRow To 0 Step -1
131
 
132
                Dim vname : vname = aVersions( rsQry.FieldIndex("pkg_version"), i )
133
                Dim pvid : pvid = aVersions( rsQry.FieldIndex("pv_id"), i )
134
                Dim lck : lck = aVersions( rsQry.FieldIndex("dlocked"), i )
135
 
136
                result = result + 1
137
 
138
                Set newitem = oJSON.AddToCollection(oJSON.data("Versions"))
139
                newitem.add "vname", vname
140
                newitem.add "pv_id", pvid
141
                newitem.add "dlocked", lck
142
		    Next
143
		    Set objSortHelper = nothing
144
	    End If
145
    End IF
146
 
147
    rsQry.Close
148
    Set rsQry = Nothing
149
 
3892 dpurdie 150
End If
151
 
152
 
153
'
154
'   Create JSON data for the user
155
'   Important fields
156
'       result
157
'
158
'   Debug fields
159
'       QueryString
160
'       SqlQry
161
'       Request (Array)
162
'
163
'Write single value
164
oJSON.data("result") = result
165
 
166
' SQL error detection and reporting
167
If objEH.LastOraFailed Then
168
    oJSON.data("error") = 1
169
 
170
    oJSON.data("emsgSummary") = objEH.MessageSummary
171
    oJSON.data("emsgDetails") = objEH.MessageDetails
172
    oJSON.data("SqlQry") = SqlQry
173
End If
174
 
175
' DEBUG: An array of the user provided requests
176
oJSON.data("QueryString") = Request.QueryString
177
 
178
Set oJSON.data("Request") = oJSON.Collection()
179
Set newitem = oJSON.AddToCollection(oJSON.data("Request"))
180
Dim variableName
181
for each variableName in Request.QueryString
182
    newitem.add variableName, Request.QueryString(variableName)
183
next
184
 
185
'Return the object
186
Response.Write oJSON.JSONoutput()
187
%>