![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Собственно сабж. Есть база Access, состоит из десятка таблиц. Необходимо посчитать количество всех записей. Работаю с базой через ADO. Есть идеи?
|
|
#2
|
||||
|
||||
|
А что, тут какие-то особые идеи нужны? Выбираешь имена пользовательских таблиц из MSysObjects, затем считаешь в них кол-во записей. Там 10 строк кода
![]() |
|
#3
|
||||
|
||||
|
Цитата:
Aristarh, если не сложно, поделитесь знаниями... |
|
#4
|
|||
|
|||
|
Может быть в цикле посчитать запросом количество записей в каждой таблице, а потом их сложить?
![]() |
|
#6
|
|||
|
|||
|
Код:
...
//Запрос для получения списка таблиц
SQL := 'SELECT Name FROM MSysObjects ' +
'WHERE ParentId=(SELECT ID FROM MSysObjects ' +
'WHERE NAME='Tables') AND Flags In (0,8)';
ListTables.CommandText := SQL;
ListTables.Open;
//Перебираем список таблиц и в каждой из них считаем записи
while not ListTables.Eof do
begin
SQL := 'SELECT Count(*) FROM ' + ListTables.Fields[0].AsString;
ADODataSet.CommandText := SQL;
ADODataSet.Open;
CountAllRec := CountAllRec + ADODataSet.Fileds[0].AsInteger;
ADODataSet.Close;
ListTables.Next;
end;
...ЗЫ. Не забывайте про обработку исключений. Последний раз редактировалось mik, 22.09.2008 в 13:32. |