Publish date: 2003-01-17
ActiveX Components. Calculation of CPU time (VB)
'sample of work with 'IBPSamples.TThreadTimerNT'
'required NT-system
'1 download _ibp_sample_obj.dll from www.ibprovider.com
'2 execute: regsvr32 _ibp_sample_obj.dll
'3 add in your VB-project the reference to 'LCPI - IBProvider Samples' library
Function sample_9_3_build_time(time As IBPSamples.TThreadTime) As String
Dim s As String
s = CStr(time.Fraction)
While Len(s) < 7
s = "0" + s
Wend
sample_9_3_build_time = CStr(time.Seconds) + "." + s + " sec"
End Function 'sample_9_3_print_thread_time
Sub sample_9_3()
'large table
Const c_table_name As String = "people"
Dim cn As New ADODB.Connection
Dim thread_timer As New IBPSamples.TThreadTimerNT
cn.Provider = "LCPI.IBProvider"
cn.Open "data source=st33:e:\database\new_db57.gdb;ctype=win1251", "gamer", "vermut"
Debug.Print cn.Properties("Provider Name")
Debug.Print cn.Properties("Provider Version")
cn.BeginTrans
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'----------------------------------------
Debug.Print "Fetch each row"
rs.Open c_table_name, cn, adOpenKeyset, adLockReadOnly
Call thread_timer.Start(True)
While Not rs.EOF
rs.MoveNext
Wend
Call thread_timer.Stop
rs.Close
Debug.Print "Total Time:" & sample_9_3_build_time(thread_timer.TotalTime)
'---------------------------------------
Debug.Print "MoveLast"
rs.Open c_table_name, cn, adOpenKeyset, adLockReadOnly
Call thread_timer.Start(True)
rs.MoveLast
Call thread_timer.Stop
Debug.Print "Total Time:" & sample_9_3_build_time(thread_timer.TotalTime)
'----------------------------------------
Debug.Print "fetch each row in local buffer"
rs.MoveFirst
Call thread_timer.Start(True)
While (Not rs.EOF)
rs.MoveNext
Wend
Call thread_timer.Stop
Debug.Print "Total Time:" & sample_9_3_build_time(thread_timer.TotalTime)
End Sub 'sample_9_3
