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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2010, 13:51   #1
Епгений
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 59
По умолчанию Как посчитать количество записей в таблице DBGrid

у меня программа на ДЕЛФИ6 база Access состоит из одной таблицы 'Журнал' необходимо посчитать количество записей в таблице автоматчески или при нажатии кнопки. Результат посчета должна появится в компоненте Edit. Работаю с базой через ADO.
Ребята очень нужно, и если у кого есть какие идеи прошу помочь.
Заранее блогадарен
Епгений вне форума Ответить с цитированием
Старый 04.05.2010, 15:12   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOQuery1.Active:=False;
 ADOQuery1.SQL.Text:='select count(ID) from table';
 ADOQuery1.Open;

 Edit1.Text:=IntToStr(ADOQuery1.FieldByName('ID').AsInteger);
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.05.2010, 15:27   #3
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

artemavd, ошибка будет
тогда уж надо так
Код:
 Edit1.Text:=IntToStr(ADOQuery1.Fields[0].AsInteger);
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 04.05.2010, 15:37   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
quit
, а в чем разница-то? Мне кажется, что особой разницы нет. Что у меня FieldByName, что у Вас Fields[0] означает одно и тоже. Суть в том, чтобы результат запроса перевести в строковое значение, чтобы затем присвоить Edit1
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.05.2010, 15:44   #5
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

ну хорошо, тогда если запрос будет вида
Код:
select count(ID) AS ID from table
то я тогда не буду спорить
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 04.05.2010, 15:46   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
ну хорошо, тогда если запрос будет вида
Код:

select count(ID) AS ID from table

то я тогда не буду спорить
Я это и имел ввиду
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.05.2010, 15:50   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

я вас еще больше обрадую если напишу так?
Код:
Edit1.Text:=ADOQuery1.FieldByName('ID').AsString;
soleil@mmc вне форума Ответить с цитированием
Старый 04.05.2010, 16:27   #8
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

soleil@mmc, ну это уже некрасиво
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 05.05.2010, 12:40   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

это уже лирика
ОФФ: это сокращает код - убирается лишнее преобразование, которое к тому же может привести к АВехе в общем случае (вот будет ТС копи-пастить свой код и будет использовать вашу нотацию Field[0] - точно будет путаница, а так прилада хотя бы будет работать и программера будет время безболезненно подправить ехе-шник)
soleil@mmc вне форума Ответить с цитированием
Старый 05.05.2010, 17:44   #10
Епгений
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 59
По умолчанию

вот я так сделал
код:
DataModule1.FindQuery.Active:=False ;
DataModule1.FindQuery.SQL.Text:='se lect count(Key1) from справочник';
DataModule1.FindQuery.Open;
edit1.Text:=IntToStr(DataModule1.Fi ndQuery.Fields[0].AsInteger);
end;
программа без проблем запускается и при нажатии выдает ошибку и говорит что FinQuery:Field '№' not found почему то не находит я испробовал пару способов но все равно одно и то же показывает. Фуф измучался ваще
Епгений вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество записей в БД ACCESS Dux БД в Delphi 22 31.03.2015 20:36
Как посчитать кол-во разных записей в столбце и сделать двойную сортироку katlis Microsoft Office Excel 2 16.03.2009 17:09
как посчитать количество файлов в каталоге? помогите плиз older Общие вопросы Delphi 5 23.05.2008 14:22