Subversion Repositories DevTools

Rev

Rev 5751 | Go to most recent revision | 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
529
    SqlQry = "SELECT st.SDKTAG_ID, " &_
530
             "  SDKTAG_NAME, " &_
531
             "  DESCRIPTION, " &_
532
             "  st.SDK_ID, " &_
533
             "  TO_CHAR(CREATED_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as CREATED_STAMP , " &_
534
             "  CREATOR_ID, " &_
535
             "  TO_CHAR(STATE_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as STATE_STAMP , " &_
536
             "  STATE_ID, " &_
537
             "  SDK_STATE, " &_
538
             "  SDK_NAME, " &_
539
             "  SDK_COMMENT " &_
540
             "FROM SDK_TAGS st, " &_
541
             "  SDK_NAMES sn " &_
542
             "WHERE st.SDKTAG_ID = :SDKTAG_ID " &_
543
             "AND st.SDK_ID = sn.SDK_ID "
544
 
545
    ' Perform Query
546
    objEH.ErrorRedirect = FALSE
547
    objEH.TryORA ( OraSession )
548
    On Error Resume Next
549
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
550
    objEH.CatchORA ( OraSession )
551
on error goto 0
552
    ' Process Results
553
    Dim resultSet : Set resultSet = oJSON.Collection()
554
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
555
        Dim ii
556
        for ii = 0 to rsQry.Fields.Count - 1
557
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
558
        Next
559
        Set oJSON.data("aaData") = resultSet
560
        result = 0
561
    End If
562
 
563
    result = 0
564
    rsQry.Close
565
    Set rsQry = Nothing
566
 
567
    OraDatabase.Parameters.Remove "SDKTAG_ID"
568
End Sub
569
 
570
'-------------------------------------------------
5055 dpurdie 571
' Function:    updateSdkVersionDetails
572
' Description: Update specific parts of the SDK Version Meta Data
573
'
574
' Options:      sdktag_id       - SDK Version to update
575
'               sdkTagName     -
576
'               sdkTagComment  -
577
 
578
Sub updateSdkVersionDetails
579
    '   Get Data for an existing entry
580
    '   Setup for the database access
581
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
582
    Dim sdkTagName : sdkTagName = QStrPar("sdkTagName")
583
    Dim sdkTagComment : sdkTagComment = QStrPar("sdkTagComment")
584
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
585
    OraDatabase.Parameters.Add "SDKTAG_NAME",      sdkTagName, ORAPARM_INPUT, ORATYPE_VARCHAR2
586
    OraDatabase.Parameters.Add "DESCRIPTION",      sdkTagComment, ORAPARM_INPUT, ORATYPE_VARCHAR2
587
 
588
    '   Update an existing entry
589
    SqlQry = "UPDATE SDK_TAGS SET SDKTAG_NAME = :SDKTAG_NAME, DESCRIPTION = :DESCRIPTION WHERE SDKTAG_ID = :SDKTAG_ID"
590
    objEH.ErrorRedirect = FALSE
591
    objEH.TryORA ( OraSession )
592
    On Error Resume Next
593
    OraDatabase.ExecuteSQL SqlQry
594
    objEH.CatchORA ( OraSession )
595
    On Error GoTo 0
596
    result = 0
597
 
598
    OraDatabase.Parameters.Remove "DESCRIPTION"
599
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
600
    OraDatabase.Parameters.Remove "SDKTAG_ID"
601
End Sub
602
 
603
'-------------------------------------------------
5098 dpurdie 604
' Function:    getSdkUsage
605
' Description: Get SDK Usage information for a given sdktag_id
5102 dpurdie 606
'                Array of (unless countOnly is not empty):
607
'                 sdktag_id
608
'                 sdktag_name
609
'                 sdktag_state
610
'                useCount
5098 dpurdie 611
'
612
' Options:      sdktag_id  - Get information for given sdktag
5102 dpurdie 613
'               countOnly       - Just get count (Simple Test)
5098 dpurdie 614
 
615
Sub getSdkUsage
616
    '   Get Data for an existing entry
617
    '   Setup for the database access
618
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
619
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
620
 
621
    SqlQry = "SELECT DISTINCT p.proj_id, rc.rtag_id, p.PROJ_NAME, rt.RTAG_NAME" &_
622
             " FROM release_content rc," &_
623
             " release_tags rt, PROJECTS p" &_
5102 dpurdie 624
             " WHERE rc.SDKTAG_ID = :SDKTAG_ID" &_
5098 dpurdie 625
             " and rc.RTAG_ID = rt.RTAG_ID" &_
626
             " and p.PROJ_ID = rt.PROJ_ID" &_
627
             " ORDER BY UPPER(p.PROJ_NAME), UPPER(rt.RTAG_NAME)"
628
 
629
    ' Perform Query
630
    objEH.ErrorRedirect = FALSE
631
    objEH.TryORA ( OraSession )
632
    On Error Resume Next
633
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
634
    objEH.CatchORA ( OraSession )
635
 
636
    ' Process Results
5102 dpurdie 637
    If QStrPar("countOnly") = "" Then
638
        Set oJSON.data("aaData") = oJSON.Collection()
639
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
640
            Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
641
            Dim ii
642
            for ii = 0 to rsQry.Fields.Count - 1
643
                newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
644
            Next
645
           rsQry.MoveNext
646
        Wend
647
    End If
5098 dpurdie 648
 
5102 dpurdie 649
    ' Return count too
650
    oJSON.data("useCount") = rsQry.RecordCount 
651
 
5098 dpurdie 652
    result = 0
653
    rsQry.Close
654
    Set rsQry = Nothing
655
 
656
    OraDatabase.Parameters.Remove "SDKTAG_ID"
657
End Sub
658
 
659
 
660
'-------------------------------------------------
5049 dpurdie 661
' Function:    getProjectList
662
' Description: Get Project information
663
'              Array of:
664
'               proj_id
665
'               proj_name
666
Sub getProjectList
667
    '   Get Data for an existing entry
668
    '   Setup for the database access
669
    SqlQry = "SELECT PROJ_ID,PROJ_NAME from PROJECTS order by PROJ_NAME ASC"
670
 
671
    objEH.ErrorRedirect = FALSE
672
    objEH.TryORA ( OraSession )
673
    On Error Resume Next
674
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
675
    objEH.CatchORA ( OraSession )
676
 
677
    Set oJSON.data("aaData") = oJSON.Collection()
678
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
679
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
680
         Dim ii
681
        for ii = 0 to rsQry.Fields.Count - 1
682
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
683
        Next
684
 
685
       rsQry.MoveNext
686
    Wend
687
    result = 0
688
    rsQry.Close
689
    Set rsQry = Nothing
690
 
691
End Sub
692
 
693
'-------------------------------------------------
694
' Function:    getReleaseList
695
' Description: Get Release information for a project
696
'              Array of:
697
'               rtag_id
698
'               rtag_name
699
'               official
700
'              Also
701
'               proj_id
702
'
703
' Options:      proj_id - Get Releases for given project
704
'               rtag_id - Get Releases for project of this release
705
'               mode    - true: All Releases, otherwise only non-closed releases
706
 
707
Sub getReleaseList
708
    '   Get Data for an existing entry
709
    '   Setup for the database access
710
    Dim rtag_id : rtag_id = QStrPar("rtag_id")
711
    Dim proj_id : proj_id = QStrPar("proj_id")
712
    OraDatabase.Parameters.Add "PROJ_ID",      proj_id, ORAPARM_INPUT, ORATYPE_NUMBER
713
    OraDatabase.Parameters.Add "RTAG_ID",      rtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
714
 
715
    '
716
    '   Limit Selection to non-closed releases
717
    '
718
    Dim limit
719
    If NOT QStrPar("mode") Then
5384 dpurdie 720
        limit = " AND OFFICIAL IN ('N','R','C')"
5049 dpurdie 721
    End If
722
 
723
    Dim where
724
    If rtag_id <> "" Then
725
        where = " WHERE proj_id = (SELECT PROJ_ID from RELEASE_TAGS where RTAG_ID=:RTAG_ID)" 
726
    Else
727
        where = " WHERE PROJ_ID=:PROJ_ID"
728
    End If
729
 
730
    SqlQry = "SELECT PROJ_ID,RTAG_ID,RTAG_NAME,OFFICIAL  from RELEASE_TAGS" &_
731
             where & limit &_
732
             " ORDER BY RTAG_NAME ASC"
733
 
734
    ' Perform Query
735
    objEH.ErrorRedirect = FALSE
736
    objEH.TryORA ( OraSession )
737
    On Error Resume Next
738
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
739
    objEH.CatchORA ( OraSession )
740
 
741
    ' Process Results
742
    Set oJSON.data("aaData") = oJSON.Collection()
743
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
744
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
745
        Dim ii
746
        for ii = 1 to rsQry.Fields.Count - 1
747
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
748
        Next
749
        proj_id = rsQry.Fields(0) 
750
 
751
       rsQry.MoveNext
752
    Wend
753
 
754
    oJSON.data("proj_id") = proj_id
755
 
756
    result = 0
757
    rsQry.Close
758
    Set rsQry = Nothing
759
 
760
    OraDatabase.Parameters.Remove "RTAG_ID"
761
    OraDatabase.Parameters.Remove "PROJ_ID"
762
End Sub
763
 
764
'-------------------------------------------------
765
' Function:     addNewSdkVersion
766
' Description:  Add a New Sdk Version
5050 dpurdie 767
'               Returns the SDKTAG_ID if the created entry
5049 dpurdie 768
Sub addNewSdkVersion
769
    Dim userId : userId = objAccessControl.UserId()
5050 dpurdie 770
    Dim sdkTagId
5049 dpurdie 771
    '   Add a new entry
772
    '
773
    '   Setup for the database access
774
    '
775
    OraDatabase.Parameters.Add "SDKTAG_NAME",   QStrPar("sdkName"),     ORAPARM_INPUT, ORATYPE_VARCHAR2
776
    OraDatabase.Parameters.Add "DESCRIPTION",   QStrPar("sdkComment"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
777
    OraDatabase.Parameters.Add "SDK_ID",        QStrPar("sdk_id"),      ORAPARM_INPUT, ORATYPE_NUMBER
778
    OraDatabase.Parameters.Add "RTAG_ID",       QStrPar("rtag_id"),     ORAPARM_INPUT, ORATYPE_NUMBER
779
    OraDatabase.Parameters.Add "CREATOR_ID",    userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
780
    OraDatabase.Parameters.Add "STATE_ID",      userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
5050 dpurdie 781
    OraDatabase.Parameters.Add "SDKTAG_ID",     NULL,                   ORAPARM_BOTH, ORATYPE_NUMBER
5049 dpurdie 782
 
783
     '  Test existance - simply to provide a Nice Error message
784
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_NAME = :SDKTAG_NAME AND SDK_ID = :SDK_ID"
785
    objEH.ErrorRedirect = FALSE
786
    objEH.TryORA ( OraSession )
787
    On Error Resume Next
788
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
789
    objEH.CatchORA ( OraSession )
790
    On Error GoTo 0
791
 
792
    If rsQry.RecordCount <> 0 Then
793
        result = -3
794
        oJSON.data("error") = -1
795
        oJSON.data("emsgSummary") = "SDK Verion Name already exists in this SDK family"
796
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
797
    Else
5050 dpurdie 798
        SqlQry = "BEGIN "&_
799
                 " INSERT INTO SDK_TAGS (SDKTAG_NAME, DESCRIPTION, SDK_ID, RTAG_ID, CREATOR_ID, STATE_ID)" &_
800
                 " VALUES (:SDKTAG_NAME, :DESCRIPTION, :SDK_ID, :RTAG_ID, :CREATOR_ID, :STATE_ID)"&_
801
                 " RETURNING SDKTAG_ID INTO :SDKTAG_ID;" &_
802
                 " END;"
5049 dpurdie 803
        objEH.ErrorRedirect = FALSE
804
        objEH.TryORA ( OraSession )
805
        On Error Resume Next
806
        OraDatabase.ExecuteSQL SqlQry
5050 dpurdie 807
        sdkTagId = OraDatabase.Parameters("SDKTAG_ID").Value
808
 
809
        '
810
        '   Create the initial SDK_CONTENT
811
        '
812
        If Err.Number = 0 Then
813
            SqlQry = "INSERT INTO SDK_CONTENT ( SDKTAG_ID, PV_ID) SELECT :SDKTAG_ID, pv_id FROM RELEASE_CONTENT WHERE RTAG_ID = :RTAG_ID"
814
            OraDatabase.ExecuteSQL SqlQry
815
        End If
816
 
5049 dpurdie 817
        objEH.CatchORA ( OraSession )
818
        On Error GoTo 0
819
 
5050 dpurdie 820
        oJSON.data("SDKTAG_ID") = sdkTagId
5049 dpurdie 821
        result = 0
822
    End If
823
 
824
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
825
    OraDatabase.Parameters.Remove "DESCRIPTION"
826
    OraDatabase.Parameters.Remove "SDK_ID"
827
    OraDatabase.Parameters.Remove "RTAG_ID"    
828
    OraDatabase.Parameters.Remove "CREATOR_ID" 
829
    OraDatabase.Parameters.Remove "STATE_ID"   
5050 dpurdie 830
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
5049 dpurdie 831
 
832
End Sub
5050 dpurdie 833
 
834
'-------------------------------------------------
5053 dpurdie 835
' Function:     deleteSdkVersion
836
' Description:  Delete the specified Sdk Version
837
'               Will delete SDK_NAME entry if this is the last one
838
'                   sdktag_id   - Version to delete
839
'
840
'   SHOULD have checks to ensure that its not in use
841
 
842
Sub deleteSdkVersion
843
    Dim sdkTagId : sdkTagId = QStrPar("sdktagId")
844
    '
845
    '   Setup for the database access
846
    '
847
    OraDatabase.Parameters.Add "SDKTAG_ID", sdkTagId, ORAPARM_INPUT, ORATYPE_NUMBER
848
 
849
     '  Test to see if the version is in use - simply to provide a Nice Error message
850
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5102 dpurdie 851
    'objEH.ErrorRedirect = FALSE
852
    'objEH.TryORA ( OraSession )
5053 dpurdie 853
    'On Error Resume Next
854
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 855
    'objEH.CatchORA ( OraSession )
5053 dpurdie 856
    On Error GoTo 0
857
 
858
    If rsQry.RecordCount = 0 Then
859
        result = -3
860
        oJSON.data("error") = -1
861
        oJSON.data("emsgSummary") = "SDK Verion does not exist"
862
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
863
    Else
864
 
5102 dpurdie 865
        ' Determine if the SDK is in use
866
        '
867
        SqlQry = "SELECT distinct rtag_id FROM RELEASE_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 868
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 869
        If rsQry.RecordCount  <> 0 Then
870
            oJSON.data("useCount") = rsQry.RecordCount
871
            result = 0
872
        Else
873
 
874
            ' Determine the number of times this SDK_TAG is in use
875
            ' Determine the sdk_tag
876
            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 877
 
5102 dpurdie 878
            Dim sdkId, sdkTagCount
5053 dpurdie 879
            objEH.ErrorRedirect = FALSE
880
            objEH.TryORA ( OraSession )
881
            On Error Resume Next
5102 dpurdie 882
            Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
883
            If Err.Number = 0 Then
884
                sdkTagCount = rsQry.RecordCount
885
                oJSON.data("sdkTagCount") = sdkTagCount
5053 dpurdie 886
 
5102 dpurdie 887
                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
888
                    sdkId = rsQry.Fields(0)
889
                    oJSON.data("sdkId") = sdkId
890
                End If
891
 
892
                ' Delete content
893
                SqlQry = "DELETE FROM SDK_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
894
                objEH.ErrorRedirect = FALSE
895
                objEH.TryORA ( OraSession )
896
                On Error Resume Next
5053 dpurdie 897
                OraDatabase.ExecuteSQL SqlQry
898
 
5102 dpurdie 899
                ' Delete tag
900
                If Err.Number = 0 Then
901
                    SqlQry = "DELETE FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 902
                    OraDatabase.ExecuteSQL SqlQry
903
                End If
5102 dpurdie 904
 
905
                If Err.Number = 0 Then
906
                    ' Possibly delete the Sdk Name entry
907
                    If sdkTagCount = 1 Then
908
                        SqlQry = "DELETE FROM SDK_NAMES WHERE SDK_ID = :SDK_ID"
909
                        OraDatabase.Parameters.Add "SDK_ID", sdkId, ORAPARM_INPUT, ORATYPE_NUMBER
910
                        OraDatabase.ExecuteSQL SqlQry
911
                        OraDatabase.Parameters.Remove "SDK_ID"   
912
                        oJSON.data("SdkNameRemoved") = sdkId
913
                    End If
914
                End If
5053 dpurdie 915
            End If
916
 
917
            objEH.CatchORA ( OraSession )
918
            On Error GoTo 0
919
            result = 0
920
        End If
921
    End If
922
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
923
 
924
End Sub
925
 
926
'-------------------------------------------------
5052 dpurdie 927
' Function:     setSdkState
928
' Description:  Update the state of the SDK Release
929
'               Request Parameters
930
'                   sdktag_id
931
'                   sdk_state
932
Sub setSdkState
933
    Dim userId : userId = objAccessControl.UserId()
934
    '
935
    '
936
    OraDatabase.Parameters.Add "SDKTAG_ID", QStrPar("sdktagId"),  ORAPARM_INPUT, ORATYPE_NUMBER
937
    OraDatabase.Parameters.Add "SDK_STATE", QStrPar("sdk_state"), ORAPARM_INPUT, ORATYPE_CHAR
938
    OraDatabase.Parameters.Add "STATE_ID",  userId,               ORAPARM_INPUT, ORATYPE_NUMBER
939
 
940
        '   Update an existing entry
941
        SqlQry = "UPDATE SDK_TAGS SET SDK_STATE = :SDK_STATE, STATE_ID = :STATE_ID, STATE_STAMP = SYSTIMESTAMP WHERE SDKTAG_ID = :SDKTAG_ID"
942
        objEH.ErrorRedirect = FALSE
943
        objEH.TryORA ( OraSession )
944
        On Error Resume Next
945
        OraDatabase.ExecuteSQL SqlQry
946
        objEH.CatchORA ( OraSession )
947
        On Error GoTo 0
948
        result = 0
949
 
950
    OraDatabase.Parameters.Remove "STATE_ID"
951
    OraDatabase.Parameters.Remove "SDK_STATE"
952
    OraDatabase.Parameters.Remove "SDKTAG_ID"
953
 
954
End Sub
955
 
956
'-------------------------------------------------
5050 dpurdie 957
' Function:     setSdkContentState
958
' Description:  Update the state of a SDK conent item
959
'               Request Parameters
960
'                   sdktag_id
961
'                   pv_id
962
'                   sdkpkg_state
963
Sub setSdkContentState
964
    '
965
    '
966
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
967
    OraDatabase.Parameters.Add "PV_ID",         QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_VARCHAR2
968
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
969
 
970
        '   Update an existing entry
971
        SqlQry = "UPDATE SDK_CONTENT SET SDKPKG_STATE = :SDKPKG_STATE WHERE SDKTAG_ID = :SDKTAG_ID AND PV_ID = :PV_ID"
972
        objEH.ErrorRedirect = FALSE
973
        objEH.TryORA ( OraSession )
974
        On Error Resume Next
975
        OraDatabase.ExecuteSQL SqlQry
976
        objEH.CatchORA ( OraSession )
977
        On Error GoTo 0
978
        result = 0
979
 
980
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
981
    OraDatabase.Parameters.Remove "PV_ID"
982
    OraDatabase.Parameters.Remove "SDKTAG_ID"
983
 
984
End Sub
5751 dpurdie 985
 
986
'-------------------------------------------------
987
' Function:     cloneSdkPackages
988
' Description:  Clone state from reference SDK
989
'               Merge selected items (Leave unselected alone)
990
'               Request Parameters
991
'                   sdktag_id
992
'                   sdk_ref_tag_id
993
Sub cloneSdkPackages
994
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
995
    OraDatabase.Parameters.Add "SDK_REFTAG_ID",  QStrPar("sdk_reftag_id"), ORAPARM_INPUT, ORATYPE_CHAR
996
 
997
        '   Merge ref state into sdk
998
        SqlQry = _
999
            "MERGE INTO SDK_CONTENT t USING " &_
1000
            "(SELECT A.PV_ID, " &_
1001
            "  A.sdkpkg_state, " &_
1002
            "  B.sdkpkg_state AS REF_SDKPKG_STATE " &_
1003
            "FROM " &_
1004
            "  (SELECT p.pkg_name " &_
1005
            "    || pv.v_ext AS mname, " &_
1006
            "    sc.pv_id, " &_
1007
            "    sc.sdkpkg_state " &_
1008
            "  FROM SDK_CONTENT SC , " &_
1009
            "    PACKAGE_VERSIONS pv, " &_
1010
            "    PACKAGES p " &_
1011
            "  WHERE sc.sdktag_id = :sdktag_id " &_
1012
            "  AND pv.pv_id       = sc.pv_id " &_
1013
            "  AND p.pkg_id       = pv.pkg_id " &_
1014
            "  ) A " &_
1015
            "INNER JOIN " &_
1016
            "  (SELECT p.pkg_name " &_
1017
            "    || pv.v_ext AS mname, " &_
1018
            "    sc.pv_id, " &_
1019
            "    sc.sdkpkg_state " &_
1020
            "  FROM SDK_CONTENT SC , " &_
1021
            "    PACKAGE_VERSIONS pv, " &_
1022
            "    PACKAGES p " &_
1023
            "  WHERE sc.sdktag_id = :sdk_reftag_id " &_
1024
            "  AND pv.pv_id       = sc.pv_id " &_
1025
            "  AND p.pkg_id       = pv.pkg_id " &_
1026
            "  ) B " &_
1027
            "ON A.mname            = B.mname " &_
1028
            "AND A.sdkpkg_state   != B.sdkpkg_state AND A.sdkpkg_state != 'E' " &_
1029
            ") aa ON (t.pv_id = aa.pv_id ) " &_
1030
            "WHEN MATCHED THEN " &_
1031
            "  UPDATE SET t.sdkpkg_state = aa.ref_sdkpkg_state " &_
1032
            "WHERE  t.sdktag_id = :sdktag_id"
1033
 
1034
        objEH.ErrorRedirect = FALSE
1035
        objEH.TryORA ( OraSession )
1036
        On Error Resume Next
1037
        OraDatabase.ExecuteSQL SqlQry
1038
        objEH.CatchORA ( OraSession )
1039
        On Error GoTo 0
1040
        result = 0
1041
 
1042
    OraDatabase.Parameters.Remove "SDKTAG_ID"
1043
    OraDatabase.Parameters.Remove "SDK_REFTAG_ID"
1044
 
1045
End Sub
1046
 
1047
'-------------------------------------------------
1048
' Function:     setSdkPackages
1049
' Description:  Clear state from reference SDK
1050
'               Request Parameters
1051
'                   sdktag_id
1052
Sub setSdkPackages
1053
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
1054
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
1055
 
1056
        '   Reset ref state into sdk
1057
        SqlQry = _
1058
            "UPDATE SDK_CONTENT " &_
1059
            "  SET SDKPKG_STATE = :SDKPKG_STATE " &_
1060
            "  WHERE SDKTAG_ID =  :sdktag_id AND SDKPKG_STATE != :SDKPKG_STATE"
1061
        objEH.ErrorRedirect = FALSE
1062
        objEH.TryORA ( OraSession )
1063
        On Error Resume Next
1064
        OraDatabase.ExecuteSQL SqlQry
1065
        objEH.CatchORA ( OraSession )
1066
        On Error GoTo 0
1067
        result = 0
1068
 
1069
    OraDatabase.Parameters.Remove "SDKTAG_ID"
1070
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
1071
End Sub
1072
 
1073
 
5048 dpurdie 1074
%>