Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2009, 08:38   #1
nowmax
 
Регистрация: 25.11.2008
Сообщений: 6
Вопрос Подсчет строк в БД

Доброе утро всем
в принципе тема схожа с
http://www.programmersforum.ru/showthread.php?t=42791


так вот... имеется несколько вопросов...
пытался сделать подсчет записей в таблице с помощью счетчика... не получилось из-за описанной выше по ссылке проблеме... Ладно... отказался сразу от этого...
PS база данных MS Access


но возникли другие вопросы:
1) каким образом можно произвести подсчет записей в таблице???
далее после подсчета записей я генерирую массив n=<записей в таблице
n- массив из уникальных (несовпадающих) чисел
далее след вопрос:
2) могу ли я перемещаться по записям не последовательно... т.е. именно по записям которые сгенерированы в массиве...
например массив [1,4,6,45]
при нажатии на кнопку "далее" программа переходит на 1, потом 4, потом 6, потом 45 запись
заранее спасибо за ответы

Последний раз редактировалось nowmax; 29.03.2009 в 09:48.
nowmax вне форума Ответить с цитированием
Старый 29.03.2009, 11:42   #2
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

nowmax, а Help и Google совсем бессильны оказались перед Вашими запросами?

а) свойство RecordCount или select count(*) from ...
б) метод Locate
Антон Ю.Б. вне форума Ответить с цитированием
Старый 29.03.2009, 13:02   #3
Vova20years
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 12
По умолчанию

я решил проблему с того поста!!http://www.programmersforum.ru/showthread.php?t=42791
Код:
procedure TForm1.Button2Click(Sender: TObject);
var i,n: integer;
begin
i:=1;
adobase.delete;
adobase.first;
while not adobase.Eof do  begin
adobase.edit;
adobase.fields[0].asinteger := i;
i := i+1;
adobase.post;
adobase.Next;
end;
Vova20years вне форума Ответить с цитированием
Старый 29.03.2009, 14:05   #4
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

Vova20years, это простенькое решение может быть еще короче - я Вам описывал это в пунктах 1-2 ответа в предыдущей ветке. Но у этого решения есть один недостаток, ради которого и нужен пункт 3) или альтернативные решения - само значение счетчика не изменится. Если вы после удаления из таблицы с 10 записями сделаете то, что описали, то при вставке новой записи она получит все равно номер 11, а не ожидаемый 10. Можно, конечно, попробовать и это обработать, но тогда не оч понятно - зачем Вам вообще поле типа счетчик? Используйте обычное целое. На BeforeInsert выставляйте в глобальную переменную значение RrcordCount, а при вставке определяйте им+1 это самое целочисленное поле вставляемой записи.

Последний раз редактировалось Антон Ю.Б.; 29.03.2009 в 14:11.
Антон Ю.Б. вне форума Ответить с цитированием
Старый 29.03.2009, 16:06   #5
nowmax
 
Регистрация: 25.11.2008
Сообщений: 6
По умолчанию

Код:
var
s1: integer;
begin
    s1:= datamodule5.ADOTable1.RecordCount;
    Memo2.Lines.Add(inttostr(s1));
    end;
все норм работает... Антон Ю.Б. прав был)))

а вот с методом Locate разбираюсь еще...

Если захотите разобраться поглубже, просто сделайте поиск по форуму со словом "Locate".

Последний раз редактировалось mihali4; 29.03.2009 в 16:18.
nowmax вне форума Ответить с цитированием
Старый 30.03.2009, 16:33   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

На счёт второго вопроса можно посмотреть метод MoveBy()

Пример Adotable1.MoveBy(45); переход к записи №45
SERG1980 вне форума Ответить с цитированием
Старый 30.03.2009, 16:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
переход к записи №45
Только в том случае если ты стоиш вначале.
Если же нет то нужна корректировка ибо этот метод переходит на N записей относительно текущей записи - это следует учесть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И снова про подсчет строк Bezdar Microsoft Office Excel 4 23.03.2009 16:49
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45
выбор по нескольким параметрам и подсчет кол-ва выбранных строк Oleshka Microsoft Office Excel 4 29.02.2008 11:38
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14
Подсчет r2n Общие вопросы Delphi 4 01.05.2007 05:48