![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск в большой базе [D7, Access]
sherminator © (2004-02-11 13:17:00)
есть база аксесовская... в ней штук 20 таблиц... каждая содержит по нескольку десятков тысяч записей... каким образом ускорить поиск по этим таблицам??? использую следующий код:
Table1.TableName:="FLDOLGN";
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
if Table1.FieldByName("IDUL").AsString = idul
then Label11.Caption := Table1.FieldByName("DOLGN").AsString;
Table1.Next;
end;
Table1.Close;
далее меняю значение TableName и продолжаю обработку следующей таблицы... проблема в том, что иногда выскакивает ошибка о нехватке памяти... да и если честно запрос с выводом порядка 12-15 значений собранных из разных таблиц занимает длительное время...(((( может как-то можно иначе всё сделать???
sherminator (2004-02-11 13:31:00) [21]
2VLAD-MAL где что лежит я знаю... проблема в том, что данные в одной таблице содержат ключи для того, чтобы найти данные, которые содержатся в другой таблице... вот и приходится лопатить по нескольку таблиц... построение базы согласен что шальное, но выбирать не приходится... что дают с тем и работаю...
sherminator (2004-02-11 13:25:00) [22]
2Sandman25 можно поподробнее остановиться на структуре "select dolgn from fldolgn where idul = :idul"???????
2Anatoly Podgoretsky сенкс... на самом деле не продумал...
VLAD-MAL (2004-02-11 13:23:00) [23]
Ты, наверное, что-то там свое (объект) много раз создаешь, и не убиваешь потом.
Вообще, по-моему, с логикой построения базы какие-то траблы...
Чумовая операция какая-то... У тебя что, не известно, в каких таблицах какие поля? Создай тогда спец. таблицу - репозиторий, в которой список всех полей + где они лежат...
Таблица Repository:
Id Field_Name Table_Name
-------------------------
1 Id Repository
2 Field_Name Repository
3 Table_Name Repository
4 FLDOLGN Super_Puper_Table
...
Вообще, зачем тебе это понадобилось?
Anatoly Podgoretsky (2004-02-11 13:20:00) [24]
Конечно, если после нахождения перкращать цикл.
Johnmen (2004-02-11 13:19:00) [25]
А в чем заключается обработка ?
Sandman25 (2004-02-11 13:19:00) [26]
select dolgn from fldolgn where idul = :idul