пятница, 8 июля 2011 г.

Чтение реестра через T-SQL

Немногие знают, но через запросы к базе Microsoft SQL можно читать реестр и соответственно писать в него. Делается это с помощью нескольких встроенных функций:

xp_regread
xp_instance_regread
xp_regwrite

и тд
Эти процедуры являются недокументированными, поэтому в какой-то момент (а именно после 2000 SP4) логика их работы поменялась и для непривилегированных юзеров стали выдаваться ошибки.
На сайте microsoft есть документ, как исправлять это.

Хоть там и написано, что ошибка идет после установки 2000 SP4, в 2005 и 2008 сервере логика работы осталась прежней.
Но как обычно, там есть неточности и некоторые моменты не оговорены.

Во-первых, как узнать имя ключа в реестре для своего инстанса.
Идем в данную ветку:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
Здесь смотрим параметр с именем вашего инстанса, например, MSSQL.3

Во-вторых, создаем ветку в реестре:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.3\MSSQLServer\ExtendedProcedures
По умолчанию, этот ключ не создан, его нужно создавать вручную.

В этом ключе уже создаем нужный нам параметр - для чтения или записи реестра ("Xp_regread Allowed Paths" или "Xp_regwrite_Allowed Paths"). Тип данного ключа - REG_MULTI_SZ

И в конце концов, в этом параметре прописываем нужные нам для чтения или записи ветки, по одному на строчку. И обратите внимание - ключ должен быть без символа "\" в конце. Иначе по непонятным причинам сервер mssql при чтении этого параметра получает Buffer Overflow и в запросе вернется ошибка "Access is denied"

среда, 6 июля 2011 г.

Изменения в ПДД

По информации из проверенных источников, в ближайшее время планируется внеси поправки в ПДД. Обсуждение данных поправок идет с кодовым названием "Для самых умных". Удалось узнать основные изменения:

8.13. Правилом 8.9. данного документа следует пользоваться при любых перестроениях налево, особенно в случаях поворота налево из крайнего правого ряда.

9.13. На дорогах с двусторонним движением, в случае если все полосы попутного направления заняты, необходимо двигаться по асфальтированной обочине. В случае если водитель очень торопится, возможно движение по неасфальтированной обочине или прилегающем участке земли. Движение по обочине возможно в один ряд. Водители полностью затонированных ТС, а также водители ТС с повышенной проходимостью могут двигаться по обочине в два или три ряда.

10.6. Разрешается превышение установленных ограничений скорости на 20км/час - за такое нарушение вас не будет останавливать инспектор ДПС.

10.7. В случае если в поле видимости водителя нет дорожных камер или патрулей ДПС, максимально возможная скорость движения ТС устанавливается самим водителем в зависимости от умений вождения и скоростных характеристик ТС (прим. - тонировка передней полусферы увеличивает максимально возможную скорость в два раза).

12.9. Включение аварийной световой сигнализации разрешает остановку и стоянку в любом месте проезжей части.

13.14. При образовании затора на пересечении проезжих частей необходимо выезжать на перекресток, подавая звуковые сигналы водителям попутного направления.

13.15. При включении желтого сигнала светофора водителям встречного потока необходимо начать плавно выезжать за пределы перекрестка, чтобы при включении зеленого сигнала светофора можно было резко ускориться.

13.16. Если невозможно определить тип покрытия дороги, и нет знаков приоритета (также допускается случай, что водитель ТС не заметил данные знаки), то водитель должен считать, что находится на главной дороге и при подъезде к перекрестку необходимо развить максимально возможную скорость.

14.8. Водитель транспортного средства не должен пропускать пешеходов - не столб, отойдут.

19.10. Звуковые сигналы могут применяться при езде по обочине, чтобы водители, которым очень нравится стоять в пробке, предоставили приоритет сзади едущему ТС.