Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.08.2008, 23:50
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию Посчитать количество записей в БД ACCESS

Собственно сабж. Есть база Access, состоит из десятка таблиц. Необходимо посчитать количество всех записей. Работаю с базой через ADO. Есть идеи?
Ответить с цитированием
  #2  
Старый 24.08.2008, 18:26
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А что, тут какие-то особые идеи нужны? Выбираешь имена пользовательских таблиц из MSysObjects, затем считаешь в них кол-во записей. Там 10 строк кода
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 24.08.2008, 18:47
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от Aristarh Dark
А что, тут какие-то особые идеи нужны? Выбираешь имена пользовательских таблиц из MSysObjects, затем считаешь в них кол-во записей. Там 10 строк кода

Aristarh, если не сложно, поделитесь знаниями...
Ответить с цитированием
  #4  
Старый 02.09.2008, 11:05
vinni vinni вне форума
Начинающий
 
Регистрация: 26.01.2006
Сообщения: 135
Репутация: 10
По умолчанию

Может быть в цикле посчитать запросом количество записей в каждой таблице, а потом их сложить?
Ответить с цитированием
  #5  
Старый 02.09.2008, 14:57
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Уже выложил здесь
Ответить с цитированием
  #6  
Старый 17.09.2008, 12:20
mik mik вне форума
Прохожий
 
Регистрация: 17.09.2008
Сообщения: 33
Репутация: 10
По умолчанию

Код:
...
  //Запрос для получения списка таблиц
  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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025