Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как преобразовать binary(8) ? / 12 сообщений из 12, страница 1 из 1
08.08.2006, 09:40
    #33904602
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
Доброго всем времени суток!

Помогите разобраться с проблемой:
в таблице SQL есть поле типа binary(8), при чтении таблицы в курсор адаптер поле представляется как memo. Данные из этого поля нужны для дальнейшей обработки (селест с условием по этому полю) как его преобразовать в шестнадцатеричный вид, как в sql-е?
...
Рейтинг: 0 / 0
08.08.2006, 09:59
    #33904659
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
если vfp9 - используй CursorSchema
...
Рейтинг: 0 / 0
08.08.2006, 10:19
    #33904726
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
-=AlexiS=-если vfp9 - используй CursorSchema
не получается. все равно показывает как мемо-поле.
...
Рейтинг: 0 / 0
08.08.2006, 10:24
    #33904747
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
А что собственно ты хотел увидеть? Абсолютное копирование поведения SQL Server? Почему ты решил, что фокс точно так же должен ОТОБРАЖАТЬ двоичные данные, как и SQL SERVER? Важно, чтоб они лежали как бинарные данные или важнО их отображение?
...
Рейтинг: 0 / 0
08.08.2006, 10:28
    #33904758
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
проходящийА что собственно ты хотел увидеть? Абсолютное копирование поведения SQL Server? Почему ты решил, что фокс точно так же должен ОТОБРАЖАТЬ двоичные данные, как и SQL SERVER? Важно, чтоб они лежали как бинарные данные или важнО их отображение?
мне не нужно их отображение, нужно их дальнейшее использование в фоксе, т.е. хотелось бы преобразовать в hex или integer.
...
Рейтинг: 0 / 0
08.08.2006, 10:31
    #33904769
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
alex3399 проходящийА что собственно ты хотел увидеть? Абсолютное копирование поведения SQL Server? Почему ты решил, что фокс точно так же должен ОТОБРАЖАТЬ двоичные данные, как и SQL SERVER? Важно, чтоб они лежали как бинарные данные или важнО их отображение?
мне не нужно их отображение, нужно их дальнейшее использование в фоксе, т.е. хотелось бы преобразовать в hex или integer.
Еще напишу: из адаптера как на картинке взять id и сделать в sql еще select * from table2 where table1_id=0x8001000000000001.
...
Рейтинг: 0 / 0
08.08.2006, 10:37
    #33904793
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
Ну так и бери из этого мемо-поля строку, конвертируй во что надо и работай.
Или в курсор-адаптере поставь функцию конвертирования и получай уже не мемо-поле, а integer.
...
Рейтинг: 0 / 0
08.08.2006, 10:47
    #33904821
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
проходящийНу так и бери из этого мемо-поля строку, конвертируй во что надо и работай.
Или в курсор-адаптере поставь функцию конвертирования и получай уже не мемо-поле, а integer.
в этом и вопрос, как преобразовать?
...
Рейтинг: 0 / 0
08.08.2006, 10:49
    #33904831
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
CtoBin(), BinToC(), StrConvert()
...
Рейтинг: 0 / 0
08.08.2006, 10:56
    #33904852
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
Нужна настройка

CursorSetProp("MapBinary",.T.)

или

CursorAdapter.MapBinary = .T.

Появилась в VFP9

В противном случае, данные будут скачаны "как есть", но отображаться будут как поля Character. Это значит, что содержимое 1 байта (8 бит) будет воспринято как ASCII-код некоего символа и будет предпринята попытка этот символ отобразить.

Бинарные данные - это строка в 16-ричной системе. Т.е. 1 символ (1 байт) - это 2 символа в 16-ричной системе. Вот отсюда и соображай как перевести. Причем надо еще учитывать как читать: справа-налево или слева-направо.
...
Рейтинг: 0 / 0
08.08.2006, 11:22
    #33904958
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
Итак
Делаю таблицу

Код: plaintext
1.
2.
3.
4.
5.
create table test_bin id int f1 varbinary( 8 )
insert into test_bin (f1) values (0x0000000000000002)
insert into test_bin (f1) values (0x0000000000000003)
insert into test_bin (f1) values (0x0000000000000004)
insert into test_bin (f1) values (0x0000000000000005)

В фоксе создаю курсорадаптер
CursorSchema = F1 Q(8), ID I
UseCursorSchema= .T.
Все вроде ОК
...
Рейтинг: 0 / 0
08.08.2006, 12:01
    #33905091
alex3399
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать binary(8) ?
спасибо всем откликнувшимся!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как преобразовать binary(8) ? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]