Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Работа с битовыми полями в MS SQL Server


Автор: Pakshin A. S. 2.11.2004, 15:36
В MS SQL Server можно определять поля типа бит - с возможными значениями 0 и 1. Обратите внимание что битовое поле не может быть NULL! При хранении реально на битовое поле занимает все равно байт, но если вы определите несколько битовых полей подряд в таблице то они все пойдут в один и тот же байт (естественно до 8 штук) и вы тем самым сэкономите место. Кстати MS SQL Server позволяет пользовать бинарные операции над байтами и можно хранить несколько бит в одном байте. Например, дни недели когда программа должна работать я храню в 1 байтовом поле, где с 1 по 7 бит обозначают дни недели. Вот как можно кверить такое поле:
Код

SELECT MyField From MyTable
WHERE RunDays & :_rundays >  0 


В данном случае "_rundays" это параметер который в коде можно определить для сегоднешнего дня как (пример на Дельфи):
Код

 MyQuery.parameters.parambyname('_Rundays').value := 1 shl ((dayofweek(now))-1);


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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)