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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 17:24   #1
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию Отображение числа записей БД: вопрос

В базе данных имеется определенное количество записей. Необходимо чтобы число этих записей отображалось например в tlabel или tedit.
Подскажите, как можно это организовать?
Evgenii вне форума Ответить с цитированием
Старый 23.06.2009, 17:31   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Через запрос сто пудов можно. Например, примерно так:
Код:
Query1.Active:=False;
Query1.Sql.Clear;
Query1.SQL.Text:='SELECT COUNT(<Имя вашего поля>) FROM <Имя вашей таблицы>
Query1.SQL.Active:=True;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 23.06.2009, 17:49   #3
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

А нужно query связывать с таблицей или достаточно просто кинуть компонент на форму?
Если нужно связывать, то это создает довольно много ненужных трудностей. В этом случае надо искать какойто другой вариант(
Evgenii вне форума Ответить с цитированием
Старый 23.06.2009, 17:55   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Можете просто кинуть его на форму и настроить свойства Query:
DatabaseName: псевдоним вашей БД,
Datasource: можете указать тот же Datasource, на который настроен DBGrid. В свойстве SQL компонента Query нужно написать любой запрос, например, select * from table. И установить свойство Active=True. И все, можете делать запросы.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 23.06.2009, 18:00   #5
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Тогда замечательно! Спасибо!
Evgenii вне форума Ответить с цитированием
Старый 23.06.2009, 18:29   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Если помог, то оставьте отзыв
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 23.06.2009, 19:30   #7
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Уже оставил. У меня еще вопрос появился:
где этот код записать? В обработчике события главной формы?
и в каком случае Query1.SQL.Active:=True; а в каком false?
Я так понимаю что при добавлении в БД или удалении из нее записи, Query1.SQL.Active:=True. После проверки, она снова отключается?
Evgenii вне форума Ответить с цитированием
Старый 23.06.2009, 20:14   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
Сообщение от Evgenii
где этот код записать?
Какой именно код Вы имеете ввиду: который я привел в посте №2 или в посте №4? Если в посте №2, то его надо записывать в обработчик события кнопки, т.е. Button1OnClick, например.
Код:
procedure TForm1.TButton1OnClick(Sender: TObject);
begin
Query1.Active:=False;
Query1.Sql.Clear;
Query1.SQL.Text:='SELECT COUNT(<Имя вашего поля>) FROM <Имя вашей таблицы>
Query1.SQL.Active:=True;
end;
Цитата:
Сообщение от Evgenii
В обработчике события главной формы
Можете там прописать, если Вам так удобнее будет .
Цитата:
Сообщение от Evgenii
и в каком случае Query1.SQL.Active:=True; а в каком false?
Query1.SQL.Active:=True идет самой последней строкой в коде, которое означает, что вывполнение запроса активируется, а Query1.SQL.Active:=False идет самой первой строкой, чтобы отключить Query...
Цитата:
Сообщение от Evgenii
Я так понимаю что при добавлении в БД или удалении из нее записи, Query1.SQL.Active:=True.
Нет. Query1.SQL.Active:=True используется только когда в запросе есть слово "select". При добавлении записи используется Query1.ExecSQL.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 23.06.2009 в 20:16.
artemavd вне форума Ответить с цитированием
Старый 23.06.2009, 20:22   #9
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

В общем мне нужно чтобы где-нибудь в нижнем уголке программы высвечивалось состояние количества записей в таблице и при этом никакой кнопки для этого быть не должно. Пользователь берет, удаляет запись. Внизу цифра 741 сразу меняется на 740. Или добавляет. тогда цифра меняется на 742. Этот код так работает?
Когда есть кнопка, насчет true и false все понятно. А когда ее нет? вот это мне было неясно. По какому событию процедура начинает работать

Последний раз редактировалось Evgenii; 23.06.2009 в 20:31.
Evgenii вне форума Ответить с цитированием
Старый 23.06.2009, 20:38   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Ээээмм...я в своей работе использовал не стандартный DBGrid, а сторонних компонент DBGridEh из библиотеки Ehlib. Там в свойствах грида можно сделать, чтобы в самом низу таблицы появилась строка, в которой бы отображалось количество записей в отдельном (указанном Вами поле). Также там можно не только количество записей отображать, но выделенный в какой-то ячейке тект, значение. Если есть возможность, то скачайте эту библиотеку компонентов и половина Ваших вопросов исчезнет. Я на сто пудов уверен, что у Вас в дальнейшем появится вопрос: "Как распечатать DBGrid?". Так вот там это все делается за одну строчку. Рекомендую!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09
Даны натуральные числа m,n. Посчитать сумму m последнего числа n. лялька Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2008 15:22
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Вопрос по поводу записей (Record) werser Помощь студентам 13 05.09.2007 23:11