Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5050 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'       sdk_content_json.asp
5
'       Ajax support for table of SDK Content
6
'       Designed to be driven by the jquery tablescroller
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
12
Response.ContentType = "text/html"
13
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
14
Response.CodePage = 65001
15
Response.CharSet = "UTF-8"
16
%>
17
<!--#include file="common/conf.asp"-->
18
<!--#include file="common/globals.asp"-->
19
<!--#include file="common/qstr.asp"-->
20
<!--#include file="common/common_subs.asp"-->
21
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
22
<%
23
'------------ Variable Definition -------------
24
Dim result : result = -1
25
Dim SqlQry
26
Dim rsQry
27
Dim sdktag_id : sdktag_id = Request("sdktag_id")
5052 dpurdie 28
Dim sdk_statefilter : sdk_statefilter = Request("sdk_statefilter")
5050 dpurdie 29
 
30
' Init the output JSON class
31
'   Operations can add data
32
'   Default data will be added at the end
33
Dim oJSON :Set oJSON = New aspJSON
34
Dim newitem
35
 
36
'
37
' Determine the size of the record set
38
'   Gives bad results when searching
39
Dim MaxCount : MaxCount = 0
40
 
41
SqlQry = "select count(*) as count from SDK_CONTENT skc where SDKTAG_ID = '" & sdktag_id &"'"
5053 dpurdie 42
If sdk_statefilter Then
43
    SqlQry = SqlQry & " AND skc.sdkpkg_state in ('E')"
44
End If
5050 dpurdie 45
 
46
On Error Resume Next
47
objEH.ErrorRedirect = FALSE
48
objEH.TryORA ( OraSession )
49
Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
50
objEH.CatchORA ( OraSession )
51
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
52
        MaxCount = rsQry("COUNT")
53
    End If
54
rsQry.Close
55
Set rsQry = Nothing
56
 
57
' Basic Header
58
'   iTotalRecords = total records without any filtering/limits
59
'   iTotalDisplayRecords = filtered result count
60
 
61
oJSON.data("sEcho") = CInt(Request.QueryString("sEcho"))
62
oJSON.data("iTotalRecords") = MaxCount
63
oJSON.data("iTotalDisplayRecords") = MaxCount
64
 
65
' Assist in debug
66
oJSON.data("iReqDisplayStart") = CInt(Request.QueryString("iDisplayStart"))
67
oJSON.data("iReqDisplayLength") = CInt(Request.QueryString("iDisplayLength"))
68
 
69
Dim vName
70
for each vName in Request.QueryString
71
    oJSON.data("sReq_" & vName) = Request.QueryString(vName)
72
next
73
 
74
' Extract selected range
75
result = 0
76
dim firstRow,lastRow
77
firstRow = CInt(Request.QueryString("iDisplayStart"))
78
lastRow = firstRow + CInt(Request.QueryString("iDisplayLength"))
79
 
80
' Define the data items to extract from the database
81
' An array of items to extract
82
'
83
Dim dataCols: dataCols = Array ( _ 
84
        "sc.pv_id", _
85
        "p.pkg_name", _
86
        "pv.pkg_version", _
87
        "sc.sdkpkg_state" )
88
 
89
'   Define array of colums to sort by
90
'       Must match user sort column request
91
Dim sortCols: sortCols = Array ( _
92
        "sc.pv_id", _
93
        "UPPER(p.pkg_name)", _
94
        "UPPER(pv.pkg_version)", _
95
        "UPPER(sc.sdkpkg_state)" )
96
 
97
' Dim determine sorting options
98
'On Error goto 0
99
'Response.Write "<pre>"
100
Dim sortString
101
If Request.QueryString("iSortCol_0") <> "" Then
102
    sortString = " ORDER BY " & sortCols(CInt(Request.QueryString("iSortCol_0")))
103
    sortString = sortString & " " & Request.QueryString("sSortDir_0")
5052 dpurdie 104
    sortString = sortString & "," & sortCols(CInt(1)) & " asc"
5050 dpurdie 105
Else
106
    sortString = " ORDER BY " & sortCols(CInt(1)) & " asc"
107
End If
108
 
109
' Filter (search )
5052 dpurdie 110
Dim searchString : searchString = ""
5050 dpurdie 111
If Request.QueryString("sSearch") <> "" Then
5052 dpurdie 112
    searchString = " AND upper(pkg_name) || '_' || UPPER(pv.pkg_version) LIKE upper('%" & Request.QueryString("sSearch") & "%')" 
5050 dpurdie 113
End If
114
 
5052 dpurdie 115
If sdk_statefilter Then
116
    searchString = searchString & " AND sc.sdkpkg_state in ('E')"
117
End If
118
 
5050 dpurdie 119
' Create a list of cols that we need. Avoids ambiguity in selections
120
Dim x,colList,colListJoin
121
For x = Lbound(dataCols) to Ubound(dataCols)
122
    colList = colList & colListJoin & dataCols(x)
123
    colListJoin = ","
124
Next
125
 
126
Dim whereString
127
Dim BasicSql
128
BasicSql = "select " & colList &_
129
            " FROM SDK_CONTENT SC , PACKAGE_VERSIONS pv, PACKAGES p " &_
130
            " where sc.sdktag_id = "&sdktag_id&" AND pv.pv_id = sc.pv_id AND p.pkg_id = pv.pkg_id " &_
131
            whereString &_
132
            searchString &_
133
            sortString
134
 
135
SqlQry = "select * from ( "&_
136
            "select a.*, ROWNUM rnum from (" & BasicSql &_
137
                ") a where ROWNUM <= " & lastRow &_
138
            ") where rnum >= " & firstRow
139
 
140
' Assist in debug
141
oJSON.data("BasicSql") = BasicSql
142
'oJSON.data("SqlQry") = SqlQry
143
 
144
' Perform the database query
145
Set oJSON.data("aaData") = oJSON.Collection()
146
On Error Resume Next
147
objEH.ErrorRedirect = FALSE
148
objEH.TryORA ( OraSession )
149
Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
150
objEH.CatchORA ( OraSession )
151
' Process each row and return required fields to the user
152
If objEH.Finally Then
153
On Error goto 0
154
 
155
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
156
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
157
        Dim ii
158
        for ii = 0 to rsQry.Fields.Count - 2
159
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
160
            'newitem (ii) = rsQry.Fields(ii)
161
        Next
162
       rsQry.MoveNext
163
    Wend
164
End IF
165
 
166
rsQry.Close
167
Set rsQry = Nothing
168
 
169
'
170
' SQL error detection and reporting
171
If objEH.LastOraFailed Then
172
    oJSON.data("error") = 1
173
 
174
    oJSON.data("emsgSummary") = objEH.MessageSummary
175
    oJSON.data("emsgDetails") = objEH.MessageDetails
176
    oJSON.data("SqlQry") = SqlQry
177
End If
178
 
179
'Return the object
180
Response.Write oJSON.JSONoutput()
181
'OraSession.Dispose()
182
%>