в ВБ 6 я попоробовал создать структуру с необходимыми типами полеи как в базе данных
и заполняю массив таких структур с помощю рекордсет
Но длится это необычаино долго. Напр 300 000 записеи вынимаются до 20 минут в завсти от загрузки СКЛ-Сервера (2000)
Вопрос:
кто может что посоветовать для ускорения выборки данных
Код прилагается
Спасибо
- Код: Выделить всё
'вот структура, определена в отдельном модуле
Public Type KnrPlz
Knr As Long
PLZ As String
End Type
'а это текст доступа к бд
Dim KnrPlzCount, index As Long ' indexes
Dim sSQL As String
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
con.CommandTimeout = 40
con.ConnectionString = sADODSN
con.Mode = adModeReadWrite
con.Open
' это запрос
sSQL = " SELECT * FROM ... "
'отрываем рекордсет и пробегаем его доконца
rst.Open sSQL, con, adOpenStatic, adLockOptimistic
узнаем число записеи в РекордСете
KnrPlzCount = rst.RecordCount
создаем экземпляр нашеи структуры, точнее массив такого типа
Dim KPE() As KnrPlz
переопределяем размер, чтоб поместить все записи
ReDim KPE(KnrPlzCount)
'рекордсет пробегаем доконца
If rst.EOF Then
Else
While Not rst.EOF
'достаем значения полеи в записи и присваиваем их елементам структуры
KPE(index).PLZ = CStr(rst!PLZ)
KPE(index).Knr = CLng(rst!Nr)
index = index + 1
rst.MoveNext
Wend
End If
rst.Close
con.Close
Set con = Nothing