Тема: Некоторые замечания и советы по использованию TechnologiCS АПИ
Проблема Как поднять скорость выполнения скрипта при работе с большим набором данных.
Здесь небольшие примеры, показывающие как можно значительно повысить скорость работы в таких случаях
Возьмите большой набор данных (>10 тысяч строк) и выполните такой пример (пробежка по набору данных)
1.1. Простая пробежка по набору данных( пример 1 )
Sub FormMacro_Test(TCSActiveModule)
TCSActiveModule.First
Call TCSApp.ShowMessageBox( "", "Start" )
While Not TCSActiveModule.Eof
Call TCSActiveModule.Next
Wend
End Sub1.2 Простая пробежка по набору данных( пример 2, с большим ускорением )
Sub FormMacro_Test(TCSActiveModule)
TCSActiveModule.First
Call TCSApp.ShowMessageBox( "", "Start" )
Call TCSActiveModule.BeginUpdate
While Not TCSActiveModule.Eof
Call TCSActiveModule.Next
Wend
Call TCSActiveModule.EndUpdate
Call TCSApp.ShowMessageBox( "", "End" )
End Sub2.1. Чтение данных в цикле пробежки по данным
Sub FormMacro_Test(TCSActiveModule)
TCSActiveModule.First
Call TCSApp.ShowMessageBox( "", "Start" )
Call TCSActiveModule.BeginUpdate
While Not TCSActiveModule.Eof
For I = 0 To TCSActiveModule.PropertiesCount-1
If TCSActiveModule.Properties(i).IsSimpleType Then D = TCSActiveModule.Properties(i).Value
Next
Call TCSActiveModule.Next
Wend
Call TCSActiveModule.EndUpdate
Call TCSApp.ShowMessageBox( "", "End" )
End Sub2.2. Чтение данных в цикле пробежки по данным ( со значительным ускорением)
Sub FormMacro_Test(TCSActiveModule)
TCSActiveModule.First
Call TCSApp.ShowMessageBox( "", "Start" )
Call TCSActiveModule.BeginUpdate
Dim Props(100)
For I = 0 To TCSActiveModule.PropertiesCount-1
If TCSActiveModule.Properties(i).IsSimpleType Then
Set Props(I) = TCSActiveModule.Properties(i)
Else
Set Props(I) = Nothing
End If
Next
While Not TCSActiveModule.Eof
For I = 0 To TCSActiveModule.PropertiesCount-1
If Not Props(I) Is Nothing Then D = Props(I).Value
Next
Call TCSActiveModule.Next
Wend
Call TCSActiveModule.EndUpdate
Call TCSApp.ShowMessageBox( "", "End" )
End Sub