home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 December / PCWorld_2003-12_cd.bin / Software / komercni / alc / ep2sr51csy.msi / Ep.CAB / dbdef.txt2 < prev    next >
Text File  |  2003-09-24  |  48KB  |  1,460 lines

  1. <%
  2.  
  3. Const dbtJet=1
  4. Const dbtMsSql=2
  5.  
  6.  
  7. Dim dbt
  8.  
  9.  
  10. Function WriteBool(Value)
  11.     If dbt = dbtJet Then
  12.         If Value Then
  13.             Write("TRUE")
  14.         Else
  15.             Write("FALSE")
  16.         End If
  17.     Else
  18.         If Value Then
  19.             Write("1")
  20.         Else
  21.             Write("0")
  22.         End If
  23.     End If
  24. End Function
  25.  
  26. Function WriteNow
  27.     If dbt = dbtJet Then
  28.         Write("Now()")
  29.     Else
  30.         Write("GETDATE()")
  31.     End If
  32. End Function
  33. %>
  34.  
  35.  
  36. <% Sub vLicHistAsset %> 
  37. SELECT 
  38.     tblLicHistAtom.lintLicHistId    AS lintLicHistId, 
  39.     tblAsset.txtId                    AS txtInvoice, 
  40.     tblAsset.lintLocationId            AS lintLocationId, 
  41.     vInvoice.txtCompany                AS txtCompany 
  42. FROM ((
  43.     tblAtom 
  44.     INNER JOIN 
  45.         tblAsset 
  46.     ON tblAtom.intAtomId = tblAsset.lintAtomId) 
  47.     INNER JOIN 
  48.         tblLicHistAtom 
  49.     ON tblAtom.intAtomId = tblLicHistAtom.lintAtomId) 
  50.     INNER JOIN 
  51.         vInvoice 
  52.     ON vInvoice.lintAtomId = tblAtom.intAtomId
  53. <% End Sub %>
  54.  
  55.  
  56. <% Sub vLicHistItem %>
  57. SELECT 
  58.     tblLicHistItem.intLicHistItemId            AS lintLicHistItemId, 
  59.     tblLicHistItem.lintLicHistId            AS lintLicHistId,
  60.     tblLicHistItem.txtSerialNumber            AS txtSerialNumber, 
  61.     tblLicHistItem.lintComputerNodeId        AS lintComputerNodeId, 
  62.     tblNode.txtName                            AS txtComputer, 
  63.     tblLicHistItem.lintCancelledByLicHistId    AS lintCancelledById, 
  64.     tblLicHist.dteDate                        AS dteCancelledDate, 
  65.     tblUser.txtUser                            AS txtCancelledByUser
  66. FROM 
  67.     tblNode RIGHT JOIN ((
  68.         tblLicHistItem 
  69.         LEFT JOIN 
  70.             tblLicHist 
  71.         ON tblLicHistItem.lintCancelledByLicHistId = tblLicHist.intLicHistId) 
  72.         LEFT JOIN 
  73.             tblUser 
  74.         ON tblLicHist.lintUserId = tblUser.intUserId) 
  75.     ON tblNode.intNodeId = tblLicHistItem.lintComputerNodeId
  76. <% End Sub %>
  77.  
  78.  
  79. <% Sub vInstHist %> 
  80. SELECT 
  81.     tblInstHist.intInstHistId        AS lintInstHistId, 
  82.     tblInstHist.lintComputerNodeId    AS lintComputerNodeId, 
  83.     tblInstHist.lintProductId        AS lintProductId, 
  84.     tblNode.txtName                    AS txtComputer, 
  85.     vProduct.txtName                AS txtProduct, 
  86.     vProduct.lintLangId                AS lintLangId, 
  87.     tblInstHist.dteDate                AS dteDate, 
  88.     tblInstHist.intCount            AS intCount, 
  89.     tblUser.txtName                    AS txtUser, 
  90.     tblLicHistItem.txtSerialNumber    AS txtSerialNumber,
  91.     tblInstHist.txtMemo                AS txtMemo 
  92. FROM
  93.     tblLicHistItem
  94.     RIGHT JOIN ( 
  95.         tblUser 
  96.         RIGHT JOIN (
  97.             vProduct 
  98.             INNER JOIN (
  99.                 tblInstHist 
  100.                 INNER JOIN 
  101.                     tblNode 
  102.                 ON tblInstHist.lintComputerNodeId = tblNode.intNodeId) 
  103.             ON vProduct.intProductId = tblInstHist.lintProductId) 
  104.         ON tblUser.intUserId = tblInstHist.lintUserId) 
  105.     ON tblLicHistItem.intLicHistItemId = tblInstHist.lintLicHistItemId
  106.  
  107. WHERE NOT tblNode.bolHidden=<% WriteBool(True) %>
  108. <% End Sub %>
  109.  
  110.  
  111. <% Sub vProductComputerBase %>
  112. SELECT
  113.     tblInstHist.lintProductId            AS lintProductId,
  114.     tblInstHist.lintComputerNodeId        AS lintComputerNodeId
  115. FROM
  116.     vComputer
  117.     INNER JOIN (
  118.         tblInstHist
  119.         INNER JOIN
  120.             vProduct
  121.         ON tblInstHist.lintProductId=vProduct.intProductId)
  122.     ON vComputer.intComputerNodeId=tblInstHist.lintComputerNodeId 
  123. WHERE NOT vComputer.bolHidden=<% WriteBool(True) %>
  124. GROUP BY tblInstHist.lintProductId, tblInstHist.lintComputerNodeId
  125. HAVING SUM (tblInstHist.intCount)>0
  126. <% End Sub %>
  127.  
  128.  
  129. <% Sub vProductAllComputers %> 
  130. SELECT 
  131.     vProduct.intProductId            AS lintProductId, 
  132.     vComputer.intComputerNodeId        AS lintComputerNodeId 
  133. FROM vComputer <% If dbt=dbtJet Then %>,<% Else %>CROSS JOIN<% End If %> vProduct 
  134. WHERE NOT vComputer.bolHidden=<% WriteBool(True) %>
  135. <% End Sub %>
  136.  
  137.  
  138. <% Sub vLic1 %>
  139. SELECT 
  140.     tblLicHist.lintProductId                AS lintProductId, 
  141.     SUM(tblLicHist.intCountChange)            AS intCount, 
  142.     SUM(tblLicHist.intMultiCountChange)        AS intMultiCount 
  143. FROM 
  144.     tblLicHist
  145.     INNER JOIN 
  146.         vProduct 
  147.     ON tblLicHist.lintProductId=vProduct.intProductId 
  148. WHERE tblLicHist.dteDate <= <% WriteNow() %> AND 
  149.  (tblLicHist.dteDateExpire IS NULL OR <% WriteNow() %> <= tblLicHist.dteDateExpire) AND
  150.  NOT EXISTS(
  151.     SELECT 1 
  152.     FROM tblLicHistItem
  153.     WHERE tblLicHist.intLicHistId=tblLicHistItem.lintLicHistId AND tblLicHistItem.lintComputerNodeId IS NOT NULL)
  154. GROUP BY tblLicHist.lintProductId 
  155. <% End Sub %>
  156.  
  157.  
  158. <% Sub vLic2 %>
  159. SELECT 
  160.     tblLicHist.lintProductId            AS lintProductId, 
  161.     tblLicHistItem.lintComputerNodeId    AS lintComputerNodeId 
  162. FROM 
  163.     vComputer 
  164.     INNER JOIN (
  165.         vProduct
  166.         INNER JOIN (
  167.             tblLicHist      
  168.             INNER JOIN 
  169.                 tblLicHistItem
  170.             ON tblLicHist.intLicHistId=tblLicHistItem.lintLicHistId)
  171.         ON vProduct.intProductId=tblLicHist.lintProductId) 
  172.     ON vComputer.intComputerNodeId=tblLicHistItem.lintComputerNodeId 
  173. WHERE NOT vComputer.bolHidden=<% WriteBool(True) %> AND
  174.       tblLicHist.dteDate <= <% WriteNow() %> AND (tblLicHist.dteDateExpire IS NULL OR <% WriteNow() %> <= tblLicHist.dteDateExpire) AND
  175.       tblLicHistItem.lintCancelledByLicHistId IS NULL
  176. <% End Sub %>
  177.  
  178.  
  179. <% Sub vLicHist %>
  180. SELECT 
  181.     tblLicHist.intLicHistId                AS lintLicHistId, 
  182.     tblLicHist.lintProductId            AS lintProductId, 
  183.     tblLicHist.dteDate                    AS dteDate, 
  184.     tblLicHist.dteDateExpire            AS dteDateExpire,
  185.     (tblLicHist.intMultiCountChange+tblLicHist.intCountChange) AS intChange, 
  186.     tblLicHist.intMultiCountChange        AS intMultiCountChange, 
  187.     tblLicHist.txtMemo                    AS txtMemo, 
  188.     vProduct.txtName                    AS txtProduct,
  189.     vProduct.lintLangId                    AS lintLangId
  190. FROM 
  191.     vProduct 
  192.     INNER JOIN 
  193.         tblLicHist 
  194.     ON vProduct.intProductId = tblLicHist.lintProductId
  195. <% End Sub %>
  196.  
  197.  
  198. <% Sub vSwInstLast %>
  199. SELECT 
  200.     intInstHistId,
  201.     lintComputerNodeId,
  202.     lintProductId,
  203.     dteDate,
  204.     lintUserId,
  205.     txtMemo,    
  206.     intCount,
  207.     lintLicHistItemId
  208. FROM tblInstHist AS I 
  209. WHERE dteDate = 
  210.     (SELECT MAX(dteDate) 
  211.      FROM tblInstHist AS I2, vProduct 
  212.      WHERE  I.lintComputerNodeId = I2.lintComputerNodeId AND I.lintProductId = I2.lintProductId AND I2.intCount = 1 AND vProduct.intProductId = I2.lintProductId 
  213.     )
  214. <% End Sub %>
  215.  
  216. <% Sub vLicAudit %>
  217. SELECT 
  218.         vProduct.intProductId                    AS lintProductId, 
  219.         vProduct.txtName                        AS txtProduct, 
  220.         vProduct.lintLangId                        AS lintLangId, 
  221.         tblCompany.txtName                        AS txtCompany, 
  222.         vProduct.lintProductTypeId                AS lintProductTypeId, 
  223.     <% If dbt = dbtJet Then %>
  224.         IIF(vLic1.intCount IS NULL,0,vLic1.intCount)                                            AS intLicCount, 
  225.         IIF(vLic1.intMultiCount IS NULL,0,vLic1.intMultiCount)                                    AS intLicMultiCount, 
  226.         IIF(vLic2Count.intCount IS NULL,0,vLic2Count.intCount)                                    AS intLicOEMCount, 
  227.         IIF(vProductInstCount.intCount IS NULL,0,vProductInstCount.intCount)                    AS intInstAllCount, 
  228.         IIF(vProductInstNotebootCount.intCount IS NULL,0,vProductInstNotebootCount.intCount)    AS intInstNotebookCount, 
  229.         IIF(vProductInstOEMCount.intCount IS NULL,0,vProductInstOEMCount.intCount)                AS intInstOEMCount, 
  230.         IIF(vInstTrialCount.intCount IS NULL,0,vInstTrialCount.intCount)                        AS intInstTrialCount, 
  231.         (intInstAllCount-intInstNotebookCount-intInstOEMCount-intInstTrialCount)                AS intInstCount, 
  232.         IIF(lintProductTypeId=2,0,IIF(intLicMultiCount>0,0,(intInstCount+intInstOEMCount)-(intLicCount+intLicOEMCount)))    AS intLicMissCount, 
  233.         IIF(lintProductTypeId=2,0,IIF(intLicMultiCount>0,intLicCount,intLicCount-intInstCount))                                AS intLicAddCount, 
  234.         IIF(lintProductTypeId=2,0,intLicOEMCount-intInstOEMCount)                                                            AS intLicOEMAddCount 
  235.     <% Else %>
  236.         ISNULL(vLic1.intCount,0)                        AS intLicCount, 
  237.         ISNULL(vLic1.intMultiCount,0)                    AS intLicMultiCount, 
  238.         ISNULL(vLic2Count.intCount,0)                    AS intLicOEMCount, 
  239.         ISNULL(vProductInstCount.intCount,0)            AS intInstAllCount, 
  240.         ISNULL(vProductInstNotebootCount.intCount,0)    AS intInstNotebookCount, 
  241.         ISNULL(vProductInstOEMCount.intCount,0)            AS intInstOEMCount, 
  242.         ISNULL(vInstTrialCount.intCount,0)                AS intInstTrialCount, 
  243.         (ISNULL(vProductInstCount.intCount,0)-ISNULL(vProductInstNotebootCount.intCount,0)-ISNULL(vProductInstOEMCount.intCount,0)-ISNULL(vInstTrialCount.intCount,0))    AS intInstCount, 
  244.         CASE vProduct.lintProductTypeId WHEN 2 
  245.             THEN 0 
  246.             ELSE CASE WHEN vLic1.intMultiCount IS NULL OR vLic1.intMultiCount=0
  247.                 THEN (ISNULL(vProductInstCount.intCount,0)-ISNULL(vProductInstNotebootCount.intCount,0)-ISNULL(vInstTrialCount.intCount,0))-(ISNULL(vLic1.intCount,0)+ISNULL(vLic2Count.intCount,0)) 
  248.                 ELSE 0 
  249.             END 
  250.         END AS intLicMissCount, 
  251.         CASE vProduct.lintProductTypeId WHEN 2 
  252.             THEN 0 
  253.             ELSE CASE WHEN vLic1.intMultiCount IS NULL OR vLic1.intMultiCount=0
  254.                 THEN ISNULL(vLic1.intCount,0)-(ISNULL(vProductInstCount.intCount,0)-ISNULL(vProductInstNotebootCount.intCount,0)-ISNULL(vProductInstOEMCount.intCount,0)-ISNULL(vInstTrialCount.intCount,0))
  255.                 ELSE ISNULL(vLic1.intCount,0) 
  256.             END 
  257.         END AS intLicAddCount, 
  258.         CASE vProduct.lintProductTypeId WHEN 2 
  259.             THEN 0 
  260.             ELSE (ISNULL(vLic2Count.intCount,0)-ISNULL(vProductInstOEMCount.intCount,0)) 
  261.         END AS intLicOEMAddCount 
  262.     <% End If %>
  263. FROM 
  264.     tblCompany 
  265.     RIGHT JOIN ((
  266.         vLic1 
  267.         RIGHT JOIN (
  268.             vLic2Count 
  269.             RIGHT JOIN (
  270.                 vProductInstOEMCount 
  271.                 RIGHT JOIN (
  272.                     vProductInstNotebootCount 
  273.                     RIGHT JOIN (
  274.                         vProductInstCount 
  275.                         RIGHT JOIN 
  276.                             vProduct 
  277.                         ON vProductInstCount.lintProductId = vProduct.intProductId) 
  278.                     ON vProductInstNotebootCount.lintProductId = vProduct.intProductId) 
  279.                 ON vProductInstOEMCount.lintProductId = vProduct.intProductId) 
  280.             ON vLic2Count.lintProductId = vProduct.intProductId) 
  281.         ON vLic1.lintProductId = vProduct.intProductId) 
  282.         LEFT JOIN 
  283.             vInstTrialCount 
  284.         ON vProduct.intProductId = vInstTrialCount.lintProductId) 
  285.     ON tblCompany.intCompanyId = vProduct.lintProducerCompanyId 
  286. WHERE vProductInstCount.intCount IS NOT NULL OR vLic1.intCount IS NOT NULL OR vLic1.intMultiCount IS NOT NULL OR vLic2Count.intCount IS NOT NULL
  287. <% End Sub %>
  288.  
  289.  
  290. <% Sub tblLicHistItem %>
  291. CREATE TABLE tblLicHistItem (
  292.     intLicHistItemId            int                IDENTITY    CONSTRAINT PK_tblLicHistItem_intLicHistItemId PRIMARY KEY,
  293.     lintLicHistId                int                NOT NULL    CONSTRAINT FK_tblLicHistItem_lintLicHistId_tblLicHist_intLicHistId REFERENCES tblLicHist ( intLicHistId ),
  294.     lintComputerNodeId            int                            CONSTRAINT FK_tblLicHistItem_lintComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ),
  295.     txtSerialNumber                varchar(255),
  296.     lintCancelledByLicHistId    int                            CONSTRAINT FK_tblLicHistItem_lintCancelledBy_tblLicHist_intLicHistId REFERENCES tblLicHist ( intLicHistId )
  297. );
  298.  
  299. CREATE INDEX tblLicHistItem_intLicHistItemId            ON tblLicHistItem ( intLicHistItemId ); 
  300. CREATE INDEX tblLicHistItem_lintComputerNodeId            ON tblLicHistItem ( lintComputerNodeId ); 
  301. CREATE INDEX tblLicHistItem_lintCancelledByLicHistId    ON tblLicHistItem ( lintCancelledByLicHistId ); 
  302. <% End Sub %>
  303.  
  304.  
  305. <%
  306. Sub CreateDbX
  307. %>
  308. CREATE TABLE tblVersion ( /* 
  309. Verze databßze
  310. V tabulce je jeden zßznam. */
  311.     intVersion            int, /* verze struktury, =9 pro 2002 SR4, =10 pro 2002 SR5 */
  312.     intDataVersion        int, /* verze zßkladnφch dat, =5 od 2002 */
  313.     intLanguage            int /* jazyk databßze, 0=ΦeÜtina, 1=slovenÜtina */
  314. );
  315.  
  316.  
  317. CREATE TABLE tblUser ( /* U₧ivatel programu */
  318.     intUserId            int                IDENTITY CONSTRAINT PK_tblUser_intUserId PRIMARY KEY,
  319.     txtName                varchar(255), /* celΘ jmΘno */
  320.     txtPassword            varchar(255), /* heslo */
  321.     txtEmail            varchar(255),
  322.     intFlags            int, /*
  323.         bitovΘ pole:
  324.         F_MOVE=0x02, prßvo p°esouvat objekty
  325.         F_CREATE=0x04, prßvo vytvß°et a upravovat objekty
  326.         F_DELETE=0x08, prßvo odstra≥ovat objekty
  327.         F_NOTADMIN=0x10, u₧ivatel NEnφ sprßvce aplikace
  328.         F_BLOCKLOGIN=0x20, u₧ivatel je zablokovan² (nem∙₧e se p°ihlßsit)
  329.     */
  330.     txtUser                varchar(255) /* login */
  331. );
  332.  
  333.  
  334. CREATE INDEX tblUser_intUserId ON tblUser ( intUserId );
  335.  
  336.  
  337. CREATE TABLE tblIcon ( /* Ikona */
  338.     intIconId            int                IDENTITY CONSTRAINT PK_tblIcon_intIconId PRIMARY KEY,
  339.     oleIcon                image, /* obrßzek ve formßtu bmp */
  340.     txtDesc                varchar(255) /* nßzev ikony */
  341. );
  342.  
  343. CREATE INDEX tblIcon_intIconId ON tblIcon ( intIconId );
  344.  
  345.  
  346. CREATE TABLE tblKind ( /* Definice vlastnosti */
  347.     intKindId            int                IDENTITY    CONSTRAINT PK_tblKind_intKindId PRIMARY KEY, 
  348.     txtName                varchar(255)    NOT NULL, /* nßzev vlastnosti, nap°. Nßzev sestavy, IP adresa, apod. */
  349.     lintIconId            int                            CONSTRAINT FK_tblKind_lintIconId_tblIcon_intIconId REFERENCES tblIcon ( intIconId ), /* ikona vlastnosti */
  350.     intFlags            int, /*
  351.         bitovΘ pole:
  352.         F_NOINHERIT=0x20, vlastnost nenφ d∞diΦnß
  353.         F_UNIQUE=0x1000, kontrolovat jedineΦnost hodnot
  354.         */
  355.     lintValueKindId        int                            CONSTRAINT FK_tblKind_lintValueKindId_tblKind_intKindId REFERENCES tblKind ( intKindId )
  356. );
  357.  
  358. CREATE INDEX tblKind_intKindId         ON tblKind ( intKindId );
  359. CREATE INDEX tblKind_lintIconId         ON tblKind ( lintIconId );
  360. CREATE INDEX tblKind_lintValueKindId ON tblKind ( lintValueKindId );
  361.  
  362.  
  363. CREATE TABLE tblKindValue ( /* Polo₧ka Φφselnφku hodnot vlastnosti 
  364. Nap°. pro vlastnosti Freeware jsou v Φφselnφku 2 hodnoty: Ano a Ne. */
  365.     lintKindId            int                NOT NULL CONSTRAINT FK_tblKindValue_lintKindId_tblKind_intKindId REFERENCES tblKind ( intKindId ), /* definice vlastnosti */
  366.     txtValue            varchar(255) /* hodnota */
  367. );
  368.     
  369. CREATE INDEX tblKindValue_lintKindId ON tblKindValue ( lintKindId );
  370.  
  371.  
  372. CREATE TABLE tblNode ( /* Objekt (uzel stromu) */
  373.     intNodeId            int                IDENTITY    CONSTRAINT PK_tblNode_intNodeId PRIMARY KEY,
  374.     lintParentId        int                            CONSTRAINT FK_tblNode_lintParentId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ), /* otec uzlu */
  375.     lintIconId            int                            CONSTRAINT FK_tblNode_lintIconId_tblIcon_intIconId REFERENCES tblIcon ( intIconId ), /* ikona objektu */
  376.     intState            int, /*
  377.         bitovΘ pole:
  378.         S_BASKET=1, objekt KoÜ 
  379.         S_DELLOCK=2, objekt je chrßn∞n p°ed smazßnφm 
  380.         S_TEMPLATES=4 objekt èablony objekt∙
  381.         S_MOVELOCK=8, nep°esouvateln² objekt
  382.         S_HIDDEN=0x10, skryt² objekt
  383.         S_HWSCANNER=0x20, objekt èablony scanneru
  384.         S_PROPTABTEMPL=0x40, objekt Zßlo₧ky seznamu vlastnostφ
  385.         S_NOHISTORY=0x80, u objektu se nevede historie
  386.         S_NEWCOMP=0x100, objekt NovΘ poΦφtaΦe 
  387.     */
  388.     txtName                varchar(255), /* nßzev objektu */
  389.     bolHidden            bit /* 0 pro objekty v koÜi a Üablony, jinak 1 */
  390. );
  391.  
  392. CREATE INDEX tblNode_intNodeId        ON tblNode ( intNodeId );
  393. CREATE INDEX tblNode_lintParentId    ON tblNode ( lintParentId );
  394. CREATE INDEX tblNode_lintIconId        ON tblNode ( lintIconId );
  395. CREATE INDEX tblNode_txtName        ON tblNode ( txtName );
  396.  
  397.  
  398. CREATE TABLE tblProperty ( /* Vlastnost */
  399.     intPropertyId        int                IDENTITY CONSTRAINT PK_tblProperty_intPropertyId PRIMARY KEY,
  400.     lintNodeId            int                NOT NULL CONSTRAINT FK_tblProperty_lintNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ), /* objekt */
  401.     lintKindId            int                NOT NULL CONSTRAINT FK_tblProperty_lintKindId_tblNode_intKindId REFERENCES tblKind ( intKindId ), /* definice vlastnosti */
  402.     txtValue            varchar(255), /* hodnota vlastnosti */
  403.     intState            int /*
  404.         bitovΘ pole:
  405.         S_DELLOCK=2, vlastnost je zamΦena proti smazßnφ
  406.         S_NODEICON=4, vlastnost urΦuje ikonu uzlu
  407.         0x18, hodnota urΦuje Φßst nßzvu objektu:
  408.             0, ₧ßdnou
  409.             S_NODENAMEPRE=8, p°edpona
  410.             S_NODENAMEBASE=0x10, kmen
  411.             S_NODENAMEPOST=0x18, p°φpona
  412.         S_HIDDEN=0x20, skrytß vlastnost
  413.         S_NOINHERIT=0x40, vlastnost se ned∞dφ
  414.     */
  415. );
  416.  
  417. CREATE INDEX tblProperty_intPropertyId    ON tblProperty ( intPropertyId );
  418. CREATE INDEX tblProperty_lintNodeId        ON tblProperty ( lintNodeId );
  419. CREATE INDEX tblProperty_lintKindId        ON tblProperty ( lintKindId );
  420. CREATE INDEX tblProperty_txtValue        ON tblProperty ( txtValue );
  421.  
  422.  
  423. CREATE TABLE tblHistory ( /* Zßznam historie objektu */
  424.     intHistoryId        int                IDENTITY CONSTRAINT PK_tblHistory_intHistoryId PRIMARY KEY,
  425.     lintNodeId            int                NOT NULL CONSTRAINT FK_tblHistory_lintNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ), /* objekt */
  426.     lintUserId            int                NOT NULL CONSTRAINT FK_tblHistory_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ), /* u₧ivatel, kter² operaci provedl */
  427.     dteDateTime            datetime, /* datum a Φas provedenφ */
  428.     intFlags            int, /*
  429.         hodnota v bitech 0xff00:
  430.         F_C_MOVEDEST=1, sem presunut "X"
  431.         F_C_MOVESRC=2, odtud presunut "X"
  432.         F_C_TO=3, presunut do "X"
  433.         F_C_INSERTNEW=4, sem vlozen novy "X" (v otcovskem)
  434.         F_C_TONEW=5, vytvoren v "X" 
  435.         F_C_SCANMOVEDEST=6, sem presunut "X"
  436.         F_C_SCANMOVESRC=7, odtud presunut "X"
  437.         F_C_SCANTO=8, presunut do "X"
  438.         F_C_SCANINSERTNEW=9, sem vlozen novy "X"
  439.         F_C_SCANTONEW=10, vytvoren v "X"
  440.     */
  441.     lintOpNodeId        int, /* objekt X */
  442.     txtOpNodeName        varchar(255) /* Nßzev objektu X s cestou v p°φpad∞,
  443.      ₧e objekt byl odstran∞n z db a lintOpNodeId je NULL. */
  444. );
  445.     
  446. CREATE INDEX tblHistory_intHistoryId    ON tblHistory ( intHistoryId );
  447. CREATE INDEX tblHistory_lintNodeId        ON tblHistory ( lintNodeId );
  448. CREATE INDEX tblHistory_lintUserId        ON tblHistory ( lintUserId );
  449. CREATE INDEX tblHistory_lintOpNodeId    ON tblHistory ( lintOpNodeId );
  450.  
  451.  
  452. CREATE TABLE tblNotice ( /* Poznßmka k objektu */
  453.     intNoticeId            int                IDENTITY CONSTRAINT PK_tblNotice_intNoticeId PRIMARY KEY,
  454.     lintNodeId            int                NOT NULL CONSTRAINT FK_tblNotice_lintNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ), /* objekt */
  455.     lintUserId            int                NOT NULL CONSTRAINT FK_tblNotice_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ), /* u₧ivatel, kter² poznßmku vytvo°il */
  456.     dteDateTime            datetime, /* datum a Φas */
  457.     txtDesc                text /* text poznßmky */
  458. );
  459.  
  460. CREATE INDEX tblNotice_intNoticeId    ON tblNotice ( intNoticeId );
  461. CREATE INDEX tblNotice_lintNodeId    ON tblNotice ( lintNodeId );
  462. CREATE INDEX tblNotice_lintUserId    ON tblNotice ( lintUserId );
  463.  
  464.  
  465. CREATE TABLE tblSetting (
  466.     txtKey                varchar(255)    NOT NULL CONSTRAINT PK_tblSetting_txtKey PRIMARY KEY,
  467.     txtValue            varchar(255),
  468.     intValue            int
  469. );
  470.  
  471. CREATE INDEX tblSetting_txtKey ON tblSetting ( txtKey );
  472. <%
  473. End Sub
  474. %>
  475.  
  476.  
  477. <%
  478. Sub CreateDbX_v10
  479. %>
  480. CREATE TABLE tblAtom (
  481.     intAtomId            int                IDENTITY CONSTRAINT PK_tblAtom_intAtomId PRIMARY KEY,
  482.     lintAtomKindId        int                NOT NULL
  483. );
  484.  
  485. CREATE INDEX tblAtom_intAtomId        ON tblAtom ( intAtomId );
  486. CREATE INDEX tblAtom_lintAtomKindId ON tblAtom ( lintAtomKindId );
  487.  
  488.  
  489. CREATE TABLE tblAsset (
  490.     lintAtomId            int                NOT NULL CONSTRAINT FK_tblAsset_lintAtomId_tblAtom_intAtomId REFERENCES tblAtom ( intAtomId ),
  491.     txtId                varchar(255),
  492.     lintLocationId        int
  493. );
  494.     
  495. CREATE INDEX tblAsset_lintAtomId        ON tblAsset ( lintAtomId );
  496. CREATE INDEX tblAsset_txtId                ON tblAsset ( txtId );
  497. CREATE INDEX tblAsset_lintLocationId    ON tblAsset ( lintLocationId );
  498.  
  499.  
  500. CREATE TABLE tblCompany (
  501.     intCompanyId        int                IDENTITY  CONSTRAINT PK_tblCompany_intCompanyId PRIMARY KEY,
  502.     txtName                varchar(255)    NOT NULL,
  503.     txtAddress1            varchar(255),
  504.     txtAddress2            varchar(255),
  505.     txtCity                varchar(255),
  506.     txtZIP                varchar(255),
  507.     txtState            varchar(255),
  508.     txtWeb                varchar(255),
  509.     txtPhone            varchar(255),
  510.     bolProducer            bit                NOT NULL,
  511.     bolReseller            bit                NOT NULL,
  512.     bolPrint            bit                NOT NULL
  513. );
  514.     
  515. CREATE INDEX tblCompany_intCompanyId    ON tblCompany ( intCompanyId );
  516. CREATE INDEX tblCompany_txtName            ON tblCompany ( txtName );
  517.  
  518.  
  519. CREATE TABLE tblProduct (
  520.     intProductId          int            IDENTITY    CONSTRAINT PK_tblProduct_intProductId PRIMARY KEY, 
  521.     txtName                  varchar(255)    NOT NULL, 
  522.     lintLangId              int, 
  523.     lintProducerCompanyId int                        CONSTRAINT FK_tblProduct_lintProducerCompanyId_tblCompany_intCompanyId REFERENCES tblCompany ( intCompanyId ),
  524.     lintProductTypeId      int            NOT NULL,
  525.     lintProductCategoryId int, 
  526.     bolUser                  bit            NOT NULL,
  527.     intSimple              int            NOT NULL    <% If dbt <> dbtJet Then %>CONSTRAINT DF_tblProduct_intSimple<% End If %> DEFAULT 0
  528. );
  529.     
  530. CREATE INDEX tblProduct_intProductId            ON tblProduct ( intProductId );
  531. CREATE INDEX tblProduct_txtName                    ON tblProduct ( txtName );
  532. CREATE INDEX tblProduct_lintLangId                ON tblProduct ( lintLangId );
  533. CREATE INDEX tblProduct_lintProducerCompanyId    ON tblProduct ( lintProducerCompanyId );
  534. CREATE INDEX tblProduct_lintProductTypeId        ON tblProduct ( lintProductTypeId );
  535. CREATE INDEX tblProduct_lintProductCategoryId    ON tblProduct ( lintProductCategoryId );
  536. CREATE INDEX tblProduct_intSimple                ON tblProduct ( intSimple );
  537.  
  538.  
  539. CREATE TABLE tblDetect (
  540.     intDetectId            int                IDENTITY CONSTRAINT PK_tblDetect_intDetectId PRIMARY KEY,
  541.     lintComputerNodeId    int                NOT NULL CONSTRAINT FK_tblDetect_lintComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ),
  542.     dteCreated            datetime,
  543.     dteImported            datetime
  544. );
  545.     
  546. CREATE INDEX tblDetect_intDetectId            ON tblDetect ( intDetectId );
  547. CREATE INDEX tblDetect_lintComputerNodeId    ON tblDetect ( lintComputerNodeId );
  548.     
  549.     
  550. CREATE TABLE tblFile (
  551.     intFileId            int                IDENTITY CONSTRAINT PK_tblFile_intFileId PRIMARY KEY,
  552.     txtName                varchar(255),
  553.     txtExt                varchar(255),
  554.     intSize                int
  555. );
  556.  
  557. CREATE INDEX tblFile_intFileId    ON tblFile ( intFileId );
  558. CREATE INDEX tblFile_txtName    ON tblFile ( txtName );
  559. CREATE INDEX tblFile_txtExt        ON tblFile ( txtExt );
  560. CREATE INDEX tblFile_intSize    ON tblFile ( intSize );
  561.     
  562.  
  563. CREATE TABLE tblDetFile (
  564.     intDetFileId        int                IDENTITY    CONSTRAINT PK_tblDetFile_intDetFileId PRIMARY KEY,
  565.     lintFileId            int                            CONSTRAINT FK_tblDetFile_lintFileId_tblFile_intFileId REFERENCES tblFile ( intFileId ),
  566.     lintDetectId        int                            CONSTRAINT FK_tblDetFile_lintDetectId_tblDetect_intDetectId REFERENCES tblDetect ( intDetectId ),
  567.     txtFolderPath        varchar(255),
  568.     dteCreated            datetime,
  569.     dteModified            datetime,
  570.     dteAccessed            datetime,
  571.     intAttribs            int,
  572.     lintProductId        int                            CONSTRAINT FK_tblDetFile_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ) 
  573. );
  574.  
  575. CREATE INDEX tblDetFile_intDetFileId    ON tblDetFile ( intDetFileId );
  576. CREATE INDEX tblDetFile_lintFileId        ON tblDetFile ( lintFileId );
  577. CREATE INDEX tblDetFile_lintDetectId    ON tblDetFile ( lintDetectId );
  578. CREATE INDEX tblDetFile_txtFolderPath    ON tblDetFile ( txtFolderPath );
  579. CREATE INDEX tblDetFile_dteCreated        ON tblDetFile ( dteCreated );
  580. CREATE INDEX tblDetFile_dteModified        ON tblDetFile ( dteModified );
  581. CREATE INDEX tblDetFile_lintProductId    ON tblDetFile ( lintProductId );
  582.  
  583.  
  584. CREATE TABLE tblImport (
  585.     intImportId            int                IDENTITY  CONSTRAINT PK_tblImport_intImportId PRIMARY KEY,
  586.     dteCreated            datetime        NOT NULL
  587. );
  588.     
  589. CREATE INDEX tblImport_intImportId ON tblImport ( intImportId );
  590.  
  591.  
  592. CREATE TABLE tblFileImport (
  593.     intFileImportId        int                IDENTITY    CONSTRAINT PK_tblFileImport_intFileImportId PRIMARY KEY,
  594.     lintImportId        int                NOT NULL    CONSTRAINT FK_tblFileImport_lintImportId_tblImport_intImportId REFERENCES tblImport ( intImportId ),
  595.     lintDetFileId        int                            CONSTRAINT FK_tblFileImport_lintDetFileId_tblDetFile_intDetFileId REFERENCES tblDetFile ( intDetFileId ),
  596.     lintFileId            int                            CONSTRAINT FK_tblFileImport_lintFileId_tblFile_intFileId REFERENCES tblFile ( intFileId ),
  597.     txtName                varchar(255),
  598.     txtExt                varchar(255),
  599.     intSize                int,
  600.     intFileVersionMS    int,
  601.     intFileVersionLS    int,
  602.     intProductVersionMS int,
  603.     intProductVersionLS int
  604. );
  605.     
  606. CREATE INDEX tblFileImport_intFileImportId        ON tblFileImport ( intFileImportId );
  607. CREATE INDEX tblFileImport_lintImportId            ON tblFileImport ( lintImportId );
  608. CREATE INDEX tblFileImport_lintDetFileId        ON tblFileImport ( lintDetFileId );
  609. CREATE INDEX tblFileImport_lintFileId            ON tblFileImport ( lintFileId );
  610. CREATE INDEX tblFileImport_txtName                ON tblFileImport ( txtName );
  611. CREATE INDEX tblFileImport_txtExt                ON tblFileImport ( txtExt );
  612. CREATE INDEX tblFileImport_intSize                ON tblFileImport ( intSize );
  613. CREATE INDEX tblFileImport_intFileVersionMS        ON tblFileImport ( intFileVersionMS );
  614. CREATE INDEX tblFileImport_intFileVersionLS        ON tblFileImport ( intFileVersionLS );
  615. CREATE INDEX tblFileImport_intProductVersionMS    ON tblFileImport ( intProductVersionMS );
  616. CREATE INDEX tblFileImport_intProductVersionLS    ON tblFileImport ( intProductVersionLS );
  617.  
  618.  
  619. CREATE TABLE tblEvent (
  620.     intEventId            int                IDENTITY CONSTRAINT PK_tblEvent_intEventId PRIMARY KEY,
  621.     dteSignalDate        datetime        NOT NULL,
  622.     dteDate                datetime,
  623.     txtMemo                text,
  624.     lintUserId            int                NOT NULL CONSTRAINT FK_tblEvent_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ),
  625.     bolChecked            bit                NOT NULL
  626. );
  627.     
  628. CREATE INDEX tblEvent_intEventId ON tblEvent ( intEventId );
  629. CREATE INDEX tblEvent_lintUserId ON tblEvent ( lintUserId );
  630.  
  631.  
  632. CREATE TABLE tblFileStringInfo (
  633.     lintFileId            int                NOT NULL CONSTRAINT FK_tblFileStringInfo_lintFileId_tblFile_intFileId REFERENCES tblFile ( intFileId ),
  634.     intLanguage            int,
  635.     intCodePage            int,
  636.     txtComments            varchar(255),
  637.     txtCompanyName        varchar(255),
  638.     txtFileDescription    varchar(255),
  639.     txtFileVersion        varchar(255),
  640.     txtInternalName        varchar(255),
  641.     txtLegalCopyright    varchar(255),
  642.     txtLegalTrademarks    varchar(255),
  643.     txtOriginalFilename varchar(255),
  644.     txtProductName        varchar(255),
  645.     txtProductVersion    varchar(255),
  646.     txtPrivateBuild        varchar(255),
  647.     txtSpecialBuild        varchar(255)
  648. );
  649.     
  650. CREATE INDEX tblFileStringInfo_lintFileId        ON tblFileStringInfo ( lintFileId );
  651. CREATE INDEX tblFileStringInfo_txtCompanyName    ON tblFileStringInfo ( txtCompanyName );
  652. CREATE INDEX tblFileStringInfo_txtProductName    ON tblFileStringInfo ( txtProductName );
  653.     
  654.  
  655. CREATE TABLE tblFileVerInfo (
  656.     lintFileId            int                NOT NULL CONSTRAINT FK_tblFileVerInfo_lintFileId_tblFile_intFileId REFERENCES tblFile ( intFileId ),
  657.     intFileVersionMS    int,
  658.     intFileVersionLS    int,
  659.     intProductVersionMS int,
  660.     intProductVersionLS int,
  661.     intFileFlagsMask    int,
  662.     intFileFlags        int,
  663.     intFileOS            int,
  664.     intFileType            int,
  665.     intFileSubtype        int,
  666.     intFileDateMS        int,
  667.     intFileDateLS        int
  668. );
  669.     
  670. CREATE INDEX tblFileVerInfo_lintFileId            ON tblFileVerInfo ( lintFileId );
  671. CREATE INDEX tblFileVerInfo_intFileVersionMS    ON tblFileVerInfo ( intFileVersionMS );
  672. CREATE INDEX tblFileVerInfo_intFileVersionLS    ON tblFileVerInfo ( intFileVersionLS );
  673. CREATE INDEX tblFileVerInfo_intProductVersionMS ON tblFileVerInfo ( intProductVersionMS );
  674. CREATE INDEX tblFileVerInfo_intProductVersionLS ON tblFileVerInfo ( intProductVersionLS );
  675.     
  676.  
  677. CREATE TABLE tblIdSeq (
  678.     intIdSeqId            int                IDENTITY CONSTRAINT PK_tblIdSeq_intIdSeqId PRIMARY KEY,
  679.     txtPrefix            varchar(255),
  680.     intNextNumber        int,
  681.     txtSuffix            varchar(255)
  682. );
  683.     
  684. CREATE INDEX tblIdSeq_intIdSeqId ON tblIdSeq ( intIdSeqId );
  685.     
  686.  
  687. CREATE TABLE tblInvoice (
  688.     lintAtomId                int            NOT NULL    CONSTRAINT FK_tblInvoice_lintAtomId_tblAtom_intAtomId REFERENCES tblAtom ( intAtomId ),
  689.     dteCreated                datetime,
  690.     lintResellerCompanyId    int                        CONSTRAINT FK_tblInvoice_lintResellerCompanyId_tblCompany_intCompanyId REFERENCES tblCompany ( intCompanyId ),
  691.     txtMemo text
  692. );
  693.     
  694. CREATE INDEX tblInvoice_lintAtomId                ON tblInvoice ( lintAtomId );
  695. CREATE INDEX tblInvoice_lintResellerCompanyId    ON tblInvoice ( lintResellerCompanyId );
  696.  
  697.     
  698. CREATE TABLE tblMedia (
  699.     lintAtomId            int                NOT NULL CONSTRAINT FK_tblMedia_lintAtomId_tblAtom_intAtomId REFERENCES tblAtom ( intAtomId ),
  700.     lintMediaTypeId        int                NOT NULL,
  701.     txtTitle            varchar(255),
  702.     txtAuthor            varchar(255),
  703.     txtMemo                text
  704. );
  705.  
  706. CREATE INDEX tblMedia_lintAtomId        ON tblMedia ( lintAtomId );
  707. CREATE INDEX tblMedia_lintMediaTypeId    ON tblMedia ( lintMediaTypeId );
  708.  
  709.  
  710. CREATE TABLE tblRegValue (
  711.     intRegValueId        int                IDENTITY CONSTRAINT PK_tblRegValue_intRegValueId PRIMARY KEY,
  712.     lintDetectId        int                NOT NULL CONSTRAINT FK_tblRegValue_lintDetectId_tblDetect_intDetectId REFERENCES tblDetect ( intDetectId ),
  713.     lintRootRegKeyId    int                NOT NULL,
  714.     txtPath                varchar(255),
  715.     txtName                varchar(255),
  716.     txtValue            varchar(255)
  717. );
  718.     
  719. CREATE INDEX tblRegValue_intRegValueId        ON tblRegValue ( intRegValueId );
  720. CREATE INDEX tblRegValue_lintDetectId        ON tblRegValue ( lintDetectId );
  721. CREATE INDEX tblRegValue_lintRootRegKeyId    ON tblRegValue ( lintRootRegKeyId );
  722.  
  723.  
  724. CREATE TABLE tblOsVersionInfo (
  725.     lintDetectId        int                NOT NULL CONSTRAINT FK_tblOsVersionInfo_lintDetectId_tblDetect_intDetectId REFERENCES tblDetect ( intDetectId ),
  726.     intMajorVersion        int,
  727.     intMinorVersion        int,
  728.     intBuildNumber        int,
  729.     intPlatformId        int,
  730.     txtCSDVersion        varchar(255),
  731.     intServicePackMajor int,
  732.     intServicePackMinor int,
  733.     intSuiteMask        int,
  734.     intProductType        int 
  735. );
  736.  
  737. CREATE INDEX tblOsVersionInfo_lintDetectId  ON tblOsVersionInfo ( lintDetectId );
  738. CREATE INDEX tblOsVersionInfo_intPlatformId ON tblOsVersionInfo ( intPlatformId );
  739.  
  740.  
  741. CREATE TABLE tblProductAtom (
  742.     lintProductId        int                NOT NULL CONSTRAINT FK_tblProductAtom_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  743.     lintAtomId            int                NOT NULL CONSTRAINT FK_tblProductAtom_lintAtomId_tblAtom_intAtomId REFERENCES tblAtom ( intAtomId )
  744. );
  745.     
  746. CREATE INDEX tblProductAtom_lintProductId    ON tblProductAtom ( lintProductId );
  747. CREATE INDEX tblProductAtom_lintAtomId        ON tblProductAtom ( lintAtomId );
  748.  
  749.  
  750. CREATE TABLE tblProductFile (
  751.     lintProductId        int                NOT NULL CONSTRAINT FK_tblProductFile_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  752.     lintFileId            int                NOT NULL CONSTRAINT FK_tblProductFile_lintFileId_tblFile_intFileId REFERENCES tblFile ( intFileId ),
  753.     bolUser                bit                NOT NULL
  754. );
  755.     
  756. CREATE INDEX tblProductFile_lintProductId    ON tblProductFile ( lintProductId );
  757. CREATE INDEX tblProductFile_lintFileId        ON tblProductFile ( lintFileId );
  758.  
  759.  
  760. CREATE TABLE tblInstTrial ( 
  761.     lintProductId        int                NOT NULL CONSTRAINT FK_tblInstTrial_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  762.     lintComputerNodeId    int                NOT NULL CONSTRAINT FK_tblInstTrial_lintComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId )
  763. );
  764.  
  765. CREATE INDEX tblInstTrial_lintProductId         ON tblInstTrial ( lintProductId ); 
  766. CREATE INDEX tblInstTrial_lintComputerNodeId ON tblInstTrial ( lintComputerNodeId ); 
  767.  
  768.  
  769. CREATE TABLE tblLicHist (
  770.     intLicHistId            int            IDENTITY    CONSTRAINT PK_tblLicHist_intLicHistId PRIMARY KEY,
  771.     lintProductId            int            NOT NULL    CONSTRAINT FK_tblLicHist_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  772.     intCountChange            int                        <% If dbt <> dbtJet Then %>CONSTRAINT DF_tblLicHist_intCountChange<% End If %> DEFAULT 0,
  773.     intMultiCountChange        int                        <% If dbt <> dbtJet Then %>CONSTRAINT DF_tblLicHist_intMultiCountChange<% End If %> DEFAULT 0,
  774.     dteDate                    datetime    NOT NULL,
  775.     dteDateExpire            datetime,
  776.     txtMemo                    text,
  777.     lintUserId                int                        CONSTRAINT FK_tblLicHist_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ),
  778.     lintCancelLicHistId        int                        CONSTRAINT FK_tblLicHist_lintCancelId_tblLicHist_intLicHistId REFERENCES tblLicHist ( intLicHistId )
  779. );
  780.  
  781. CREATE INDEX tblLicHist_intLicHistId            ON tblLicHist ( intLicHistId ); 
  782. CREATE INDEX tblLicHist_lintProductId            ON tblLicHist ( lintProductId ); 
  783. CREATE INDEX tblLicHist_lintUserId                ON tblLicHist ( lintUserId ); 
  784. CREATE INDEX tblLicHist_lintCancelLicHistId    ON tblLicHist ( lintCancelLicHistId ); 
  785.  
  786.  
  787. <% Call tblLicHistItem %>
  788.  
  789.     
  790. CREATE TABLE tblLicHistAtom (
  791.     lintLicHistId        int                NOT NULL CONSTRAINT FK_tblLicHistAtom_lintLicHistId_tblLicHist_intLicHistId REFERENCES tblLicHist ( intLicHistId ),
  792.     lintAtomId            int                NOT NULL CONSTRAINT FK_tblLicHistAtom_lintAtomId_tblAtom_intAtomId REFERENCES tblAtom ( intAtomId )
  793. );
  794.  
  795. CREATE INDEX tblLicHistAtom_lintLicHistId    ON tblLicHistAtom ( lintLicHistId ); 
  796. CREATE INDEX tblLicHistAtom_lintAtomId        ON tblLicHistAtom ( lintAtomId ); 
  797.  
  798.  
  799. CREATE TABLE tblInstHist (
  800.     intInstHistId        int                IDENTITY    CONSTRAINT PK_tblInstHist_intInstHistId PRIMARY KEY,
  801.     lintComputerNodeId    int                NOT NULL    CONSTRAINT FK_tblInstHist_lintComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ),
  802.     lintProductId        int                NOT NULL    CONSTRAINT FK_tblInstHist_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  803.     dteDate                datetime,
  804.     lintUserId            int                            CONSTRAINT FK_tblInstHist_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ),
  805.     txtMemo                text,
  806.     intCount            int,
  807.     lintLicHistItemId    int                            CONSTRAINT FK_tblInstHist_lintLicHistItemId_tblLicHistInst_intLicHistItemId REFERENCES tblLicHistItem ( intLicHistItemId )
  808. );
  809.  
  810. CREATE INDEX tblInstHist_intInstHistId        ON tblInstHist ( intInstHistId ); 
  811. CREATE INDEX tblInstHist_lintComputerNodeId ON tblInstHist ( lintComputerNodeId ); 
  812. CREATE INDEX tblInstHist_lintProductId        ON tblInstHist ( lintProductId ); 
  813. CREATE INDEX tblInstHist_lintUserId            ON tblInstHist ( lintUserId ); 
  814. CREATE INDEX tblInstHist_lintLicHistItemId    ON tblInstHist ( lintLicHistItemId ); 
  815.  
  816.  
  817. CREATE TABLE tblLicTrans (
  818.     lintProductId            int            NOT NULL CONSTRAINT FK_tblLicTrans_lintProductId_tblProduct_intProductId REFERENCES tblProduct ( intProductId ),
  819.     lintComputerNodeId        int            NOT NULL CONSTRAINT FK_tblLicTrans_lintComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId ),
  820.     lintLicComputerNodeId    int            NOT NULL CONSTRAINT FK_tblLicTrans_lintLicComputerNodeId_tblNode_intNodeId REFERENCES tblNode ( intNodeId )
  821. );
  822.  
  823. CREATE INDEX tblLicTrans_lintProductId            ON tblLicTrans ( lintProductId ); 
  824. CREATE INDEX tblLicTrans_lintComputerNodeId        ON tblLicTrans ( lintComputerNodeId ); 
  825. CREATE INDEX tblLicTrans_lintLicComputerNodeId    ON tblLicTrans ( lintLicComputerNodeId ); 
  826.  
  827.  
  828.  
  829.  
  830. CREATE VIEW vProduct
  831. AS
  832.     SELECT
  833.         tblProduct.intProductId                AS intProductId,
  834.         tblProduct.txtName                    AS txtName,
  835.         tblProduct.lintLangId                AS lintLangId,
  836.         tblProduct.lintProducerCompanyId    AS lintProducerCompanyId,
  837.         tblProduct.lintProductTypeId        AS lintProductTypeId,
  838.         tblProduct.lintProductCategoryId    AS lintProductCategoryId,
  839.         tblProduct.bolUser                    AS bolUser
  840.     FROM
  841.         tblProduct
  842.         INNER JOIN
  843.             tblSetting
  844.         ON tblProduct.intSimple = tblSetting.intValue 
  845.     WHERE tblSetting.txtKey='SwSimple'
  846. ;
  847.  
  848.  
  849. CREATE VIEW vComputer
  850. AS
  851.     SELECT
  852.         tblNode.intNodeId        AS intComputerNodeId,
  853.         tblNode.lintParentId    AS lintParentId,
  854.         tblNode.lintIconId        AS lintIconId,
  855.         tblNode.intState        AS intState,
  856.         tblNode.txtName            AS txtName,
  857.         tblNode.bolHidden        AS bolHidden
  858.     FROM
  859.         tblNode 
  860.         INNER JOIN (
  861.             tblSetting
  862.             INNER JOIN (
  863.                 tblProperty INNER JOIN
  864.                     tblSetting AS tblSetting_1
  865.                 ON tblProperty.txtValue = tblSetting_1.txtValue)
  866.             ON tblSetting.intValue = tblProperty.lintKindId)
  867.         ON tblNode.intNodeId = tblProperty.lintNodeId
  868.     WHERE tblSetting_1.txtKey='ClassComputer' AND tblSetting.txtKey='ClassKind'
  869. ;
  870.  
  871.  
  872. CREATE VIEW vComputerUnit
  873. AS
  874.     SELECT
  875.         tblNode.intNodeId        AS intComputerUnitNodeId,
  876.         tblNode.lintParentId    AS lintParentId,
  877.         tblNode.lintIconId        AS lintIconId,
  878.         tblNode.intState        AS intState,
  879.         tblNode.txtName            AS txtName,
  880.         tblNode.bolHidden        AS bolHidden
  881.     FROM
  882.         tblNode
  883.         INNER JOIN (
  884.             tblSetting
  885.             INNER JOIN (
  886.                 tblProperty INNER JOIN
  887.                     tblSetting AS tblSetting_1
  888.                 ON tblProperty.txtValue = tblSetting_1.txtValue)
  889.             ON tblSetting.intValue = tblProperty.lintKindId)
  890.         ON tblNode.intNodeId = tblProperty.lintNodeId
  891.     WHERE tblSetting_1.txtKey='ClassComputerUnit' AND tblSetting.txtKey='ClassKind'
  892. ;
  893.     
  894.  
  895. CREATE VIEW vInstDetect
  896. AS
  897.     SELECT DISTINCT
  898.         tblDetect.intDetectId        AS lintDetectId,
  899.         tblNode.intNodeId            AS lintComputerNodeId,
  900.         tblDetFile.lintProductId    AS lintProductId 
  901.     FROM (
  902.         tblNode
  903.         INNER JOIN
  904.             tblDetect
  905.         ON tblNode.intNodeId = tblDetect.lintComputerNodeId)
  906.         INNER JOIN
  907.             tblDetFile
  908.         ON tblDetect.intDetectId = tblDetFile.lintDetectId
  909.     WHERE tblDetFile.lintProductId IS NOT NULL
  910. ;
  911.     
  912.  
  913. CREATE VIEW vProductComputerBase
  914. AS <% Call vProductComputerBase %>;
  915.     
  916.  
  917. CREATE VIEW vProductComputer
  918. AS
  919.     SELECT
  920.         vProductComputerBase.lintProductId            AS lintProductId,
  921.         vProductComputerBase.lintComputerNodeId        AS lintComputerNodeId,
  922.         tblLicTrans.lintLicComputerNodeId            AS lintLicComputerNodeId
  923.     FROM
  924.         vProductComputerBase
  925.         LEFT JOIN
  926.             tblLicTrans
  927.         ON vProductComputerBase.lintComputerNodeId = tblLicTrans.lintComputerNodeId AND vProductComputerBase.lintProductId = tblLicTrans.lintProductId
  928. ;
  929.  
  930.  
  931. CREATE VIEW vProductComputerDetect 
  932. AS
  933.     SELECT 
  934.         tblDetect.intDetectId        AS lintDetectId, 
  935.         tblNode.intNodeId            AS lintComputerNodeId, 
  936.         vProduct.intProductId        AS lintProductId, 
  937.         tblNode.txtName                AS txtComputer,  
  938.         vProduct.txtName            AS txtProduct, 
  939.         vProduct.lintLangId            AS lintLangId 
  940.     FROM 
  941.         tblDetect 
  942.         INNER JOIN (
  943.             vProduct 
  944.             INNER JOIN (
  945.                 tblNode 
  946.                 INNER JOIN 
  947.                     vProductComputer 
  948.                 ON tblNode.intNodeId = vProductComputer.lintComputerNodeId) 
  949.             ON vProduct.intProductId = vProductComputer.lintProductId) 
  950.         ON tblDetect.lintComputerNodeId = tblNode.intNodeId
  951. ;
  952.  
  953.  
  954. CREATE VIEW vInstDetectAdditional 
  955. AS 
  956.     SELECT 
  957.         vProductComputerDetect.lintDetectId            AS lintDetectId, 
  958.         vProductComputerDetect.lintComputerNodeId    AS lintComputerNodeId, 
  959.         vProductComputerDetect.lintProductId        AS lintProductId, 
  960.         vProductComputerDetect.txtComputer            AS txtComputer, 
  961.         vProductComputerDetect.txtProduct            AS txtProduct, 
  962.         vProductComputerDetect.lintLangId            AS lintLangId 
  963.     FROM 
  964.         vProductComputerDetect 
  965.         LEFT JOIN 
  966.             vInstDetect 
  967.         ON (vProductComputerDetect.lintDetectId = vInstDetect.lintDetectId) AND (vProductComputerDetect.lintProductId = vInstDetect.lintProductId) 
  968.     WHERE vInstDetect.lintDetectId IS NULL
  969. ;
  970.  
  971.  
  972. CREATE VIEW vInstDetectMissing 
  973. AS 
  974.     SELECT 
  975.         vInstDetect.lintDetectId            AS lintDetectId, 
  976.         vInstDetect.lintComputerNodeId        AS lintComputerNodeId, 
  977.         vProduct.intProductId                AS lintProductId, 
  978.         tblNode.txtName                        AS txtComputer, 
  979.         vProduct.txtName                    AS txtProduct, 
  980.         vProduct.lintLangId                    AS lintLangId 
  981.     FROM ((
  982.         vProduct 
  983.         INNER JOIN 
  984.             vInstDetect 
  985.         ON vProduct.intProductId = vInstDetect.lintProductId) 
  986.         LEFT JOIN 
  987.             vProductComputer 
  988.         ON (vInstDetect.lintComputerNodeId = vProductComputer.lintComputerNodeId AND vInstDetect.lintProductId = vProductComputer.lintProductId)) 
  989.         INNER JOIN 
  990.             tblNode 
  991.         ON vInstDetect.lintComputerNodeId = tblNode.intNodeId 
  992.     WHERE <% If dbt = dbtJet Then %>vProductComputer.lintComputerNodeId IS NULL
  993.           <% Else %>ISNULL(vProductComputer.lintComputerNodeId,0) <> vInstDetect.lintComputerNodeId
  994.           <% End If %>
  995. ;
  996.  
  997.  
  998. CREATE VIEW vLic1
  999. AS <% Call vLic1 %>;
  1000.  
  1001.  
  1002. CREATE VIEW vLic2
  1003. AS <% Call vLic2 %>;
  1004.  
  1005.  
  1006. CREATE VIEW vLic2Count 
  1007. AS 
  1008.     SELECT 
  1009.         vLic2.lintProductId        AS lintProductId, 
  1010.         COUNT(*)                AS intCount 
  1011.     FROM vLic2 
  1012.     GROUP BY lintProductId
  1013. ;
  1014.  
  1015.  
  1016. CREATE VIEW vInvoice 
  1017. AS 
  1018.     SELECT 
  1019.         tblInvoice.lintAtomId    AS lintAtomId, 
  1020.         tblCompany.txtName        AS txtCompany 
  1021.     FROM 
  1022.         tblCompany 
  1023.         RIGHT JOIN 
  1024.             tblInvoice 
  1025.         ON tblCompany.intCompanyId = tblInvoice.lintResellerCompanyId
  1026. ;
  1027.  
  1028. CREATE VIEW vInstHist
  1029. AS <% Call vInstHist %>;
  1030.  
  1031.  
  1032. CREATE VIEW vInstTrialCount 
  1033. AS 
  1034.     SELECT 
  1035.         tblInstTrial.lintProductId                AS lintProductId, 
  1036.         COUNT(tblInstTrial.lintComputerNodeId) AS intCount 
  1037.     FROM 
  1038.         tblInstTrial 
  1039.         INNER JOIN 
  1040.             vProductComputer 
  1041.         ON tblInstTrial.lintComputerNodeId = vProductComputer.lintComputerNodeId AND tblInstTrial.lintProductId = vProductComputer.lintProductId 
  1042.     GROUP BY tblInstTrial.lintProductId
  1043. ;
  1044.  
  1045.  
  1046. CREATE VIEW vLicHistAsset 
  1047. AS <% Call vLicHistAsset %>;
  1048.  
  1049.  
  1050. CREATE VIEW vLicHist
  1051. AS <% Call vLicHist %>;
  1052.  
  1053.  
  1054. CREATE VIEW vLicHistItem 
  1055. AS <% Call vLicHistItem %>;
  1056.  
  1057.  
  1058. CREATE VIEW vLicInst 
  1059. AS 
  1060.     SELECT 
  1061.         vProductComputer.lintProductId            AS lintProductId, 
  1062.         vProductComputer.lintComputerNodeId        AS lintComputerNodeId 
  1063.     FROM vProductComputer 
  1064.     WHERE lintLicComputerNodeId IS NULL
  1065. ;
  1066.  
  1067.  
  1068. CREATE VIEW vLicTrans 
  1069. AS 
  1070.     SELECT 
  1071.         tblLicTrans.lintProductId            AS lintProductId, 
  1072.         tblLicTrans.lintComputerNodeId        AS lintComputerNodeId, 
  1073.         tblNode.txtName                        AS txtLicComputer 
  1074.     FROM 
  1075.         tblLicTrans 
  1076.         INNER JOIN 
  1077.             tblNode 
  1078.         ON tblLicTrans.lintLicComputerNodeId = tblNode.intNodeId
  1079. ;
  1080.  
  1081.  
  1082.  
  1083. CREATE VIEW vProductAllComputers
  1084. AS <% Call vProductAllComputers %>;
  1085.  
  1086.  
  1087. CREATE VIEW vProductInstCount 
  1088. AS 
  1089.     SELECT 
  1090.         vProductComputer.lintProductId        AS lintProductId, 
  1091.         COUNT(*)                            AS intCount 
  1092.     FROM vProductComputer 
  1093.     GROUP BY lintProductId
  1094. ;
  1095.  
  1096.  
  1097. CREATE VIEW vProductInstNotebootCount 
  1098. AS 
  1099.     SELECT 
  1100.         vProductComputer.lintProductId        AS lintProductId, 
  1101.         Count(*)                            AS intCount 
  1102.     FROM 
  1103.         vProductComputer 
  1104.         LEFT JOIN 
  1105.             tblInstTrial 
  1106.         ON vProductComputer.lintComputerNodeId = tblInstTrial.lintComputerNodeId AND vProductComputer.lintProductId = tblInstTrial.lintProductId 
  1107.     WHERE vProductComputer.lintLicComputerNodeId IS NOT NULL AND tblInstTrial.lintComputerNodeId IS NULL 
  1108.     GROUP BY vProductComputer.lintProductId
  1109. ;
  1110.  
  1111.  
  1112. CREATE VIEW vProductInstOEMCount 
  1113. AS 
  1114.     SELECT 
  1115.         vProductComputer.lintProductId        AS lintProductId, 
  1116.         COUNT(*)                            AS intCount 
  1117.     FROM vProductComputer, vLic2 
  1118.     WHERE vLic2.lintProductId=vProductComputer.lintProductId AND vLic2.lintComputerNodeId= vProductComputer.lintComputerNodeId 
  1119.     GROUP BY vProductComputer.lintProductId
  1120. ;
  1121.  
  1122.  
  1123. CREATE VIEW vLicAudit 
  1124. AS <% Call vLicAudit %>;
  1125.  
  1126.  
  1127. CREATE VIEW vSWComputersBase 
  1128. AS 
  1129.     SELECT 
  1130.         PC.lintProductId            AS lintProductId, 
  1131.         N.intComputerNodeId            AS lintComputerNodeId, 
  1132.         N.txtName                    AS txtComputer, 
  1133.         NUP.txtName                    AS txtParent 
  1134.     FROM 
  1135.         vProductComputer AS PC 
  1136.         INNER JOIN (
  1137.             vComputer AS N 
  1138.             LEFT JOIN 
  1139.                 tblNode AS NUP 
  1140.             ON NUP.intNodeId=N.lintParentId) 
  1141.         ON N.intComputerNodeId=PC.lintComputerNodeId
  1142. ;
  1143.  
  1144.  
  1145. CREATE VIEW vSWComputers 
  1146. AS 
  1147.     SELECT DISTINCT 
  1148.         vSWComputersBase.lintProductId            AS lintProductId, 
  1149.         vSWComputersBase.lintComputerNodeId        AS lintComputerNodeId, 
  1150.         vSWComputersBase.txtComputer            AS txtComputer, 
  1151.         tblInstTrial.lintProductId                AS lintTrial, 
  1152.         vLicTrans.txtLicComputer                AS txtLicComputer, 
  1153.         vSWComputersBase.txtParent                AS txtParent 
  1154.     FROM 
  1155.         vLicTrans 
  1156.         RIGHT JOIN (
  1157.             tblInstTrial 
  1158.             RIGHT JOIN 
  1159.                 vSWComputersBase 
  1160.             ON tblInstTrial.lintComputerNodeId = vSWComputersBase.lintComputerNodeId AND tblInstTrial.lintProductId = vSWComputersBase.lintProductId) 
  1161.         ON vLicTrans.lintComputerNodeId = vSWComputersBase.lintComputerNodeId AND vLicTrans.lintProductId = vSWComputersBase.lintProductId
  1162. ;
  1163.     
  1164.  
  1165. CREATE VIEW vDetectUnassigned 
  1166. AS 
  1167.     SELECT 
  1168.         tblDetFile.lintDetectId        AS lintDetectId, 
  1169.         COUNT(*)                    AS UnassignedCount 
  1170.     FROM tblDetFile 
  1171.     WHERE lintProductId IS NULL 
  1172.     GROUP BY tblDetFile.lintDetectId
  1173. ;
  1174.  
  1175.  
  1176. CREATE VIEW vDetProduct 
  1177. AS 
  1178.     SELECT DISTINCT 
  1179.         lintDetectId, 
  1180.         lintProductId 
  1181.     FROM tblDetFile
  1182. ;
  1183.  
  1184.  
  1185. CREATE VIEW vDetFolderProduct 
  1186. AS 
  1187.     SELECT DISTINCT 
  1188.         lintDetectId, 
  1189.         txtFolderPath, 
  1190.         lintProductId 
  1191.     FROM tblDetFile
  1192. ;
  1193.  
  1194.  
  1195. CREATE VIEW vFilesFromPath 
  1196. AS 
  1197.     SELECT 
  1198.         intFileId, 
  1199.         tblFile.txtName                    AS txtFileName, 
  1200.         txtExt, 
  1201.         intSize, 
  1202.         tblFileStringInfo.lintFileId    AS lintFileStringInfoFileId, 
  1203.         intLanguage, 
  1204.         intCodePage, 
  1205.         txtComments, 
  1206.         txtCompanyName, 
  1207.         txtFileDescription, 
  1208.         txtFileVersion, 
  1209.         txtInternalName, 
  1210.         txtLegalCopyright, 
  1211.         txtLegalTrademarks,  
  1212.         txtOriginalFilename, 
  1213.         txtProductName, 
  1214.         txtProductVersion, 
  1215.         txtPrivateBuild, 
  1216.         txtSpecialBuild, 
  1217.         tblFileVerInfo.lintFileId        AS lintFileVerInfoFileId, 
  1218.         intFileVersionMS, 
  1219.         intFileVersionLS, 
  1220.         intProductVersionMS, 
  1221.         intProductVersionLS, 
  1222.         intFileFlagsMask, 
  1223.         intFileFlags, 
  1224.         intFileOS, 
  1225.         intFileType, 
  1226.         intFileSubtype, 
  1227.         intFileDateMS, 
  1228.         intFileDateLS, 
  1229.         intDetFileId, 
  1230.         tblDetFile.lintFileId            AS lintDetFileFileId, 
  1231.         lintDetectId, 
  1232.         txtFolderPath, 
  1233.         dteCreated, 
  1234.         dteModified, 
  1235.         dteAccessed, 
  1236.         intAttribs, 
  1237.         lintProductId, 
  1238.         intProductId, 
  1239.         vProduct.txtName                AS txtvProductName, 
  1240.         lintLangId, 
  1241.         lintProducerCompanyId, 
  1242.         lintProductTypeId, 
  1243.         lintProductCategoryId, 
  1244.         bolUser 
  1245.     FROM ((
  1246.         tblFile 
  1247.         INNER JOIN (
  1248.             vProduct 
  1249.             RIGHT JOIN 
  1250.                 tblDetFile 
  1251.             ON vProduct.intProductId = tblDetFile.lintProductId) 
  1252.         ON tblFile.intFileId = tblDetFile.lintFileId) 
  1253.         LEFT JOIN 
  1254.             tblFileStringInfo 
  1255.         ON tblFile.intFileId = tblFileStringInfo.lintFileId) 
  1256.         LEFT JOIN 
  1257.             tblFileVerInfo 
  1258.         ON tblFile.intFileId = tblFileVerInfo.lintFileId
  1259. ;
  1260.  
  1261.  
  1262. CREATE VIEW vImportFile 
  1263. AS 
  1264.     SELECT 
  1265.         tblFile.intFileId        AS lintFileId,
  1266.         FI.intFileImportId        AS lintFileImportId 
  1267.     FROM (
  1268.         tblFileImport AS FI 
  1269.         INNER JOIN 
  1270.             tblFile 
  1271.         ON (FI.intSize = tblFile.intSize) AND (FI.txtExt = tblFile.txtExt) AND (FI.txtName = tblFile.txtName)) 
  1272.         LEFT JOIN 
  1273.             tblFileVerInfo AS FVI 
  1274.         ON tblFile.intFileId = FVI.lintFileId 
  1275.     WHERE (FI.intFileVersionMS IS NULL AND FI.lintFileId IS NULL) OR (FI.intFileVersionMS=FVI.intFileVersionMS AND FI.intFileVersionLS=FVI.intFileVersionLS AND FI.intProductVersionMS=FVI.intProductVersionMS AND FI.intProductVersionLS=FVI.intProductVersionLS)
  1276. ;
  1277.  
  1278.  
  1279. CREATE VIEW vRegPathGroup 
  1280. AS 
  1281.     SELECT lintDetectId, lintRootRegKeyId, txtPath 
  1282.     FROM tblRegValue 
  1283.     GROUP BY lintDetectId, lintRootRegKeyId, txtPath
  1284. ;
  1285.  
  1286.  
  1287. CREATE VIEW vRegDisplayName 
  1288. AS 
  1289.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtDisplayName, intRegValueId 
  1290.     FROM tblRegValue 
  1291.     WHERE txtName='DisplayName'
  1292. ;
  1293.  
  1294.  
  1295. CREATE VIEW vRegDisplayVersion 
  1296. AS 
  1297.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtDisplayVersion 
  1298.     FROM tblRegValue 
  1299.     WHERE tblRegValue.txtName='DisplayVersion'
  1300. ;
  1301.  
  1302.  
  1303. CREATE VIEW vRegInstallDate 
  1304. AS 
  1305.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtInstallDate 
  1306.     FROM tblRegValue 
  1307.     WHERE tblRegValue.txtName='InstallDate'
  1308. ;
  1309.  
  1310.  
  1311. CREATE VIEW vRegLanguage 
  1312. AS 
  1313.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtLanguage 
  1314.     FROM tblRegValue 
  1315.     WHERE tblRegValue.txtName='Language'
  1316. ;
  1317.  
  1318.  
  1319. CREATE VIEW vRegProductId 
  1320. AS 
  1321.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtProductId 
  1322.     FROM tblRegValue 
  1323.     WHERE tblRegValue.txtName='ProductId'
  1324. ;
  1325.  
  1326.  
  1327. CREATE VIEW vRegPublisher 
  1328. AS 
  1329.     SELECT lintDetectId, lintRootRegKeyId, txtPath, txtValue AS txtPublisher 
  1330.     FROM tblRegValue 
  1331.     WHERE tblRegValue.txtName='Publisher'
  1332. ;
  1333.  
  1334.  
  1335. CREATE VIEW vSwInstLast 
  1336. AS <% Call vSwInstLast %>;
  1337.  
  1338.  
  1339. INSERT INTO tblIdSeq (intNextNumber) VALUES (0);
  1340. INSERT INTO tblIdSeq (intNextNumber) VALUES (0);
  1341. <%
  1342. End Sub
  1343. %>
  1344.  
  1345.  
  1346. <%
  1347. Sub UpgradeDbX_v4v5
  1348. %>
  1349. ALTER TABLE tblNode
  1350.     ADD bolHidden bit;
  1351.     
  1352.  
  1353. ALTER TABLE tblSetting
  1354.     ADD intValue int;
  1355. <%
  1356. End Sub
  1357. %>
  1358.  
  1359.  
  1360. <%
  1361. Sub UpgradeDbX_7a8
  1362. %>
  1363. DROP VIEW vProductAllComputers;
  1364. CREATE VIEW vProductAllComputers
  1365. AS <% Call vProductAllComputers %>;
  1366.  
  1367.  
  1368. DROP VIEW vProductComputerBase;
  1369. CREATE VIEW vProductComputerBase
  1370. AS <% Call vProductComputerBase %>;
  1371.  
  1372.  
  1373. <% If dbt <> dbtJet Then %>
  1374.     ALTER VIEW vLicAudit
  1375.     AS <% Call vLicAudit %>;
  1376. <% End If %>
  1377.         
  1378.  
  1379. CREATE VIEW vSwInstLast
  1380. AS SELECT * FROM tblInstHist;
  1381.  
  1382. <% 
  1383. End Sub
  1384. %>
  1385.  
  1386.  
  1387. <%
  1388. Sub UpgradeDbX_z9na10
  1389. %>
  1390.  
  1391. <% Call tblLicHistItem %>
  1392.  
  1393. ALTER TABLE tblInstHist
  1394.     ADD    lintLicHistItemId    int        CONSTRAINT FK_tblInstHist_lintLicHistItemId_tblLicHistInst_intLicHistItemId REFERENCES tblLicHistItem ( intLicHistItemId );
  1395.  
  1396. CREATE INDEX tblInstHist_lintLicHistItemId ON tblInstHist ( lintLicHistItemId ); 
  1397.  
  1398.  
  1399. ALTER TABLE tblLicHist
  1400.     ADD    dteDateExpire            datetime,
  1401.         lintUserId                int            CONSTRAINT FK_tblLicHist_lintUserId_tblUser_intUserId REFERENCES tblUser ( intUserId ),
  1402.         lintCancelLicHistId        int            CONSTRAINT FK_tblLicHist_lintCancel_tblLicHist_intLicHistId REFERENCES tblLicHist ( intLicHistId );
  1403.     
  1404.  
  1405. CREATE INDEX tblLicHist_lintUserId            ON tblLicHist ( lintUserId ); 
  1406. CREATE INDEX tblLicHist_lintCancelLicHistId    ON tblLicHist ( lintCancelLicHistId ); 
  1407.  
  1408.  
  1409. DROP VIEW vLic1;
  1410. CREATE VIEW vLic1
  1411. AS <% Call vLic1 %>;
  1412.  
  1413.  
  1414. DROP VIEW vLic2;
  1415. CREATE VIEW vLic2
  1416. AS <% Call vLic2 %>;
  1417.     
  1418.  
  1419. DROP VIEW vLicHistAsset;
  1420. CREATE VIEW vLicHistAsset 
  1421. AS <% Call vLicHistAsset %>;
  1422.  
  1423. DROP VIEW vLicHist;
  1424. CREATE VIEW vLicHist
  1425. AS <% Call vLicHist %>;
  1426.  
  1427. CREATE VIEW vLicHistItem 
  1428. AS <% Call vLicHistItem %>;
  1429.  
  1430. DROP VIEW vInstHist;
  1431. CREATE VIEW vInstHist
  1432. AS <% Call vInstHist %>;
  1433.  
  1434. DROP VIEW vSwInstLast;
  1435. CREATE VIEW vSwInstLast
  1436. AS <% Call vSwInstLast %>;
  1437.  
  1438. <%
  1439. End Sub
  1440. %>
  1441.  
  1442.  
  1443.  
  1444. <% 
  1445. Sub Init
  1446.     Dim s
  1447.     dbt=dbtMsSql
  1448.     If Not IsEmpty(con) Then
  1449.         s=LCase(con.ConnectionString)
  1450.         If InStr(s,"microsoft.jet.oledb.") > 0 Then
  1451.             dbt=dbtJet
  1452.         End If
  1453.     End If
  1454. End Sub
  1455.  
  1456.  
  1457. ' Main
  1458. Call Init
  1459. Execute "Call " & param("fnc")
  1460. %>