VBBANK.FRM

VERSION 5.00 
Begin VB.Form Form1
AutoRedraw = -1 'True
BorderStyle = 1 'Fixed Single
Caption = "Sample Bank - Visual Basic"
ClientHeight = 4320
ClientLeft = 5040
ClientTop = 5325
ClientWidth = 8205
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
PaletteMode = 1 'UseZOrder
ScaleHeight = 4320
ScaleWidth = 8205
Begin VB.Frame Frame7
Caption = "Language"
Height = 735
Left = 5760
TabIndex = 32
Top = 2280
Width = 2415
Begin VB.OptionButton VB
Caption = "VB"
Height = 255
Left = 600
TabIndex = 35
Top = 360
Width = 255
End
Begin VB.OptionButton VC
Caption = "Option2"
Height = 255
Left = 1320
TabIndex = 34
Top = 360
Width = 255
End
Begin VB.OptionButton VJ
Caption = "Option3"
Height = 375
Left = 2040
TabIndex = 33
Top = 240
Width = 255
End
Begin VB.Label Label12
Alignment = 2 'Center
Caption = "Visual Basic"
Height = 375
Left = 120
TabIndex = 38
Top = 240
Width = 495
End
Begin VB.Label Label11
Alignment = 2 'Center
Caption = "Visual C++"
Height = 375
Left = 840
TabIndex = 37
Top = 240
Width = 495
End
Begin VB.Label Label10
Alignment = 2 'Center
Caption = "Visual J++"
Height = 375
Left = 1560
TabIndex = 36
Top = 240
Width = 495
End
End
Begin VB.Frame Frame6
Caption = "Component"
Height = 975
Left = 5760
TabIndex = 27
Top = 1320
Width = 2415
Begin VB.OptionButton StatefulMoveMoney
Caption = "Option2"
Height = 255
Left = 2040
TabIndex = 40
Top = 600
Width = 255
End
Begin VB.OptionButton MoveMoney
Caption = "Option2"
Height = 255
Left = 2040
TabIndex = 31
Top = 240
Width = 255
End
Begin VB.OptionButton Account
Caption = "VB"
Height = 255
Left = 840
TabIndex = 29
Top = 240
Width = 255
End
Begin VB.Label Label6
Alignment = 2 'Center
Caption = "Stateful MoveMoney"
Height = 255
Index = 1
Left = 480
TabIndex = 39
Top = 600
Width = 1575
End
Begin VB.Label Label6
Alignment = 2 'Center
Caption = "MoveMoney"
Height = 255
Index = 0
Left = 1080
TabIndex = 30
Top = 240
Width = 975
End
Begin VB.Label Label5
Alignment = 2 'Center
Caption = "Account"
Height = 255
Left = 120
TabIndex = 28
Top = 240
Width = 735
End
End
Begin VB.Frame Frame5
Caption = "Response (sec)"
Height = 975
Left = 0
TabIndex = 17
Top = 2040
Width = 5655
Begin VB.TextBox AvgResp
Enabled = 0 'False
Height = 285
Left = 4680
TabIndex = 22
Top = 360
Width = 615
End
Begin VB.TextBox MaxResp
Enabled = 0 'False
Height = 285
Left = 2880
TabIndex = 20
Top = 360
Width = 615
End
Begin VB.TextBox MinResp
Enabled = 0 'False
Height = 285
Left = 960
TabIndex = 18
Top = 360
Width = 615
End
Begin VB.Label AvgRespCap
Caption = "Average"
Height = 255
Left = 3840
TabIndex = 23
Top = 360
Width = 735
End
Begin VB.Label Label4
Caption = "Maximum"
Height = 255
Left = 2160
TabIndex = 21
Top = 360
Width = 735
End
Begin VB.Label Label7
Caption = "Minimum"
Height = 255
Left = 240
TabIndex = 19
Top = 360
Width = 735
End
End
Begin VB.Frame Frame3
Caption = "Result"
Height = 1095
Left = 0
TabIndex = 15
Top = 3120
Width = 8175
Begin VB.TextBox Result
Height = 735
Left = 120
MultiLine = -1 'True
TabIndex = 16
Top = 240
Width = 7935
End
End
Begin VB.Frame Frame2
Caption = "Iterations"
Height = 615
Left = 2760
TabIndex = 12
Top = 1320
Width = 2895
Begin VB.CheckBox Step
Caption = "Check1"
Height = 255
Left = 2520
TabIndex = 41
Top = 240
Width = 255
End
Begin VB.TextBox nCurTrans
Enabled = 0 'False
Height = 285
Left = 240
TabIndex = 26
Text = "11111"
Top = 240
Width = 615
End
Begin VB.TextBox nTrans
Height = 285
Left = 1200
TabIndex = 7
Top = 240
Width = 615
End
Begin VB.Label Label13
Caption = "&Step"
Height = 255
Left = 2040
TabIndex = 43
Top = 240
Width = 375
End
Begin VB.Label Label9
Caption = "Label9"
Height = 15
Left = 2040
TabIndex = 42
Top = 360
Width = 15
End
Begin VB.Label Label8
Caption = "&of"
Height = 255
Left = 960
TabIndex = 13
Top = 240
Width = 135
End
End
Begin VB.CommandButton Close
Cancel = -1 'True
Caption = "&Close"
Height = 375
Left = 5760
TabIndex = 9
Top = 720
Width = 2415
End
Begin VB.CommandButton Command1
Caption = "&Submit"
Default = -1 'True
Height = 375
Index = 0
Left = 5760
TabIndex = 8
Top = 240
Width = 2415
End
Begin VB.Frame Frame4
Caption = "Transaction Type"
Height = 615
Left = 0
TabIndex = 3
Top = 1320
Width = 2655
Begin VB.OptionButton Transfer
Caption = "Trans&fer"
Height = 315
Left = 1680
TabIndex = 6
Top = 240
Width = 915
End
Begin VB.OptionButton Credit
Caption = "&Credit"
Height = 315
Left = 240
TabIndex = 4
Top = 240
Value = -1 'True
Width = 735
End
Begin VB.OptionButton Debit
Caption = "&Debit"
Height = 315
Left = 960
TabIndex = 5
Top = 240
Width = 735
End
End
Begin VB.Frame Frame1
Caption = "Your Account Information"
Height = 1095
Left = 0
TabIndex = 0
Top = 120
Width = 5655
Begin VB.TextBox PrimeAcct
Height = 285
Left = 1860
TabIndex = 1
Top = 360
Width = 1215
End
Begin VB.TextBox SecondAcct
Enabled = 0 'False
Height = 285
Left = 1860
TabIndex = 14
Top = 720
Width = 1215
End
Begin VB.TextBox Amount
Height = 285
Left = 4200
TabIndex = 2
Top = 360
Width = 1215
End
Begin VB.Label promptSecondAcct
Alignment = 1 'Right Justify
Caption = "&Transfer to Account "
Enabled = 0 'False
Height = 315
Left = 240
TabIndex = 25
Top = 720
Width = 1515
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Caption = "&Account Number"
Height = 315
Left = 240
TabIndex = 24
Top = 360
Width = 1515
End
Begin VB.Label Label3
Caption = "Label3"
Height = 15
Left = 300
TabIndex = 11
Top = 2100
Width = 615
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "A&mount"
Height = 315
Left = 3240
TabIndex = 10
Top = 360
Width = 915
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Filename: Bank.vbp
'
' Description: Sample bank client
'
' This file is provided as part of the Microsoft Transaction Server Samples
'
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT
' WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
' INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
' OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
' PURPOSE.
'
' Copyright (C) 1997 Microsoft Corporation, All rights reserved

Option Explicit
Private Const APP_ERROR = -2147467008

' Timer Variables
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private StartTime As Long
Private Elapsed As Long
Private AvgResponseTime As Long
Private minRespTime As Long
Private maxRespTime As Long
Private lRet As Long
Private Res As Variant

Private Sub Account_Click()
VC.Enabled = True
VJ.Enabled = True
Transfer.Enabled = False
End Sub

Private Sub Close_Click()
End
End Sub

Private Sub Command1_Click(Index As Integer)
Dim lSecondAcct As Long
Dim TranType As String

Screen.MousePointer = 11
On Error GoTo ErrorHandler

' Decide which component to use
Dim ProgID As String
If Account = True Then
ProgID = "Bank.Account"
Else
ProgID = "Bank.MoveMoney"
End If

' Decide which language to use
If VC = True Then
ProgID = ProgID + ".VC"
ElseIf VJ = True Then
ProgID = ProgID + ".VJ"
End If

' Decide transaction type
Result = ""
lSecondAcct = 0
Dim Mult As Long
If Debit = True Then
TranType = 1
Mult = -1
ElseIf Credit = True Then
TranType = 2
Mult = 1
Else
If ProgID = "Bank.Account" Then
MsgBox "Error. Use MoveMoney component to transfer."
MoveMoney.SetFocus
Screen.MousePointer = 0
Exit Sub
End If
If SecondAcct = "" Then
MsgBox "Error. Transfer to Account must be filled in."
SecondAcct.SetFocus
Screen.MousePointer = 0
Exit Sub
Else
TranType = 3
lSecondAcct = CLng(SecondAcct)
End If
End If

' Create the appropriate MoveMoney object
On Error GoTo objError
Dim obj As Object
Set obj = CreateObject(ProgID)
On Error GoTo ErrorHandler

If obj Is Nothing Then
Screen.MousePointer = 0
MsgBox "Create object " + ProgID + "failed."
Exit Sub
End If

InitTimer

' Call the object
Dim i As Long
For i = 1 To nTrans
StartTimer
Res = ""
If Account = True Then
Res = obj.Post(CLng(PrimeAcct), CLng(Amount * Mult))
ElseIf MoveMoney = True Then
Res = obj.Perform(CLng(PrimeAcct), lSecondAcct, CLng(Amount), TranType)
Else
obj.PrimeAccount = PrimeAcct
obj.SecondAccount = lSecondAcct
Res = obj.StatefulPerform(CLng(Amount), TranType)
End If
EndTimer
nCurTrans = i
Result = Res
If lRet <> 0 Then
Exit For
End If
If Step = 1 And i <> nTrans Then
MsgBox "Step mode, OK to continue"
End If
Next i

FinishTimer

Set obj = Nothing

Result = Res
Screen.MousePointer = 0
Exit Sub

objError:
MsgBox "Error " & Err.Number & ": Make sure the Sample Bank package has been correctly installed in MTS."
Screen.MousePointer = 0
Err.Clear
Exit Sub

ErrorHandler:
Screen.MousePointer = 0
MsgBox Err.Number & "(" & Err.Source & ") :" & Err.Description
Err.Clear

End Sub

Private Sub Credit_Click()
SecondAcct.Enabled = False
promptSecondAcct.Enabled = False
SecondAcct = ""
Account.Enabled = True
End Sub
Private Sub Debit_Click()
SecondAcct.Enabled = False
promptSecondAcct.Enabled = False
SecondAcct = ""
Account.Enabled = True
End Sub
Private Sub Form_Load()
PrimeAcct = 1
SecondAcct = ""
Amount = 1
Result = ""
Debit = 0
Credit = 1
Transfer = 0
MoveMoney = 1
VB = 1
nCurTrans = 0
nTrans = 1
Step = 0
MinResp = 0
MaxResp = 0
AvgResp = 0
End Sub

Private Sub MoveMoney_Click()
VC.Enabled = True
VJ.Enabled = True
Transfer.Enabled = True
End Sub

Private Sub transfer_Click()
SecondAcct.Enabled = True
promptSecondAcct.Enabled = True
Account.Enabled = False
End Sub

Public Sub StartTimer()
StartTime = GetTickCount()
End Sub

Public Sub EndTimer()
Elapsed = GetTickCount - StartTime
If Elapsed < minRespTime Then minRespTime = Elapsed
If Elapsed > maxRespTime Then maxRespTime = Elapsed
AvgResponseTime = AvgResponseTime + Elapsed
End Sub

Public Sub FinishTimer()
AvgResponseTime = AvgResponseTime / nTrans
AvgResp = Format(AvgResponseTime / 1000, "#0.###")
MinResp = Format(minRespTime / 1000, "#0.###")
MaxResp = Format(maxRespTime / 1000, "#0.###")
Form1.Refresh
End Sub
Public Sub InitTimer()
minRespTime = 99999999
maxRespTime = 0
AvgResponseTime = 0
End Sub

Private Sub VC_Click()
StatefulMoveMoney.Enabled = False
End Sub

Private Sub VJ_Click()
StatefulMoveMoney.Enabled = False
End Sub

Private Sub VB_Click()
StatefulMoveMoney.Enabled = True
End Sub
Private Sub StatefulMoveMoney_Click()
VC.Enabled = False
VJ.Enabled = False
Transfer.Enabled = True
End Sub