- Код: Выделить всё
Dim dbsDataBase As DAO.Database
Dim rstRecordSet As DAO.Recordset
Dim sTemp As String
Dim sFamil As String
sTemp = App.Path
If Not Right(sTemp, 1) = "\" Then
sTemp = sTemp + "\"
End If
Set dbsDataBase = DAO.OpenDatabase(sTemp & "Base.mdb")
Set rstRecordSet = dbsDataBase.OpenRecordset("SELECT * FROM Clients;")
rstRecordSet.MoveFirst
Do While Not rstRecordSet.EOF 'Выполнять пока есть записи
sFamil = rstRecordSet.Fields("FAM").Value
fMain.lstView.ListItems.Add , sFamil, sFamil, 2, 2
fMain.lstView.ListItems.Item(sFamil).SubItems.Item(1).Caption = rstRecordSet.Fields("Address").Value
fMain.lstView.ListItems.Item(sFamil).SubItems.Item(2).Caption = rstRecordSet.Fields("Phone").Value
rstRecordSet.MoveNext 'Перемещаемся к следующей записи
Loop
В целом все работает, но есть одно но. В таблице Phones лежит 11670 записей и их импорт в листвью занимает немного больше минуты . В то время как программа, из которой я скопипастил эту *.mdb'шку запускается за 5-6 секунд, да и сама таблица в Access грузится примерно столько же.
Собсно вопросы:
1) Что я делаю неправильно?
2) Какой самый быстрый способ передрать инфу из базы данных?
3) (чисто риторичекий, ответа не жду, хотелось бы услышать хотя бы пару аргументированных мнений) Чего лучше юзать: ADO или DAO?
4) Как приавильно (ну или хотя бы быстро) реализовать выдерание инфы из базы данных?