|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.08.2013, 16:54 | #1 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
сдвиги и 16-тиричное числа в SQL Server 2008
добрый день, помогите разобраться.
мне необходимо в SQL-запросе реализовать следующую структуру: PHP код:
до чего я дошел SHR - логический сдвиг вправо. насколько я понял это можно заменить банальным делением на 16 с последующим округлением до целого: ROUND(Val1 / 16, 0) c Val1 and $FFFF тоже вроде все прозрачно: Val1 & 0xFFFF итого строка в SQL-запросе PHP код:
{0-1-942-15084-000000000000} - в SQL Server {0000-0001-0000-3AEC-000000000000} - Delphi Подскажите, что я делаю не так? |
15.08.2013, 19:40 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
1. Val1 shr 16 - это не деление на 16, а целое деление на 65536 и ROUND не нужен, результат и так int будет
2. В delphi результат будет {0000-3AEC-0000-0001-000000000000} а не {0000-0001-0000-3AEC-000000000000} 3. Конвертировать int в hex-string можно с помощью CONVERT(varbinary, @i). Можно поиграться с 3-им параметром 1 или 2.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.08.2013, 23:56 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Я имею ввиду что может лучше не парится, а сделать это в Делфи?
I'm learning to live...
|
|
16.08.2013, 06:35 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Как я понимаю, часть проблемы в дополнении числа нулями слева, я дополняю нулями в сиквеле следующей функцией
Код:
Конверт в хекс уже сказали, по идее просто такой хекс (уже строку) подать сюда - дополнится нулями также. |
16.08.2013, 09:01 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
На 2000-ом попробовал, в нем CONVERT не работает как в 2008-ом, заменил на master.dbo.fn_varbintohexstr
Код:
{0000-3AEC-0000-0001-000000000000}
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 16.08.2013 в 09:05. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SQL Server 2008 | ULR | SQL, базы данных | 2 | 10.05.2013 11:38 |
SQL server 2008 | sargez | SQL, базы данных | 2 | 28.10.2010 13:58 |
sql server 2008 | Neymexa | Помощь студентам | 1 | 25.03.2010 13:13 |
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) | cherw9!40k | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 2 | 14.01.2010 20:51 |
c# и sql server 2008 | BattleMage | SQL, базы данных | 3 | 14.09.2009 20:28 |