Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чётность. FireBird 
:(
    Опции темы
Fast
Дата 23.10.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 21.3.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Как мне узнать число записей в таблице чётное или нечётное ???
PM MAIL   Вверх
Vas
Дата 24.10.2006, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Код

Result:=odd(TQuery.RecordCount); //если True значит нечетное число, иначе четное, можно также использовать EVEN (работает с точностью наоборот)



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 24.10.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



сначалу нужно сделать FetchAll

Добавлено @ 10:39 
а то получишь число записей (например 200) в кэше "ответа", а не фактическое, хранящееся на сервере.
PM MAIL   Вверх
SergeBS
Дата 24.10.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Akella
Vas
Нельзя так. Из-за 1 цифры тащить на клиента всю таблицу - нехорошо. Поэтому правильно:
запросом SQL получить на клиента цифирку=количеству записей, а потом определить: чет или нечет. А еще есть TDataSet.RecordCount.
PM MAIL   Вверх
Akella
Дата 24.10.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



SergeBS, можно по всякому. А если у него уже  датасет открыт и нужно просто получить кол-во записей....

тогда вот ещё вариант:
Код

Query.close;
Query.sql.clear;
Query.sql.add('select count(*) from MyTable');
Query.open;
Result:=odd(Query.Fields[0].Value);
Query.close;


PM MAIL   Вверх
SergeBS
Дата 24.10.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Akella,
smile. А я что проедлагал? 
Цитата

А если у него уже  датасет открыт и нужно просто получить кол-во записей....

есть TDataSet.RecordCount.

А запрос ты за меня написал smile. Но с ошибкой. Не
Код

Result:=odd(Query.Fields[0].Value);

а
Код

Result:=odd(Query.Fields[0].AsInteger);


PM MAIL   Вверх
Akella
Дата 24.10.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(SergeBS @  24.10.2006,  12:24 Найти цитируемый пост)
Но с ошибкой. Не

это не ошибка, проверь сам
PM MAIL   Вверх
SergeBS
Дата 24.10.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Akella
Проверил. Не ошибка. Ты прав. Зато AsInteger в списке подсказок ближе smile.
PM MAIL   Вверх
Akella
Дата 24.10.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



ну блин, да о чём спорим, это ж мелочи  smile  можно сказать...

Добавлено @ 14:41 
тогда уж лучше так
Код

Var
 v:variant;
begin
...
Query.close;
Query.sql.clear;
Query.sql.add('select count(*) from MyTable');
Query.open;
v := Query.Fields[0].Value;
Query.close;
If (VarIsNull(v)) or (V = 0 )then
  Result :=0 
else
  Result:=odd(v);



Добавлено @ 14:42 
а перед всем этим можно и наличие таблицы проверить smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.