Задача: В базе MSSQL есть поле bigint, где храниться 10-е число. Необходимо достать из базы это число и разложить на биты. Раскладывать 32-битные значение получается хорошо, а вот bigint 64-битовый и тут и возникает основная проблема, происходит переполнение. Пробовал и классикой (деление на 2) и побитовыми операциями и php-шной функцией decbin().
Спасибо.
Спустя 13 часов, 55 минут, 54 секунды (21.09.2009 - 07:53) glock18 написал(а):
привет,
1. если число приходит в php обрезанное - ищем пути разбить число на стороне sql сервера.
2. если число приходит нормальное, а при конвертации в число теряет половину знаков. Попробуй разбить строку на две по 11 знаков, и работать с ними по отдельности.
Возможно так же будет нужно заставить mssql отправлять число в виде строки. для это примени какую-нибудь строковую функцию на нем при выборке (конкатенация с пустой строкой или еще чего в этом духе)
1. если число приходит в php обрезанное - ищем пути разбить число на стороне sql сервера.
2. если число приходит нормальное, а при конвертации в число теряет половину знаков. Попробуй разбить строку на две по 11 знаков, и работать с ними по отдельности.
Возможно так же будет нужно заставить mssql отправлять число в виде строки. для это примени какую-нибудь строковую функцию на нем при выборке (конкатенация с пустой строкой или еще чего в этом духе)
Спустя 52 минуты, 26 секунд (21.09.2009 - 08:45) sergeiss написал(а):
Цитата (glock18 @ 21.09.2009 - 08:53) |
для это примени какую-нибудь строковую функцию на нем при выборке (конкатенация с пустой строкой или еще чего в этом духе) |
А это зачем?

Не проще ли использовать CAST или CONVERT для преобразования типа???
Спустя 56 минут, 14 секунд (21.09.2009 - 09:41) glock18 написал(а):
Цитата |
Не проще ли использовать CAST или CONVERT для преобразования типа??? |
да, их и нужно. я исхожу из того, что не знаю есть ли это в **sql обозначенном выше. ТС сам поймет что нужно, я думаю.
Спустя 28 минут, 25 секунд (21.09.2009 - 10:10) sergeiss написал(а):
Если я не ошибаюсь, CAST входит в "базовый" набор и должен поддерживаться в любом нормальном xxxSQL.
Цитата (glock18 @ 21.09.2009 - 10:41) |
ТС сам поймет что нужно, я думаю. |
А вот это не факт, если не указать в явном виде.
Спустя 8 часов, 53 минуты, 5 секунд (21.09.2009 - 19:03) Алексей написал(а):
Спасибо за советы, буду пробовать