- Код: Выделить всё
- 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) Как приавильно (ну или хотя бы быстро) реализовать выдерание инфы из базы данных?




 Раз спрашиваю, значит мне есть необходиммость это сделать.
 Раз спрашиваю, значит мне есть необходиммость это сделать.

