Subversion Repositories DevTools

Rev

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