Subversion Repositories DevTools

Rev

Rev 5957 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5048 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   sdk_opr_json.asp
5
'   Ajax support for SDK operations
5097 dpurdie 6
'       addSdkName
7
'       getSdkNameData
8
'       updateSdkName
9
'       getSdkNames
10
'       getBaseViews
11
'       getSdkDetails
12
'       getSdkVersions
13
'       getSdkVersionDetails
14
'       updateSdkVersionDetails
15
'       getProjectList
16
'       getReleaseList
17
'       addNewSdkVersion
18
'       deleteSdkVersion
19
'       setSdkState
20
'       setSdkContentState
21
'
5048 dpurdie 22
'=====================================================
23
%>
24
<%
25
Option explicit
5049 dpurdie 26
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
27
Response.ContentType = "text/html"
28
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
29
Response.CodePage = 65001
30
Response.CharSet = "UTF-8"
5048 dpurdie 31
%>
32
<!--#include file="common/conf.asp"-->
33
<!--#include file="common/globals.asp"-->
34
<!--#include file="common/qstr.asp"-->
35
<!--#include file="common/common_subs.asp"-->
36
<!--#include file="_access_control_general.asp"-->
37
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
38
<%
39
'------------ Variable Definition -------------
40
Dim parOpr
41
Dim result
42
Dim SqlQry
43
Dim rsQry
44
 
45
parOpr = QStrPar("action")
46
result = -1
47
 
48
' Init the output JSON class
49
'   Operations can add data
50
'   Default data will be added at the end
51
Dim oJSON
52
Set oJSON = New aspJSON
53
Dim newitem
54
 
55
Function canModify
5097 dpurdie 56
    canModify = canActionControl("AdminSdk")
5048 dpurdie 57
    If NOT canModify Then
58
        result = -4
59
        oJSON.data("error") = 1
60
        oJSON.data("emsgSummary") = "Permission denied"
61
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
62
    End If
63
End Function
64
 
65
'   
66
'   Perform the body of the operations within a Sub and use
67
'   On Error Resule Next to catch errors that accur in the code
68
'
69
On Error Resume Next
5097 dpurdie 70
If (parOpr = "addSdkName") Then
71
    If canModify() Then addSdkName
5048 dpurdie 72
 
5097 dpurdie 73
ElseIf (parOpr = "getSdkNameData") Then
74
     getSdkNameData
5048 dpurdie 75
 
5097 dpurdie 76
ElseIf (parOpr = "updateSdkName") Then
77
    If canModify() Then updateSdkName
5048 dpurdie 78
 
5049 dpurdie 79
ElseIf (parOpr = "getSdkNames") Then
80
    getSdkNames
81
 
5097 dpurdie 82
ElseIf (parOpr = "getBaseViews") Then
83
    getBaseViews
84
 
5053 dpurdie 85
ElseIf (parOpr = "getSdkDetails") Then
86
    getSdkDetails
87
 
5050 dpurdie 88
ElseIf (parOpr = "getSdkVersions") Then
89
    getSdkVersions
90
 
5052 dpurdie 91
ElseIf (parOpr = "getSdkVersionDetails") Then
92
    getSdkVersionDetails
93
 
5098 dpurdie 94
ElseIf (parOpr = "getSdkUsage") Then
95
    getSdkUsage
96
 
5055 dpurdie 97
ElseIf (parOpr = "updateSdkVersionDetails") Then
98
    updateSdkVersionDetails
99
 
5049 dpurdie 100
ElseIf (parOpr = "getProjectList") Then
101
    getProjectList
102
 
103
ElseIf (parOpr = "getReleaseList") Then
104
    getReleaseList
105
 
106
ElseIf (parOpr = "addNewSdkVersion") Then
107
    addNewSdkVersion
108
 
5053 dpurdie 109
ElseIf (parOpr = "deleteSdkVersion") Then
110
    deleteSdkVersion
111
 
5052 dpurdie 112
ElseIf (parOpr = "setSdkState") Then
113
    setSdkState
114
 
5050 dpurdie 115
ElseIf (parOpr = "setSdkContentState") Then
116
    setSdkContentState
117
 
5751 dpurdie 118
ElseIf (parOpr = "cloneSdkPackages") Then
119
    cloneSdkPackages
120
 
121
ElseIf (parOpr = "setSdkPackages") Then
122
    setSdkPackages
123
 
5048 dpurdie 124
Else
125
    oJSON.data("error") = 1
126
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
127
    oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOpr
128
End If
129
 
130
 
131
' SQL error detection and reporting
132
If objEH.LastOraFailed Then
133
    oJSON.data("error") = 1
134
    result = -1
135
 
136
    oJSON.data("emsgSummary") = objEH.MessageSummary
137
    oJSON.data("emsgDetails") = objEH.MessageDetails
138
    oJSON.data("SqlQry") = SqlQry
139
'
140
'   Detect program errors
141
ElseIf Err.number <> 0 Then
142
    result = -3
143
    oJSON.data("error") = 2
144
    oJSON.data("errnum") = Err.number
145
    oJSON.data("errtxt") = Err.description
146
    oJSON.data("errsrc") = Err.source
147
    oJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number &  ":" & Err.description
148
End If
5052 dpurdie 149
On error goto 0
5048 dpurdie 150
'Write single value
151
oJSON.data("result") = result
152
 
153
'function Sleep(seconds)
154
'    dim oshell, cmd
155
'    set oShell = CreateObject("Wscript.Shell")
156
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
157
'    oShell.Run cmd,0,1
158
'End function
159
'
160
'Sleep(2)
161
 
162
 
163
' DEBUG: A Hash of the user provided requests
164
<!--oJSON.data("QueryString") = Request.QueryString       -->
165
<!--                                                      -->
166
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
167
<!--Set oJSON.data("Request") = requestSet                -->
168
<!--Dim variableName                                      -->
169
<!--for each variableName in Request.QueryString          -->
170
<!--    requestSet.add variableName, Request(variableName)-->
171
<!--next                                                  -->
172
<!--for each variableName in Request.Form                 -->
173
<!--    requestSet.add variableName, Request(variableName)-->
174
<!--next                                                  -->
175
 
176
 
177
'Return the object
178
Response.Write oJSON.JSONoutput()
5957 dpurdie 179
Set oJSON = Nothing
180
Call Destroy_All_Objects
5048 dpurdie 181
%>
182
<%
183
'-------------------------------------------------
5097 dpurdie 184
' Function:    addSdkName
5048 dpurdie 185
' Description: Create a new SDK Name entry
5097 dpurdie 186
Sub addSdkName
187
    Dim baseView : baseView = "SDK_" & QStrPar("sdkName") 
188
    Dim SEQ_view_id
5048 dpurdie 189
 
5097 dpurdie 190
 
5048 dpurdie 191
    '   Add a new entry
192
    '
193
    '   Setup for the database access
5097 dpurdie 194
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"),    ORAPARM_INPUT, ORATYPE_VARCHAR2
5048 dpurdie 195
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
5097 dpurdie 196
    OraDatabase.Parameters.Add "SDKBASEVIEW", baseView,             ORAPARM_INPUT, ORATYPE_VARCHAR2
5102 dpurdie 197
    OraDatabase.Parameters.Add "SDKVIEWID",  0,                     ORAPARM_INPUT, ORATYPE_NUMBER
198
    OraDatabase.Parameters.Add "SDKPROJECT", QStrPar("sdkProject"), ORAPARM_INPUT, ORATYPE_NUMBER
5048 dpurdie 199
 
200
     '  Test existance - simply to provide a Nice Error message
201
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME"
202
    objEH.ErrorRedirect = FALSE
203
    objEH.TryORA ( OraSession )
204
    On Error Resume Next
205
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
206
    objEH.CatchORA ( OraSession )
207
    On Error GoTo 0
208
 
209
    If rsQry.RecordCount <> 0 Then
210
        result = -3
211
        oJSON.data("error") = -1
212
        oJSON.data("emsgSummary") = "SDK Name already exists"
213
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
214
    Else
215
 
5097 dpurdie 216
        ' Test for existance of Base View Name
217
        '
218
        SqlQry = "SELECT * FROM VIEWS WHERE UPPER(VIEW_NAME) = UPPER(:SDKBASEVIEW)"
5048 dpurdie 219
        objEH.ErrorRedirect = FALSE
220
        objEH.TryORA ( OraSession )
221
        On Error Resume Next
5097 dpurdie 222
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5048 dpurdie 223
        objEH.CatchORA ( OraSession )
224
        On Error GoTo 0
5097 dpurdie 225
        If rsQry.RecordCount <> 0 Then
226
            ' Use existing base view
227
            SEQ_view_id = rsQry("VIEW_ID")
228
            OraDatabase.Parameters("SDKVIEWID").Value = SEQ_view_id 
229
        Else
5048 dpurdie 230
 
5097 dpurdie 231
            ' Create a new Base View for this SDK
232
            ' Return new Base View
233
            SEQ_view_id = Get_From_DUAL("SEQ_VIEW_ID.nextval")
234
            OraDatabase.Parameters("SDKVIEWID").Value = SEQ_view_id 
235
 
236
            On Error Resume Next
237
            OraDatabase.ExecuteSQL _
238
              "INSERT INTO views (view_id, view_name, owner_id, base_view, public_read)"&_
239
              " VALUES ("& SEQ_view_id &", '"& baseView  &"', 0,'S','Y')"
240
        End If
241
 
242
        If Err.Number = 0 Then
5102 dpurdie 243
            SqlQry = "INSERT INTO SDK_NAMES (SDK_NAME, SDK_COMMENT, VIEW_ID, PROJ_ID) VALUES (:SDKNAME, :SDKCOMMENT, :SDKVIEWID, :SDKPROJECT )"
5097 dpurdie 244
            On Error Resume Next
245
            OraDatabase.ExecuteSQL SqlQry
246
            If Err.Number = 0 Then
247
                result = 0
248
            End If
249
        End If
250
 
251
        objEH.CatchORA ( OraSession )
252
        On Error GoTo 0
5048 dpurdie 253
    End If
5102 dpurdie 254
    OraDatabase.Parameters.Remove "SDKPROJECT"
5097 dpurdie 255
    OraDatabase.Parameters.Remove "SDKVIEWID"
256
    OraDatabase.Parameters.Remove "SDKBASEVIEW"
5048 dpurdie 257
    OraDatabase.Parameters.Remove "SDKCOMMENT"
258
    OraDatabase.Parameters.Remove "SDKNAME"
259
End Sub
260
 
261
'-------------------------------------------------
5097 dpurdie 262
' Function:    getSdkNameData
5048 dpurdie 263
' Description: get data for a specified SDK Name
5097 dpurdie 264
Sub getSdkNameData
5048 dpurdie 265
 
266
    '   Get Data for an existing entry
267
    '   Setup for the database access
268
    OraDatabase.Parameters.Add "SDKID",    QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
269
 
270
    SqlQry = "SELECT * from SDK_NAMES where SDK_ID=:SDKID"
271
 
272
    objEH.ErrorRedirect = FALSE
273
    objEH.TryORA ( OraSession )
274
    On Error Resume Next
275
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
276
    objEH.CatchORA ( OraSession )
277
    OraDatabase.Parameters.Remove "SDKID"
278
 
279
    Dim resultSet : Set resultSet = oJSON.Collection()
280
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
281
        Dim ii
282
        for ii = 0 to rsQry.Fields.Count - 1
283
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
284
        Next
285
        Set oJSON.data("aaData") = resultSet
286
        result = 0
287
    End If
288
    rsQry.Close
289
    Set rsQry = Nothing
290
End Sub
291
 
292
'-------------------------------------------------
5097 dpurdie 293
' Function:    updateSdkName
294
' Description: Update an existing SDK Names entry
295
Sub updateSdkName
5048 dpurdie 296
 
297
    '
298
    '
299
    OraDatabase.Parameters.Add "SDKID",      QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
300
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"), ORAPARM_INPUT, ORATYPE_VARCHAR2
301
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
5097 dpurdie 302
    OraDatabase.Parameters.Add "SDKBASEVIEW", QStrPar("sdkBaseView"), ORAPARM_INPUT, ORATYPE_NUMBER
5102 dpurdie 303
    OraDatabase.Parameters.Add "SDKPROJECT", QStrPar("sdkProject"), ORAPARM_INPUT, ORATYPE_NUMBER
5048 dpurdie 304
 
305
    '  Test existance - simply to provide a Nice Error message
306
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME AND  SDK_ID != :SDKID"
307
    objEH.ErrorRedirect = FALSE
308
    objEH.TryORA ( OraSession )
309
    On Error Resume Next
310
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
311
    objEH.CatchORA ( OraSession )
312
    On Error GoTo 0
313
 
314
    If rsQry.RecordCount <> 0 Then
315
        result = -3
316
        oJSON.data("error") = -1
317
        oJSON.data("emsgSummary") = "SDK Name already exists"
318
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
319
    Else
320
        '   Update an existing entry
5102 dpurdie 321
        SqlQry = "UPDATE SDK_NAMES SET SDK_NAME = :SDKNAME, SDK_COMMENT = :SDKCOMMENT, VIEW_ID = :SDKBASEVIEW, PROJ_ID = :SDKPROJECT WHERE SDK_ID = :SDKID"
5048 dpurdie 322
        objEH.ErrorRedirect = FALSE
323
        objEH.TryORA ( OraSession )
324
        On Error Resume Next
325
        OraDatabase.ExecuteSQL SqlQry
326
        objEH.CatchORA ( OraSession )
327
        On Error GoTo 0
328
        result = 0
329
    End If
330
 
5102 dpurdie 331
    OraDatabase.Parameters.Remove "SDKPROJECT"
5097 dpurdie 332
    OraDatabase.Parameters.Remove "SDKBASEVIEW"
5048 dpurdie 333
    OraDatabase.Parameters.Remove "SDKCOMMENT"
334
    OraDatabase.Parameters.Remove "SDKNAME"
335
    OraDatabase.Parameters.Remove "SDKID"
336
End Sub
5049 dpurdie 337
 
338
'-------------------------------------------------
339
' Function:    getSdkNames
340
' Description: Get Project information
341
'              Array of:
342
'               SDK_ID
343
'               SDK_NAME
5103 dpurdie 344
' Parameters:   proj_id (optional) If present, limit names to those available in this project
5049 dpurdie 345
 
346
Sub getSdkNames
5103 dpurdie 347
 
348
    Dim proj_id : proj_id = QStrPar("proj_id")
349
 
5049 dpurdie 350
    '   Get Data for an existing entry
351
    '   Setup for the database access
5103 dpurdie 352
    If proj_id <> "" Then
353
        SqlQry = "SELECT SDK_ID, SDK_NAME from SDK_NAMES WHERE proj_id = " & proj_id & " order by UPPER(SDK_NAME) ASC"
354
    Else
355
        SqlQry = "SELECT SDK_ID,SDK_NAME from SDK_NAMES order by UPPER(SDK_NAME) ASC"
356
    End If
5049 dpurdie 357
 
358
    objEH.ErrorRedirect = FALSE
359
    objEH.TryORA ( OraSession )
360
    On Error Resume Next
361
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
362
    objEH.CatchORA ( OraSession )
363
 
364
    Set oJSON.data("aaData") = oJSON.Collection()
365
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
366
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
367
         Dim ii
368
        for ii = 0 to rsQry.Fields.Count - 1
369
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
370
        Next
371
 
372
       rsQry.MoveNext
373
    Wend
374
    result = 0
375
    rsQry.Close
376
    Set rsQry = Nothing
377
 
378
End Sub
379
 
5097 dpurdie 380
'-------------------------------------------------
381
' Function:    getBaseViews
382
' Description: Get Base Views
383
'              Array of:
384
'               VIEW_ID
385
'               VIEW_NAME
386
 
387
Sub getBaseViews
388
    '   Get Data for an existing entry
389
    '   Setup for the database access
390
    SqlQry = "SELECT VIEW_ID, VIEW_NAME from VIEWS WHERE base_view = 'S' order by UPPER(VIEW_NAME) ASC"
391
 
392
    objEH.ErrorRedirect = FALSE
393
    objEH.TryORA ( OraSession )
394
    On Error Resume Next
395
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
396
    objEH.CatchORA ( OraSession )
397
 
398
    Set oJSON.data("aaData") = oJSON.Collection()
399
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
400
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
401
         Dim ii
402
        for ii = 0 to rsQry.Fields.Count - 1
403
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
404
        Next
405
 
406
       rsQry.MoveNext
407
    Wend
408
    result = 0
409
    rsQry.Close
410
    Set rsQry = Nothing
411
 
412
End Sub
413
 
414
'-------------------------------------------------
5053 dpurdie 415
' Function:    getSdkDetails
416
' Description: Get Details for a specific SDK Family
417
'              Hash of:
418
'               Lots of stuff
419
'
420
' Options:      sdk_id  - SDK to get
421
 
422
Sub getSdkDetails
423
    '   Get Data for an existing entry
424
    '   Setup for the database access
425
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
426
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
427
    SqlQry = "SELECT * " &_
428
             "FROM SDK_NAMES " &_
429
             "WHERE SDK_ID = :SDK_ID"
430
 
431
    ' Perform Query
432
    objEH.ErrorRedirect = FALSE
433
    objEH.TryORA ( OraSession )
434
    On Error Resume Next
435
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
436
    objEH.CatchORA ( OraSession )
437
on error goto 0
438
    ' Process Results
439
    Dim resultSet : Set resultSet = oJSON.Collection()
440
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
441
        Dim ii
442
        for ii = 0 to rsQry.Fields.Count - 1
443
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
444
        Next
445
        Set oJSON.data("aaData") = resultSet
446
        result = 0
447
    End If
448
 
449
    result = 0
450
    rsQry.Close
451
    Set rsQry = Nothing
452
 
453
    OraDatabase.Parameters.Remove "SDK_ID"
454
End Sub
455
 
456
 
5050 dpurdie 457
'-------------------------------------------------
458
' Function:    getSdkVersions
459
' Description: Get SDK Versions information for a given family
460
'              Array of:
461
'               sdktag_id
462
'               sdktag_name
463
'               sdktag_state
464
'
465
' Options:      sdk_id  - Get versions for given sdk family
5087 dpurdie 466
'               active  - true: Only active Releases, else use mode
5050 dpurdie 467
'               mode    - true: All Releases, otherwise only non-closed releases
5049 dpurdie 468
 
5050 dpurdie 469
Sub getSdkVersions
470
    '   Get Data for an existing entry
471
    '   Setup for the database access
472
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
473
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
474
 
475
    '
476
    '   Limit Selection to non-closed releases
477
    '
478
    Dim limit
479
    If NOT QStrPar("mode") Then
5062 dpurdie 480
        limit = " AND SDK_STATE NOT IN ('D')"
5050 dpurdie 481
    End If
482
 
5087 dpurdie 483
    If QStrPar("active") Then
484
        limit = " AND SDK_STATE NOT IN ('D','U')"
485
    End If
486
 
5050 dpurdie 487
    SqlQry = "SELECT SDKTAG_ID,SDKTAG_NAME,SDK_STATE as SDKTAG_STATE from SDK_TAGS" &_
488
             " WHERE SDK_ID = :SDK_ID" & limit &_
489
             " ORDER BY UPPER(SDKTAG_NAME) ASC"
490
 
491
    ' Perform Query
492
    objEH.ErrorRedirect = FALSE
493
    objEH.TryORA ( OraSession )
494
    On Error Resume Next
495
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
496
    objEH.CatchORA ( OraSession )
497
 
498
    ' Process Results
499
    Set oJSON.data("aaData") = oJSON.Collection()
500
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
501
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
502
        Dim ii
503
        for ii = 0 to rsQry.Fields.Count - 1
504
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
505
        Next
506
       rsQry.MoveNext
507
    Wend
508
 
509
    result = 0
510
    rsQry.Close
511
    Set rsQry = Nothing
512
 
513
    OraDatabase.Parameters.Remove "SDK_ID"
514
End Sub
515
 
5049 dpurdie 516
'-------------------------------------------------
5052 dpurdie 517
' Function:    getSdkVersionDetails
518
' Description: Get Details for a specific SDK Version
519
'              Hash of:
520
'               Lots of stuff
521
'
522
' Options:      sdktag_id  - SDK Version to get
523
 
524
Sub getSdkVersionDetails
525
    '   Get Data for an existing entry
526
    '   Setup for the database access
527
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
528
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
6480 dpurdie 529
    SqlQry = _
530
        "SELECT st.SDKTAG_ID, " &_
531
        "   st.SDKTAG_NAME, " &_
532
        "   st.DESCRIPTION, " &_
533
        "   st.SDK_ID, " &_
534
        "   TO_CHAR(st.CREATED_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as CREATED_STAMP , " &_
535
        "   st.CREATOR_ID, " &_
536
        "   TO_CHAR(st.STATE_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as STATE_STAMP , " &_
537
        "   st.STATE_ID, " &_
538
        "   st.SDK_STATE, " &_
539
        "   sn.SDK_NAME, " &_
540
        "   sn.SDK_COMMENT," &_
541
        "   rt.RTAG_NAME," &_
542
        "   p.PROJ_NAME" &_
543
        " FROM SDK_TAGS st, " &_
544
        "   SDK_NAMES sn," &_
545
        "   RELEASE_TAGS rt," &_
546
        "   PROJECTS p" &_
547
        " WHERE st.SDKTAG_ID = :SDKTAG_ID " &_
548
        " AND st.SDK_ID = sn.SDK_ID " &_
549
        " AND st.RTAG_ID = rt.RTAG_ID" &_
550
        " AND rt.PROJ_ID = p.PROJ_ID"
5052 dpurdie 551
 
552
    ' Perform Query
553
    objEH.ErrorRedirect = FALSE
554
    objEH.TryORA ( OraSession )
555
    On Error Resume Next
556
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
557
    objEH.CatchORA ( OraSession )
558
on error goto 0
559
    ' Process Results
560
    Dim resultSet : Set resultSet = oJSON.Collection()
561
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
562
        Dim ii
563
        for ii = 0 to rsQry.Fields.Count - 1
564
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
565
        Next
566
        Set oJSON.data("aaData") = resultSet
567
        result = 0
568
    End If
569
 
570
    result = 0
571
    rsQry.Close
572
    Set rsQry = Nothing
573
 
574
    OraDatabase.Parameters.Remove "SDKTAG_ID"
575
End Sub
576
 
577
'-------------------------------------------------
5055 dpurdie 578
' Function:    updateSdkVersionDetails
579
' Description: Update specific parts of the SDK Version Meta Data
580
'
581
' Options:      sdktag_id       - SDK Version to update
582
'               sdkTagName     -
583
'               sdkTagComment  -
584
 
585
Sub updateSdkVersionDetails
586
    '   Get Data for an existing entry
587
    '   Setup for the database access
588
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
589
    Dim sdkTagName : sdkTagName = QStrPar("sdkTagName")
590
    Dim sdkTagComment : sdkTagComment = QStrPar("sdkTagComment")
591
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
592
    OraDatabase.Parameters.Add "SDKTAG_NAME",      sdkTagName, ORAPARM_INPUT, ORATYPE_VARCHAR2
593
    OraDatabase.Parameters.Add "DESCRIPTION",      sdkTagComment, ORAPARM_INPUT, ORATYPE_VARCHAR2
594
 
595
    '   Update an existing entry
596
    SqlQry = "UPDATE SDK_TAGS SET SDKTAG_NAME = :SDKTAG_NAME, DESCRIPTION = :DESCRIPTION WHERE SDKTAG_ID = :SDKTAG_ID"
597
    objEH.ErrorRedirect = FALSE
598
    objEH.TryORA ( OraSession )
599
    On Error Resume Next
600
    OraDatabase.ExecuteSQL SqlQry
601
    objEH.CatchORA ( OraSession )
602
    On Error GoTo 0
603
    result = 0
604
 
605
    OraDatabase.Parameters.Remove "DESCRIPTION"
606
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
607
    OraDatabase.Parameters.Remove "SDKTAG_ID"
608
End Sub
609
 
610
'-------------------------------------------------
5098 dpurdie 611
' Function:    getSdkUsage
612
' Description: Get SDK Usage information for a given sdktag_id
5102 dpurdie 613
'                Array of (unless countOnly is not empty):
614
'                 sdktag_id
615
'                 sdktag_name
616
'                 sdktag_state
617
'                useCount
5098 dpurdie 618
'
619
' Options:      sdktag_id  - Get information for given sdktag
5102 dpurdie 620
'               countOnly       - Just get count (Simple Test)
5098 dpurdie 621
 
622
Sub getSdkUsage
623
    '   Get Data for an existing entry
624
    '   Setup for the database access
625
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
626
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
627
 
628
    SqlQry = "SELECT DISTINCT p.proj_id, rc.rtag_id, p.PROJ_NAME, rt.RTAG_NAME" &_
629
             " FROM release_content rc," &_
630
             " release_tags rt, PROJECTS p" &_
5102 dpurdie 631
             " WHERE rc.SDKTAG_ID = :SDKTAG_ID" &_
5098 dpurdie 632
             " and rc.RTAG_ID = rt.RTAG_ID" &_
633
             " and p.PROJ_ID = rt.PROJ_ID" &_
634
             " ORDER BY UPPER(p.PROJ_NAME), UPPER(rt.RTAG_NAME)"
635
 
636
    ' Perform Query
637
    objEH.ErrorRedirect = FALSE
638
    objEH.TryORA ( OraSession )
639
    On Error Resume Next
640
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
641
    objEH.CatchORA ( OraSession )
642
 
643
    ' Process Results
5102 dpurdie 644
    If QStrPar("countOnly") = "" Then
645
        Set oJSON.data("aaData") = oJSON.Collection()
646
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
647
            Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
648
            Dim ii
649
            for ii = 0 to rsQry.Fields.Count - 1
650
                newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
651
            Next
652
           rsQry.MoveNext
653
        Wend
654
    End If
5098 dpurdie 655
 
5102 dpurdie 656
    ' Return count too
657
    oJSON.data("useCount") = rsQry.RecordCount 
658
 
5098 dpurdie 659
    result = 0
660
    rsQry.Close
661
    Set rsQry = Nothing
662
 
663
    OraDatabase.Parameters.Remove "SDKTAG_ID"
664
End Sub
665
 
666
 
667
'-------------------------------------------------
5049 dpurdie 668
' Function:    getProjectList
669
' Description: Get Project information
670
'              Array of:
671
'               proj_id
672
'               proj_name
673
Sub getProjectList
674
    '   Get Data for an existing entry
675
    '   Setup for the database access
676
    SqlQry = "SELECT PROJ_ID,PROJ_NAME from PROJECTS order by PROJ_NAME ASC"
677
 
678
    objEH.ErrorRedirect = FALSE
679
    objEH.TryORA ( OraSession )
680
    On Error Resume Next
681
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
682
    objEH.CatchORA ( OraSession )
683
 
684
    Set oJSON.data("aaData") = oJSON.Collection()
685
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
686
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
687
         Dim ii
688
        for ii = 0 to rsQry.Fields.Count - 1
689
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
690
        Next
691
 
692
       rsQry.MoveNext
693
    Wend
694
    result = 0
695
    rsQry.Close
696
    Set rsQry = Nothing
697
 
698
End Sub
699
 
700
'-------------------------------------------------
701
' Function:    getReleaseList
702
' Description: Get Release information for a project
703
'              Array of:
704
'               rtag_id
705
'               rtag_name
706
'               official
707
'              Also
708
'               proj_id
709
'
710
' Options:      proj_id - Get Releases for given project
711
'               rtag_id - Get Releases for project of this release
712
'               mode    - true: All Releases, otherwise only non-closed releases
713
 
714
Sub getReleaseList
715
    '   Get Data for an existing entry
716
    '   Setup for the database access
717
    Dim rtag_id : rtag_id = QStrPar("rtag_id")
718
    Dim proj_id : proj_id = QStrPar("proj_id")
719
    OraDatabase.Parameters.Add "PROJ_ID",      proj_id, ORAPARM_INPUT, ORATYPE_NUMBER
720
    OraDatabase.Parameters.Add "RTAG_ID",      rtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
721
 
722
    '
723
    '   Limit Selection to non-closed releases
724
    '
725
    Dim limit
726
    If NOT QStrPar("mode") Then
5384 dpurdie 727
        limit = " AND OFFICIAL IN ('N','R','C')"
5049 dpurdie 728
    End If
729
 
730
    Dim where
731
    If rtag_id <> "" Then
732
        where = " WHERE proj_id = (SELECT PROJ_ID from RELEASE_TAGS where RTAG_ID=:RTAG_ID)" 
733
    Else
734
        where = " WHERE PROJ_ID=:PROJ_ID"
735
    End If
736
 
737
    SqlQry = "SELECT PROJ_ID,RTAG_ID,RTAG_NAME,OFFICIAL  from RELEASE_TAGS" &_
738
             where & limit &_
739
             " ORDER BY RTAG_NAME ASC"
740
 
741
    ' Perform Query
742
    objEH.ErrorRedirect = FALSE
743
    objEH.TryORA ( OraSession )
744
    On Error Resume Next
745
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
746
    objEH.CatchORA ( OraSession )
747
 
748
    ' Process Results
749
    Set oJSON.data("aaData") = oJSON.Collection()
750
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
751
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
752
        Dim ii
753
        for ii = 1 to rsQry.Fields.Count - 1
754
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
755
        Next
756
        proj_id = rsQry.Fields(0) 
757
 
758
       rsQry.MoveNext
759
    Wend
760
 
761
    oJSON.data("proj_id") = proj_id
762
 
763
    result = 0
764
    rsQry.Close
765
    Set rsQry = Nothing
766
 
767
    OraDatabase.Parameters.Remove "RTAG_ID"
768
    OraDatabase.Parameters.Remove "PROJ_ID"
769
End Sub
770
 
771
'-------------------------------------------------
772
' Function:     addNewSdkVersion
773
' Description:  Add a New Sdk Version
5050 dpurdie 774
'               Returns the SDKTAG_ID if the created entry
5049 dpurdie 775
Sub addNewSdkVersion
776
    Dim userId : userId = objAccessControl.UserId()
5050 dpurdie 777
    Dim sdkTagId
5049 dpurdie 778
    '   Add a new entry
779
    '
780
    '   Setup for the database access
781
    '
782
    OraDatabase.Parameters.Add "SDKTAG_NAME",   QStrPar("sdkName"),     ORAPARM_INPUT, ORATYPE_VARCHAR2
783
    OraDatabase.Parameters.Add "DESCRIPTION",   QStrPar("sdkComment"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
784
    OraDatabase.Parameters.Add "SDK_ID",        QStrPar("sdk_id"),      ORAPARM_INPUT, ORATYPE_NUMBER
785
    OraDatabase.Parameters.Add "RTAG_ID",       QStrPar("rtag_id"),     ORAPARM_INPUT, ORATYPE_NUMBER
786
    OraDatabase.Parameters.Add "CREATOR_ID",    userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
787
    OraDatabase.Parameters.Add "STATE_ID",      userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
5050 dpurdie 788
    OraDatabase.Parameters.Add "SDKTAG_ID",     NULL,                   ORAPARM_BOTH, ORATYPE_NUMBER
5049 dpurdie 789
 
790
     '  Test existance - simply to provide a Nice Error message
791
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_NAME = :SDKTAG_NAME AND SDK_ID = :SDK_ID"
792
    objEH.ErrorRedirect = FALSE
793
    objEH.TryORA ( OraSession )
794
    On Error Resume Next
795
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
796
    objEH.CatchORA ( OraSession )
797
    On Error GoTo 0
798
 
799
    If rsQry.RecordCount <> 0 Then
800
        result = -3
801
        oJSON.data("error") = -1
802
        oJSON.data("emsgSummary") = "SDK Verion Name already exists in this SDK family"
803
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
804
    Else
5050 dpurdie 805
        SqlQry = "BEGIN "&_
806
                 " INSERT INTO SDK_TAGS (SDKTAG_NAME, DESCRIPTION, SDK_ID, RTAG_ID, CREATOR_ID, STATE_ID)" &_
807
                 " VALUES (:SDKTAG_NAME, :DESCRIPTION, :SDK_ID, :RTAG_ID, :CREATOR_ID, :STATE_ID)"&_
808
                 " RETURNING SDKTAG_ID INTO :SDKTAG_ID;" &_
809
                 " END;"
5049 dpurdie 810
        objEH.ErrorRedirect = FALSE
811
        objEH.TryORA ( OraSession )
812
        On Error Resume Next
813
        OraDatabase.ExecuteSQL SqlQry
5050 dpurdie 814
        sdkTagId = OraDatabase.Parameters("SDKTAG_ID").Value
815
 
816
        '
817
        '   Create the initial SDK_CONTENT
818
        '
819
        If Err.Number = 0 Then
820
            SqlQry = "INSERT INTO SDK_CONTENT ( SDKTAG_ID, PV_ID) SELECT :SDKTAG_ID, pv_id FROM RELEASE_CONTENT WHERE RTAG_ID = :RTAG_ID"
821
            OraDatabase.ExecuteSQL SqlQry
822
        End If
823
 
5049 dpurdie 824
        objEH.CatchORA ( OraSession )
825
        On Error GoTo 0
826
 
5050 dpurdie 827
        oJSON.data("SDKTAG_ID") = sdkTagId
5049 dpurdie 828
        result = 0
829
    End If
830
 
831
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
832
    OraDatabase.Parameters.Remove "DESCRIPTION"
833
    OraDatabase.Parameters.Remove "SDK_ID"
834
    OraDatabase.Parameters.Remove "RTAG_ID"    
835
    OraDatabase.Parameters.Remove "CREATOR_ID" 
836
    OraDatabase.Parameters.Remove "STATE_ID"   
5050 dpurdie 837
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
5049 dpurdie 838
 
839
End Sub
5050 dpurdie 840
 
841
'-------------------------------------------------
5053 dpurdie 842
' Function:     deleteSdkVersion
843
' Description:  Delete the specified Sdk Version
844
'               Will delete SDK_NAME entry if this is the last one
845
'                   sdktag_id   - Version to delete
846
'
847
'   SHOULD have checks to ensure that its not in use
848
 
849
Sub deleteSdkVersion
850
    Dim sdkTagId : sdkTagId = QStrPar("sdktagId")
851
    '
852
    '   Setup for the database access
853
    '
854
    OraDatabase.Parameters.Add "SDKTAG_ID", sdkTagId, ORAPARM_INPUT, ORATYPE_NUMBER
855
 
856
     '  Test to see if the version is in use - simply to provide a Nice Error message
857
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5102 dpurdie 858
    'objEH.ErrorRedirect = FALSE
859
    'objEH.TryORA ( OraSession )
5053 dpurdie 860
    'On Error Resume Next
861
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 862
    'objEH.CatchORA ( OraSession )
5053 dpurdie 863
    On Error GoTo 0
864
 
865
    If rsQry.RecordCount = 0 Then
866
        result = -3
867
        oJSON.data("error") = -1
868
        oJSON.data("emsgSummary") = "SDK Verion does not exist"
869
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
870
    Else
871
 
5102 dpurdie 872
        ' Determine if the SDK is in use
873
        '
874
        SqlQry = "SELECT distinct rtag_id FROM RELEASE_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 875
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 876
        If rsQry.RecordCount  <> 0 Then
877
            oJSON.data("useCount") = rsQry.RecordCount
878
            result = 0
879
        Else
880
 
881
            ' Determine the number of times this SDK_TAG is in use
882
            ' Determine the sdk_tag
883
            SqlQry = "SELECT st.SDK_ID, st.SDKTAG_ID FROM SDK_TAGS st WHERE SDK_ID IN ( SELECT SDK_ID FROM SDK_TAGS WHERE SDKTAG_ID=:SDKTAG_ID)"
5053 dpurdie 884
 
5102 dpurdie 885
            Dim sdkId, sdkTagCount
5053 dpurdie 886
            objEH.ErrorRedirect = FALSE
887
            objEH.TryORA ( OraSession )
888
            On Error Resume Next
5102 dpurdie 889
            Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
890
            If Err.Number = 0 Then
891
                sdkTagCount = rsQry.RecordCount
892
                oJSON.data("sdkTagCount") = sdkTagCount
5053 dpurdie 893
 
5102 dpurdie 894
                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
895
                    sdkId = rsQry.Fields(0)
896
                    oJSON.data("sdkId") = sdkId
897
                End If
898
 
899
                ' Delete content
900
                SqlQry = "DELETE FROM SDK_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
901
                objEH.ErrorRedirect = FALSE
902
                objEH.TryORA ( OraSession )
903
                On Error Resume Next
5053 dpurdie 904
                OraDatabase.ExecuteSQL SqlQry
905
 
5102 dpurdie 906
                ' Delete tag
907
                If Err.Number = 0 Then
908
                    SqlQry = "DELETE FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 909
                    OraDatabase.ExecuteSQL SqlQry
910
                End If
5102 dpurdie 911
 
912
                If Err.Number = 0 Then
913
                    ' Possibly delete the Sdk Name entry
914
                    If sdkTagCount = 1 Then
915
                        SqlQry = "DELETE FROM SDK_NAMES WHERE SDK_ID = :SDK_ID"
916
                        OraDatabase.Parameters.Add "SDK_ID", sdkId, ORAPARM_INPUT, ORATYPE_NUMBER
917
                        OraDatabase.ExecuteSQL SqlQry
918
                        OraDatabase.Parameters.Remove "SDK_ID"   
919
                        oJSON.data("SdkNameRemoved") = sdkId
920
                    End If
921
                End If
5053 dpurdie 922
            End If
923
 
924
            objEH.CatchORA ( OraSession )
925
            On Error GoTo 0
926
            result = 0
927
        End If
928
    End If
929
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
930
 
931
End Sub
932
 
933
'-------------------------------------------------
5052 dpurdie 934
' Function:     setSdkState
935
' Description:  Update the state of the SDK Release
936
'               Request Parameters
937
'                   sdktag_id
938
'                   sdk_state
939
Sub setSdkState
940
    Dim userId : userId = objAccessControl.UserId()
941
    '
942
    '
943
    OraDatabase.Parameters.Add "SDKTAG_ID", QStrPar("sdktagId"),  ORAPARM_INPUT, ORATYPE_NUMBER
944
    OraDatabase.Parameters.Add "SDK_STATE", QStrPar("sdk_state"), ORAPARM_INPUT, ORATYPE_CHAR
945
    OraDatabase.Parameters.Add "STATE_ID",  userId,               ORAPARM_INPUT, ORATYPE_NUMBER
946
 
947
        '   Update an existing entry
948
        SqlQry = "UPDATE SDK_TAGS SET SDK_STATE = :SDK_STATE, STATE_ID = :STATE_ID, STATE_STAMP = SYSTIMESTAMP WHERE SDKTAG_ID = :SDKTAG_ID"
949
        objEH.ErrorRedirect = FALSE
950
        objEH.TryORA ( OraSession )
951
        On Error Resume Next
952
        OraDatabase.ExecuteSQL SqlQry
953
        objEH.CatchORA ( OraSession )
954
        On Error GoTo 0
955
        result = 0
956
 
957
    OraDatabase.Parameters.Remove "STATE_ID"
958
    OraDatabase.Parameters.Remove "SDK_STATE"
959
    OraDatabase.Parameters.Remove "SDKTAG_ID"
960
 
961
End Sub
962
 
963
'-------------------------------------------------
5050 dpurdie 964
' Function:     setSdkContentState
965
' Description:  Update the state of a SDK conent item
966
'               Request Parameters
967
'                   sdktag_id
968
'                   pv_id
969
'                   sdkpkg_state
970
Sub setSdkContentState
971
    '
972
    '
973
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
974
    OraDatabase.Parameters.Add "PV_ID",         QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_VARCHAR2
975
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
976
 
977
        '   Update an existing entry
978
        SqlQry = "UPDATE SDK_CONTENT SET SDKPKG_STATE = :SDKPKG_STATE WHERE SDKTAG_ID = :SDKTAG_ID AND PV_ID = :PV_ID"
979
        objEH.ErrorRedirect = FALSE
980
        objEH.TryORA ( OraSession )
981
        On Error Resume Next
982
        OraDatabase.ExecuteSQL SqlQry
983
        objEH.CatchORA ( OraSession )
984
        On Error GoTo 0
985
        result = 0
986
 
987
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
988
    OraDatabase.Parameters.Remove "PV_ID"
989
    OraDatabase.Parameters.Remove "SDKTAG_ID"
990
 
991
End Sub
5751 dpurdie 992
 
993
'-------------------------------------------------
994
' Function:     cloneSdkPackages
995
' Description:  Clone state from reference SDK
996
'               Merge selected items (Leave unselected alone)
997
'               Request Parameters
998
'                   sdktag_id
999
'                   sdk_ref_tag_id
1000
Sub cloneSdkPackages
1001
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
1002
    OraDatabase.Parameters.Add "SDK_REFTAG_ID",  QStrPar("sdk_reftag_id"), ORAPARM_INPUT, ORATYPE_CHAR
1003
 
1004
        '   Merge ref state into sdk
1005
        SqlQry = _
1006
            "MERGE INTO SDK_CONTENT t USING " &_
1007
            "(SELECT A.PV_ID, " &_
1008
            "  A.sdkpkg_state, " &_
1009
            "  B.sdkpkg_state AS REF_SDKPKG_STATE " &_
1010
            "FROM " &_
1011
            "  (SELECT p.pkg_name " &_
1012
            "    || pv.v_ext AS mname, " &_
1013
            "    sc.pv_id, " &_
1014
            "    sc.sdkpkg_state " &_
1015
            "  FROM SDK_CONTENT SC , " &_
1016
            "    PACKAGE_VERSIONS pv, " &_
1017
            "    PACKAGES p " &_
1018
            "  WHERE sc.sdktag_id = :sdktag_id " &_
1019
            "  AND pv.pv_id       = sc.pv_id " &_
1020
            "  AND p.pkg_id       = pv.pkg_id " &_
1021
            "  ) A " &_
1022
            "INNER JOIN " &_
1023
            "  (SELECT p.pkg_name " &_
1024
            "    || pv.v_ext AS mname, " &_
1025
            "    sc.pv_id, " &_
1026
            "    sc.sdkpkg_state " &_
1027
            "  FROM SDK_CONTENT SC , " &_
1028
            "    PACKAGE_VERSIONS pv, " &_
1029
            "    PACKAGES p " &_
1030
            "  WHERE sc.sdktag_id = :sdk_reftag_id " &_
1031
            "  AND pv.pv_id       = sc.pv_id " &_
1032
            "  AND p.pkg_id       = pv.pkg_id " &_
1033
            "  ) B " &_
1034
            "ON A.mname            = B.mname " &_
1035
            "AND A.sdkpkg_state   != B.sdkpkg_state AND A.sdkpkg_state != 'E' " &_
1036
            ") aa ON (t.pv_id = aa.pv_id ) " &_
1037
            "WHEN MATCHED THEN " &_
1038
            "  UPDATE SET t.sdkpkg_state = aa.ref_sdkpkg_state " &_
1039
            "WHERE  t.sdktag_id = :sdktag_id"
1040
 
1041
        objEH.ErrorRedirect = FALSE
1042
        objEH.TryORA ( OraSession )
1043
        On Error Resume Next
1044
        OraDatabase.ExecuteSQL SqlQry
1045
        objEH.CatchORA ( OraSession )
1046
        On Error GoTo 0
1047
        result = 0
1048
 
1049
    OraDatabase.Parameters.Remove "SDKTAG_ID"
1050
    OraDatabase.Parameters.Remove "SDK_REFTAG_ID"
1051
 
1052
End Sub
1053
 
1054
'-------------------------------------------------
1055
' Function:     setSdkPackages
1056
' Description:  Clear state from reference SDK
1057
'               Request Parameters
1058
'                   sdktag_id
1059
Sub setSdkPackages
1060
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
1061
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
1062
 
1063
        '   Reset ref state into sdk
1064
        SqlQry = _
1065
            "UPDATE SDK_CONTENT " &_
1066
            "  SET SDKPKG_STATE = :SDKPKG_STATE " &_
1067
            "  WHERE SDKTAG_ID =  :sdktag_id AND SDKPKG_STATE != :SDKPKG_STATE"
1068
        objEH.ErrorRedirect = FALSE
1069
        objEH.TryORA ( OraSession )
1070
        On Error Resume Next
1071
        OraDatabase.ExecuteSQL SqlQry
1072
        objEH.CatchORA ( OraSession )
1073
        On Error GoTo 0
1074
        result = 0
1075
 
1076
    OraDatabase.Parameters.Remove "SDKTAG_ID"
1077
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
1078
End Sub
1079
 
1080
 
5048 dpurdie 1081
%>