home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 32 / IOPROG_32.ISO / SOFT / SqlEval7 / MSOLAP / samples / Samples.exe / VbAdoWriteback / FrmMain.frm (.txt) next >
Encoding:
Visual Basic Form  |  1998-10-30  |  20.0 KB  |  536 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "Form1"
  4.    ClientHeight    =   8208
  5.    ClientLeft      =   48
  6.    ClientTop       =   276
  7.    ClientWidth     =   6900
  8.    LinkTopic       =   "Form1"
  9.    ScaleHeight     =   8208
  10.    ScaleWidth      =   6900
  11.    StartUpPosition =   3  'Windows Default
  12.    Begin VB.CommandButton Close 
  13.       Caption         =   "Command1"
  14.       Height          =   612
  15.       Left            =   5400
  16.       TabIndex        =   24
  17.       Top             =   840
  18.       Width           =   972
  19.    End
  20.    Begin VB.TextBox txtUpdatedQueryResults 
  21.       BeginProperty Font 
  22.          Name            =   "MS Sans Serif"
  23.          Size            =   13.8
  24.          Charset         =   0
  25.          Weight          =   400
  26.          Underline       =   0   'False
  27.          Italic          =   0   'False
  28.          Strikethrough   =   0   'False
  29.       EndProperty
  30.       Height          =   492
  31.       Left            =   3720
  32.       TabIndex        =   18
  33.       Text            =   "0.00"
  34.       Top             =   7440
  35.       Width           =   1692
  36.    End
  37.    Begin VB.CommandButton btn6_RunQueryAgain 
  38.       Caption         =   "Run Query Again"
  39.       Height          =   492
  40.       Left            =   840
  41.       TabIndex        =   17
  42.       Top             =   7440
  43.       Width           =   2652
  44.    End
  45.    Begin VB.CommandButton btn5_WriteNewCell 
  46.       Caption         =   "Write New Cell"
  47.       Height          =   492
  48.       Left            =   840
  49.       TabIndex        =   5
  50.       Top             =   6120
  51.       Width           =   2652
  52.    End
  53.    Begin VB.TextBox txtnewValue 
  54.       BeginProperty Font 
  55.          Name            =   "MS Sans Serif"
  56.          Size            =   13.8
  57.          Charset         =   0
  58.          Weight          =   400
  59.          Underline       =   0   'False
  60.          Italic          =   0   'False
  61.          Strikethrough   =   0   'False
  62.       EndProperty
  63.       Height          =   492
  64.       Left            =   3720
  65.       TabIndex        =   4
  66.       Text            =   "0.00"
  67.       Top             =   5040
  68.       Width           =   1692
  69.    End
  70.    Begin VB.TextBox txtQueryResults 
  71.       BeginProperty Font 
  72.          Name            =   "MS Sans Serif"
  73.          Size            =   13.8
  74.          Charset         =   0
  75.          Weight          =   400
  76.          Underline       =   0   'False
  77.          Italic          =   0   'False
  78.          Strikethrough   =   0   'False
  79.       EndProperty
  80.       Height          =   492
  81.       Left            =   3720
  82.       TabIndex        =   3
  83.       Text            =   "0.00"
  84.       Top             =   4320
  85.       Width           =   1692
  86.    End
  87.    Begin VB.CommandButton btn3_RunQuery 
  88.       Caption         =   "Run Query"
  89.       Height          =   492
  90.       Left            =   840
  91.       TabIndex        =   2
  92.       Top             =   4320
  93.       Width           =   2652
  94.    End
  95.    Begin VB.TextBox txtMdxString 
  96.       Height          =   1332
  97.       Left            =   840
  98.       MultiLine       =   -1  'True
  99.       ScrollBars      =   2  'Vertical
  100.       TabIndex        =   1
  101.       Top             =   2280
  102.       Width           =   5532
  103.    End
  104.    Begin VB.CommandButton btn1_Connect 
  105.       Caption         =   "Connect to Server and Database"
  106.       Height          =   492
  107.       Left            =   840
  108.       TabIndex        =   0
  109.       Top             =   960
  110.       Width           =   2652
  111.    End
  112.    Begin VB.Label lblLabel2 
  113.       Caption         =   " for"
  114.       Height          =   492
  115.       Left            =   3720
  116.       TabIndex        =   23
  117.       Top             =   6840
  118.       Width           =   1692
  119.    End
  120.    Begin VB.Label lblLabel 
  121.       Caption         =   " for"
  122.       Height          =   372
  123.       Left            =   3720
  124.       TabIndex        =   22
  125.       Top             =   3840
  126.       Width           =   1692
  127.    End
  128.    Begin VB.Label Label4 
  129.       Caption         =   "Cube Cell Write Back Example"
  130.       BeginProperty Font 
  131.          Name            =   "MS Sans Serif"
  132.          Size            =   13.8
  133.          Charset         =   0
  134.          Weight          =   700
  135.          Underline       =   0   'False
  136.          Italic          =   0   'False
  137.          Strikethrough   =   0   'False
  138.       EndProperty
  139.       Height          =   372
  140.       Left            =   960
  141.       TabIndex        =   21
  142.       Top             =   0
  143.       Width           =   4452
  144.    End
  145.    Begin VB.Label Label3 
  146.       Caption         =   "Step"
  147.       Height          =   252
  148.       Left            =   120
  149.       TabIndex        =   20
  150.       Top             =   480
  151.       Width           =   372
  152.    End
  153.    Begin VB.Line Line1 
  154.       Index           =   5
  155.       X1              =   0
  156.       X2              =   6360
  157.       Y1              =   8040
  158.       Y2              =   8040
  159.    End
  160.    Begin VB.Line Line1 
  161.       Index           =   4
  162.       X1              =   120
  163.       X2              =   6360
  164.       Y1              =   6720
  165.       Y2              =   6720
  166.    End
  167.    Begin VB.Line Line1 
  168.       Index           =   3
  169.       X1              =   120
  170.       X2              =   6360
  171.       Y1              =   5640
  172.       Y2              =   5640
  173.    End
  174.    Begin VB.Line Line1 
  175.       Index           =   2
  176.       X1              =   120
  177.       X2              =   6360
  178.       Y1              =   4920
  179.       Y2              =   4920
  180.    End
  181.    Begin VB.Line Line1 
  182.       Index           =   1
  183.       X1              =   120
  184.       X2              =   6360
  185.       Y1              =   3720
  186.       Y2              =   3720
  187.    End
  188.    Begin VB.Line Line1 
  189.       Index           =   0
  190.       X1              =   120
  191.       X2              =   6360
  192.       Y1              =   1560
  193.       Y2              =   1560
  194.    End
  195.    Begin VB.Label Label2 
  196.       Caption         =   "Step 6) Press to rexecute the query."
  197.       Height          =   372
  198.       Index           =   5
  199.       Left            =   840
  200.       TabIndex        =   19
  201.       Top             =   6840
  202.       Width           =   2652
  203.    End
  204.    Begin VB.Label Label2 
  205.       Caption         =   "Step 5) Write the new value of the cell to the cubes delta table"
  206.       Height          =   372
  207.       Index           =   4
  208.       Left            =   840
  209.       TabIndex        =   16
  210.       Top             =   5760
  211.       Width           =   2652
  212.    End
  213.    Begin VB.Label Label2 
  214.       Caption         =   "Step 4) Enter a new Value for this Query below:"
  215.       Height          =   372
  216.       Index           =   3
  217.       Left            =   840
  218.       TabIndex        =   15
  219.       Top             =   5040
  220.       Width           =   2652
  221.    End
  222.    Begin VB.Label Label2 
  223.       Caption         =   "Step 3) Press to open the cellset containing the querys results."
  224.       Height          =   372
  225.       Index           =   2
  226.       Left            =   840
  227.       TabIndex        =   14
  228.       Top             =   3840
  229.       Width           =   2652
  230.    End
  231.    Begin VB.Label Label2 
  232.       Caption         =   "Step2) Compose a query returning a SINGLE lowest level cell."
  233.       Height          =   372
  234.       Index           =   1
  235.       Left            =   840
  236.       TabIndex        =   13
  237.       Top             =   1800
  238.       Width           =   2652
  239.    End
  240.    Begin VB.Label Label2 
  241.       Caption         =   "Step 1) Press to connect to the server and Database."
  242.       Height          =   372
  243.       Index           =   0
  244.       Left            =   840
  245.       TabIndex        =   12
  246.       Top             =   480
  247.       Width           =   2652
  248.    End
  249.    Begin VB.Label label1 
  250.       Caption         =   "6"
  251.       BeginProperty Font 
  252.          Name            =   "MS Sans Serif"
  253.          Size            =   13.8
  254.          Charset         =   0
  255.          Weight          =   700
  256.          Underline       =   0   'False
  257.          Italic          =   0   'False
  258.          Strikethrough   =   0   'False
  259.       EndProperty
  260.       Height          =   492
  261.       Index           =   5
  262.       Left            =   120
  263.       TabIndex        =   11
  264.       Top             =   7560
  265.       Width           =   252
  266.    End
  267.    Begin VB.Label label1 
  268.       Caption         =   "5"
  269.       BeginProperty Font 
  270.          Name            =   "MS Sans Serif"
  271.          Size            =   13.8
  272.          Charset         =   0
  273.          Weight          =   700
  274.          Underline       =   0   'False
  275.          Italic          =   0   'False
  276.          Strikethrough   =   0   'False
  277.       EndProperty
  278.       Height          =   492
  279.       Index           =   4
  280.       Left            =   240
  281.       TabIndex        =   10
  282.       Top             =   6240
  283.       Width           =   252
  284.    End
  285.    Begin VB.Label label1 
  286.       Caption         =   "4"
  287.       BeginProperty Font 
  288.          Name            =   "MS Sans Serif"
  289.          Size            =   13.8
  290.          Charset         =   0
  291.          Weight          =   700
  292.          Underline       =   0   'False
  293.          Italic          =   0   'False
  294.          Strikethrough   =   0   'False
  295.       EndProperty
  296.       Height          =   492
  297.       Index           =   3
  298.       Left            =   240
  299.       TabIndex        =   9
  300.       Top             =   5040
  301.       Width           =   252
  302.    End
  303.    Begin VB.Label label1 
  304.       Caption         =   "3"
  305.       BeginProperty Font 
  306.          Name            =   "MS Sans Serif"
  307.          Size            =   13.8
  308.          Charset         =   0
  309.          Weight          =   700
  310.          Underline       =   0   'False
  311.          Italic          =   0   'False
  312.          Strikethrough   =   0   'False
  313.       EndProperty
  314.       Height          =   492
  315.       Index           =   2
  316.       Left            =   240
  317.       TabIndex        =   8
  318.       Top             =   3960
  319.       Width           =   252
  320.    End
  321.    Begin VB.Label label1 
  322.       Caption         =   "2"
  323.       BeginProperty Font 
  324.          Name            =   "MS Sans Serif"
  325.          Size            =   13.8
  326.          Charset         =   0
  327.          Weight          =   700
  328.          Underline       =   0   'False
  329.          Italic          =   0   'False
  330.          Strikethrough   =   0   'False
  331.       EndProperty
  332.       Height          =   492
  333.       Index           =   1
  334.       Left            =   240
  335.       TabIndex        =   7
  336.       Top             =   2280
  337.       Width           =   252
  338.    End
  339.    Begin VB.Label label1 
  340.       Caption         =   "1"
  341.       BeginProperty Font 
  342.          Name            =   "MS Sans Serif"
  343.          Size            =   13.8
  344.          Charset         =   0
  345.          Weight          =   700
  346.          Underline       =   0   'False
  347.          Italic          =   0   'False
  348.          Strikethrough   =   0   'False
  349.       EndProperty
  350.       Height          =   492
  351.       Index           =   0
  352.       Left            =   240
  353.       TabIndex        =   6
  354.       Top             =   960
  355.       Width           =   252
  356.    End
  357. Attribute VB_Name = "Form1"
  358. Attribute VB_GlobalNameSpace = False
  359. Attribute VB_Creatable = False
  360. Attribute VB_PredeclaredId = True
  361. Attribute VB_Exposed = False
  362. '------------------------------------------------------------------------------
  363. '| SimpleWriteBack Example in ADO.
  364. '|   This example shows the user how to write back a value into a cellset in a cube.
  365. '|   The basic algorith for doing this is:
  366. '|       1)Connect to a Server, Provider and Database
  367. '|       2)Issue a query against a cube in the database
  368. '|       3)Examine the contents of one of the cells returned by the query
  369. '|       4)Change the value of that Cell
  370. '|       5)Issue the transaction against the connection
  371. '|       6)Close the connection.
  372. '| It demonstrates the use of the following objects and their methods:
  373. '|   Connection Object                     CellSet Object
  374. '|      Methods:                              Methods:
  375. '|          Open                                    Open
  376. '|          BeginTrans                              Close
  377. '|          CommitTrans                       Properties:
  378. '|          RollbackTrans                           Positions
  379. '|          Close                                   Value
  380. '|      Properties:
  381. '|          Mode
  382. '|          DefaultDatabase
  383. '|          IsolationLevel
  384. '-------------------------------------------------------------------------------
  385. 'Global Declarations
  386. Dim oc_Connection As New ADODB.Connection   'Declare and allocate a connection object
  387. Dim ocs_CellSet As ADOMD.Cellset            'Declare a cellset object
  388. Dim s_ServerName As String                  'server name
  389. Dim s_Provider  As String                   'provider name
  390. Dim s_CatalogName As String                 'Catalog(i.e. Database) name
  391. Dim s_MdxString As String                   'Mdx Query String
  392. Dim iAxis As Integer                        'current axis
  393. Dim iRow As Integer                         'current row
  394. Dim ICol As Integer                         'current column
  395. '-------------------------------------------------------------------------------
  396. '| btn1_Connect_Click()
  397. '| Connection to the database using the connection object by:
  398. '|   1) Using the connection object to set its mode to read and write,
  399. '|   2) Assigning it a Server and Provider,
  400. '|   3) Assigning it a Database to work from
  401. '|   4) And finally setting the transaction level.
  402. '-------------------------------------------------------------------------------
  403. Private Sub btn1_Connect_Click()
  404.     On Error Resume Next
  405.     'Set the mouse pointer to hourglass because this routine may take some time.
  406.     Screen.MousePointer = vbHourglass
  407.     With oc_Connection
  408.         .Mode = adModeReadWrite
  409.         .Open "Data Source =" & s_ServerName & "; Provider=" & s_Provider & ";"
  410.         .DefaultDatabase = s_CatalogName
  411.         .IsolationLevel = adXactReadCommitted
  412.     End With
  413.     'Display the MDX String which is set in Form_Load()
  414.     txtMdxString.Text = s_MdxString
  415.     txtMdxString.SetFocus
  416.     'Set the Screen pointer back to normal.
  417.     Screen.MousePointer = vbDefault
  418. End Sub
  419. '--------------------------------------------------------------------------------
  420. '| btn3_RunQuery_Click()
  421. '| Runs a query by opening the cellset with an mdx query string and a connection object
  422. '|      1) Allocates a CellSet object.
  423. '|      2) Assigns the Cellset object the results from a query against the connection object.
  424. '|      3) Displays the results to the user and gives a helpful label.
  425. '--------------------------------------------------------------------------------
  426. Private Sub btn3_RunQuery_Click()
  427.     Screen.MousePointer = vbHourglass
  428.     Set ocs_CellSet = New ADOMD.Cellset
  429.     ocs_CellSet.Open txtMdxString.Text, oc_Connection
  430.     txtQueryResults.Text = Str(ocs_CellSet(0, 0).Value)
  431.     lblLabel.Caption = ocs_CellSet(iRow, ICol).Positions(0).Members(0).Caption & " for " & _
  432.                        ocs_CellSet(iRow, ICol).Positions(1).Members(0).Caption
  433.     Screen.MousePointer = vbDefault
  434.     txtnewValue.SetFocus
  435. End Sub
  436. '--------------------------------------------------------------------------------
  437. '| btn5_WriteNewCell_Click()
  438. '| Begins a transaction, executes it, and then confirms it or rolls it back.
  439. '|      1) Inform the connection object that a transaction is about to occur
  440. '|      2) Find out what the depth of the cell that will be written is..
  441. '|      3) If the cell is at the lowest depth, then set its value to something new OR
  442. '|         Tell the user that writing to the cell is not allowed because it is not
  443. '|         At the lowest level.
  444. '|      4) Ask the user if they want to commit this transaction. If they do, then call
  445. '|         the CommitTrans method, otherwise roll the transaction back by calling the
  446. '|         RollBackTrans method.
  447. '|      5) Close the Connection and Cellset objects.
  448. '--------------------------------------------------------------------------------
  449. Private Sub btn5_WriteNewCell_Click()
  450. Dim nRowDepth As Integer                    'the depth of our Row
  451. Dim nColDepth As Integer                    'the depth of our Column
  452.     Screen.MousePointer = vbHourglass
  453.     'Inform the connection object that a transaction is about to occur
  454.     oc_Connection.BeginTrans
  455.     'Find out what the depth of the cell that will be written is..
  456.     nRowDepth = ocs_CellSet.Axes(0).Positions(iRow).Members(0).LevelDepth
  457.     nColDepth = ocs_CellSet.Axes(1).Positions(ICol).Members(0).LevelDepth
  458.     'If the cell is at the lowest depth, then set its value to something new OR
  459.     'Tell the user that writing to the cell is not allowed because it is not
  460.     'At the lowest level.
  461.     On Error Resume Next
  462.     ocs_CellSet(0, 0).Value = Val(txtnewValue.Text) ' Some new Value.
  463.     If Err.Number Then
  464.         MsgBox Err.Number & " -" & Err.Description
  465.     End If
  466.     Screen.MousePointer = vbDefault
  467.     'Ask the user if they want to commit this transaction. If they do, then call
  468.     'the CommitTrans method, otherwise roll the transaction back by calling the
  469.     'RollBackTrans method.
  470.     If MsgBox("Commit this transaction?", vbYesNo) = vbYes Then
  471.         Screen.MousePointer = vbHourglass
  472.         oc_Connection.CommitTrans
  473.     Else
  474.         Screen.MousePointer = vbHourglass
  475.         oc_Connection.RollbackTrans
  476.     End If
  477.     'Close the Connection and Cellset objects.
  478.     On Error Resume Next
  479.     ocs_CellSet.Close
  480.     oc_Connection.Close
  481.     'Deallocate the Connection and Cellset objects. freeing them up completely.
  482.     Set ocs_CellSet = Nothing
  483.     Set ocs_Connection = Nothing
  484.     Screen.MousePointer = Default
  485. End Sub
  486. '-------------------------------------------------------------------------------
  487. '| btn6_RunQueryAgain_Click()
  488. '| Rerun the query again to show the results of the transaction
  489. '|------------------------------------------------------------------------------
  490. Private Sub btn6_RunQueryAgain_Click()
  491.     Screen.MousePointer = vbHourglass
  492.     'Open the connection with read privs only.
  493.     With oc_Connection
  494.         .Mode = adModeRead
  495.         .Open "Data Source =" & s_ServerName & "; Provider=" & s_Provider & ";"
  496.         .DefaultDatabase = s_CatalogName
  497.         .IsolationLevel = adXactReadCommitted
  498.     End With
  499.     'Allocate a new cellset and assign it the results returned by the query.
  500.     'Then give the user an informative label and display the selected Sel.
  501.     Set ocs_CellSet = New ADOMD.Cellset
  502.     ocs_CellSet.Open s_MdxString, oc_Connection
  503.     lblLabel2.Caption = ocs_CellSet(iRow, ICol).Positions(0).Members(0).Caption & " for " & _
  504.                        ocs_CellSet(iRow, ICol).Positions(1).Members(0).Caption
  505.     txtUpdatedQueryResults.Text = ocs_CellSet(iRow, ICol).Value
  506.     'Close the Cellset and the Connection.
  507.     On Error Resume Next
  508.     ocs_CellSet.Close
  509.     oc_Connection.Close
  510.     'Deallocate the objects to free them up completely
  511.     Set ocs_CellSet = Nothing
  512.     Set ocs_Connection = Nothing
  513.     Screen.MousePointer = vbDefault
  514. End Sub
  515. Private Sub Close_Click()
  516.     On Error Resume Next
  517.     ocs_CellSet.Close
  518.     oc_Connection.Close
  519.     'Deallocate the objects to free them up completely
  520.     Set ocs_CellSet = Nothing
  521.     Set ocs_Connection = Nothing
  522. End Sub
  523. '-------------------------------------------------------------------------------
  524. '| Initialize the variables and set them to appropriate values.
  525. '-------------------------------------------------------------------------------
  526. Private Sub Form_Load()
  527.     'Initialize the strings
  528.     s_ServerName = "LocalHost"             'This evaluates to the local machine
  529.     s_Provider = "msolap"                   'This is the olap providers name
  530.     s_CatalogName = "FoodMart"                  'This is the name of the Catalog
  531.     s_MdxString = "select {[Measures].Members} on columns, NON EMPTY{[Customer].[Customer Name].Members} on rows From Small Where ([Product].[Akron City Map])"
  532.     'in this example Choose the (0,0) cell in each cell set by...
  533.     iRow = 0    'Refering the the first element in the row
  534.     ICol = 0    'and to the first element in the column.
  535. End Sub
  536.