Извините, это опять я...
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Извините, это опять я...
Создаётся впечатление что тут один я задаю вопросы, но что делать, действительно такая ситуация...
Так вот...
А есть ли в РСУБД понятие "чётности"/"нечётности"? То есть можно как-то в фильтре проверить четное ли поле таблицы или нет, и на основании этого отобразить (исключить из фильтра) или не отображать даннное поле? В Paradox этого сделать нельзя, поэтому делал через "ЦК КПСС" то есть функцию, которая писАла в спец. таблицу с AutoIncrement полем и возвращала четное число значение поля или нет... Это можно как-то во "взрослом SQL" реализовать проще? Нет функций типа IsOdd или IdEven или других механизмов?
Про совет писать в спец табрицу (это для Paradox, а для SQL создать генератор по модулю 2 я не говорю сейчас
Так вот...
А есть ли в РСУБД понятие "чётности"/"нечётности"? То есть можно как-то в фильтре проверить четное ли поле таблицы или нет, и на основании этого отобразить (исключить из фильтра) или не отображать даннное поле? В Paradox этого сделать нельзя, поэтому делал через "ЦК КПСС" то есть функцию, которая писАла в спец. таблицу с AutoIncrement полем и возвращала четное число значение поля или нет... Это можно как-то во "взрослом SQL" реализовать проще? Нет функций типа IsOdd или IdEven или других механизмов?
Про совет писать в спец табрицу (это для Paradox, а для SQL создать генератор по модулю 2 я не говорю сейчас
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Извините, это опять я...
Фильтр полей??? или всё же строк в выборке???Kotъ-Begemotъ писал(а):А есть ли в РСУБД понятие "чётности"/"нечётности"? То есть можно как-то в фильтре проверить четное ли поле таблицы или нет, и на основании этого отобразить (исключить из фильтра) или не отображать даннное поле?
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Re: Извините, это опять я...
Обычный фильтр для строк. К сожалению в Paradox прямо в выражении фильтра у меня не получилось анализировать на чётность или нечётность, не жрёт выражения ((Slavik писал(а):Фильтр полей??? или всё же строк в выборке???Kotъ-Begemotъ писал(а):А есть ли в РСУБД понятие "чётности"/"нечётности"? То есть можно как-то в фильтре проверить четное ли поле таблицы или нет, и на основании этого отобразить (исключить из фильтра) или не отображать даннное поле?
Re: Извините, это опять я...
WildSery правильно советует. Попробуй TDataSet.OnFilterRecord на клиенте или хранимую процедуру (в FB2 можно и execute block) на сервере.
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Re: Извините, это опять я...
+Slavik писал(а):WildSery правильно советует. Попробуй TDataSet.OnFilterRecord на клиенте или хранимую процедуру (в FB2 можно и execute block) на сервере.
Буду думать. Проблема в том, что подобные вопросы мне отныне надо решать для двух платформ - для Paradox чтобы вводить новшества в существующем и работающем проекте, и под FB2.0 поскольку на него будет осуществляться переход...
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Тебе правильно показалось Но в моём случае "дырок" не будет -потоком льются записи в таблицу Orders и нужно "по-честному" раскидать их на двух диспетчеров Было так, чейчас уже немного по-другому всё, но на будущее, мало ли...WildSery писал(а):Может, и не при чём. Мне показалось, что "чётное" в данном случае интерпретировалось как "каждое второе".
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Да, но проблема с использованием этого выражения в свойстве Filter для Paradox'овской Ttable которая в существующем проекте есть... (( Поэтому приходилось колхозить с "псеводгенератором" и функцией возвращающей значение его по модулю 2...aaa3d писал(а):Dimitry Sibiryakov писал:
Ну а что мешает проверить делимость нацело на 2?
без всяких ХП или фильтров на клиенте....
выведет четные.
select * from shop where shop_id= cast ((shop_id/2) as integer) *2
удачи
Хм... Кстати проверил, в выражинии фильтра всё-таки эта конструкция работает! Правда применять уже не придётся, так как у меня была возможность это суррогатное поле менять, для передачи заказа от одного диспетчера другому, так что даже при таком выражении фильтра пришлось бы всё равно вводить еще одно поле - признак передачи заказа от диспетчера диспетчеру... Но за идею спасибо! Я как-то не додумался до такого выражения фильтра... Век учись...