Язык: VB 6 SP 3
База: MS Access 97
Таблиц в базе: 1 (одна)
Заголовки столбцов: | Counter | Singer | Song | Text | Music | Filename |
Для доступа к БД используется компонент Data.
Программа на входе получает список имён аудиофайлов в текстовом файле, на выходе выдаёт в TextBox информацию Исполнитель песни, Название песни, Автор текста, Автор музыки.
Реализовал выборку из базы так:
- Код: Выделить всё
' Имена аудиофайлов предварительно загружаются в массив arrFN с помощью Split.
For i = 0 to Ubound(arrFN)
strFN = arrFN(i)
Data1.RecordSource = "SELECT * FROM Songs WHERE Filename = '" & strFN & "'"
Data1.Refresh
strData = strData & Data1.Recordset.Fields("Singer ") & vbTab _
& Data1.Recordset.Fields("Song") & vbTab _
& Data1.Recordset.Fields("Text") & vbTab _
& Data1.Recordset.Fields("Music ") & vbCrLf
Next
Но это решение тот ещё маразм, в случае обработки текстового файла с количеством строк под пять сотен слабенький комп, на котором идёт обработка, "задумывается" минут на 7. Это при условии того, что в базе всего 800 записей, а что будет когда в базе будет под пять тысяч записей я и представлять не хочу, страшно.
Возникает вопрос, а как вообще можно оптимизировать выборку? К примеру в SELECT указывать не одно имя файла, а сразу 100, или как-то ещё?
---
Прошу извинить за тупой вопрос, я настолько давно не брал в руки шашек, что почти нифига не помню.
Спасибо.