powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Из MSSQL поле binary в integer VFP9
25 сообщений из 30, страница 1 из 2
Из MSSQL поле binary в integer VFP9
    #34799021
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давно крутится 1с (MSSQL6.5). Нужно скачать данные в Фокс так, чтобы ключ.поле бинери стало ключ.полем типа интеджер. Цель-ключ должен быть читабельным в таблицах Фокса для дальнейшего использования, а не путанным. Как такое сделать?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34799123
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит "ключ.поле бинери"? То есть на сервере оно binary? Точно? Что-то я не припомню у 1С таких полей, тем более ключевых. Для чего ключ делать читабельным? Кто и зачем его будет читать?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34800549
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я его буду видеть и читать, чтоб корректно и легко пользоваться значениями. В 1с поля ID и ParentID такого типа. Вот интересно, есть ли взаимно однозначное соответствие этих типов? А значит и функции преобразования, которой я не знаю?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34800584
Покажите ка ID и ParentID таких типов.
Структуру и значения.
И Вы будете ручками эти значения куда-то вводить?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801098
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет же, не вручную. То, что уже введено в 1с, перегоню в Фокс, и здесь мне надо заместить тип бинари на интеджер, а далее программа будет работать с фокстаблицами, где ключ будет автоматич. присваиваться (+1), потому что я не знаю сейчас как формируется новый уникальный ключ типа бинари. Вот для этого мне нужен тип интеджер для ключа. А еще я посмотрел, что ключ в табл 1с действительно не ID, а ROW_ID типа интеджер, тут прошу прощения, но все-равно у меня ключом будет именно ID, а он в 1с типа бинари. Я, конечно, могу просто взять вместо ID ROW_ID, но как тогда быть с ParentID, который согласуется с ID, а не с ROW_ID, и он тоже типа бинари. Например, d 1c таблица SC72: ROW_ID integer (primary key), ID binary, parentid binary,...
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801166
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык, надо вернуть с сервера конвертированное значение bin в int

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table #t (f1 binary( 50 ))

insert into #t select cast( 1  as binary ( 50 ))

select * from #t

select cast(f1 as int) from #t

drop table #t
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801216
Как же все таки тяжко общаться, когда вместо ответов на вопросы сыплется длинная цепь рассуждений, сделанная на основании хоть и одного неправильного утверждения, но не ставшаяся от это истинной. Я просил предоставить значения поля типа binary. Где оно?
То, что поле типа binary еще не делает содержимое такого поля двоичным.
Там хранятся строки. А тип binary сделан для исключения конвертаций содержиого такого поля при неправильных настройках сервера и/или клиента. А для генерации используется 36-ричная система. Только зачем генерировать-то? Чтобы потом обратно в 1С запихать? Чревато! СтОит ли это делать?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801247
Паш, вопрошавшему твой совет не поможет. Он просто плохо знает структуру данных 1С и делает неправильный вывод о содержимом идентификаторов. Полученные им числа будут с разрывами, закономерность расположения которых он навряд ли поймет.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801278
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это другой же разговор, более веселый. Но попробовав подсказку, получил в ответ "'cast' is not a recognized built-in function name". На беду версия 6.5. Что ж делать, есть ли способы? Или на край сбэкапить и восстановить в MSSQL-2000, а там работает cast?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801300
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ах, да, прости, дружище! 0x202031384f202020 0x2020204b71202020 - это ид и парентид.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801307
Ну а теперь внимательно посмотри на позанное. Ничего не напоминает?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801319
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗЫ. Согласись, грустно на эти значки смотреть, а как формировать новые такие значения-вообще не знаю.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801354
пробуй:

Код: plaintext
1.
2.
create table #t (id binary( 8 ), parentid binary( 8 ))
insert into #t values (0x202031384f202020, 0x2020204b71202020 )
select convert(char( 8 ), id), convert(char( 8 ), parentid) from #t
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801356
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что делать, паника и несобранность подводит сегодня. Вчера сказали, чтоб переписал 1с на ВФП9+Оракл и будем добавлять свою специфику. Но там последовательности, ключи-целые. Кажется, не пропустил ничего.
внимательно посмотри на позанное. Ничего не напоминает? -тут объясни, наверное, все очень просто для тебя, а я, как модно говорить, туплю.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801386
выполни в фоксе:
Код: plaintext
?chr(0x20)+chr(0x20)+chr(0x31)+chr(0x38)+chr(0x4f)+chr(0x20)+chr(0x20)+chr(0x20)
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801404
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дружище, спасибо! Вот что получилось в QUERY с select convert(integer,id) from sc72:
857743392
874520608
891297824
908075040
924852256
941629472
958406688
1092624416
1109401632
1126178848 .
Последние, надеюсь, вопросы. 1)Если бинари уникальны, то эти целые тоже уникальны?
2)Почему вывод в 12 позиций и выравнивание по левому краю? Тут без подвоха?
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801425
Вы принципиально не читаете написанное мной? Что Вы так уперлись в инт? На каком основании? Почему именно инт? Ответы на остальные вопросы бессмысленны без ответа эти вопросы.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801467
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дружище, не обижайся. Вот ты помог, и второй вопрос отпал, конечно это числовой текст, да и первый сейчас проверю, 99%, что взаимно однозначное соответствие типов. А интеджер- чтобы когда я в новой программе, где данные будут на Оракле, захочу ввести новую запись, ключ автоматом сформируется с помощью объекта Оракл "ПОСЛЕДОВАТЕЛЬНОСЬ", где тип именно целое, интеджер, такая нехитрая логика. Еще раз, спасибо!
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801478
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Преобразование из 36-ричной в десятичную:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
func ch36to10
para lcValue
lnRet= 0 
do while !empty(lcValue)
   lnCifra=asc(lcValue)
   lcValue=substr(lcValue, 2 )
   do case
      case lnCifra= 32 
           * пробел
      case lnCifra< 58 
           lnRet=lnRet* 36 +lnCifra- 48 
      case lnCifra< 91 
           lnRet=lnRet* 36 +lnCifra- 55 
      otherwise
           lnRet=lnRet* 36 +lnCifra- 61 
   endcase
enddo
return lnRet


попробуй:
Код: plaintext
? ch36to10(chr(0x20)+chr(0x20)+chr(0x31)+chr(0x38)+chr(0x4f)+chr(0x20)+chr(0x20)+chr(0x20))
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801482
Какой еще к черту "числовой текст"? ParentId посмотрел таким способом?
А вот это выдает 180 или 18?
Код: plaintext
?val(chr(0x20)+chr(0x20)+chr(0x31)+chr(0x38)+chr(0x4f)+chr(0x20)+chr(0x20)+chr(0x20))
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801518
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дает 18. Извини, не числовой, а цифровой текст, тест из цифр. Так быстро, что не могу анализировать, но хотелось бы сегодня решить проблему конвертации.
Dima T, спасибо, поразмыслю над кодом. Пока никаких окончательных выводов не сделал, слишком быстро.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801527
Только ли из цифр? Почему 18, а не 180? Еще раз предлагаю посомотреть и ParentId указанным мной способом. Там вообще ни одной цифры нет.
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801537
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец понял фразу "тип binary сделан для исключения конвертаций содержиого такого поля при неправильных настройках сервера и/или клиента", спасибо. Какие же настройки сервера по этому поводу бывают, и по результату 18-какие у меня? Ситуация, кажется, становится в этой связи опасной для меня!
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801551
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?val(chr(0x20)+chr(0x20)+chr(0x20)+chr(0x4b)+chr(0x71)+chr(0x20)+chr(0x20)+chr(0x20))
Дает 0, приплыли. Может, настройки сервера выручат, подскажите, как говорят, плиз!
...
Рейтинг: 0 / 0
Из MSSQL поле binary в integer VFP9
    #34801552
Специально для плохо умеющих читать повторяю:

Там хранятся строки. А тип binary сделан для исключения конвертаций содержиого такого поля при неправильных настройках сервера и/или клиента. А для генерации используется 36-ричная система.

Понятно почему я написал
Код: plaintext
select convert(char( [b]8 )[/b], id), convert(char( 8 ), parentid) from #t
а не так подавляюще действующий на некоторых инт?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Из MSSQL поле binary в integer VFP9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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