AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2009, 15:10   #1  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Преобразование из COMVariantType::VT_SAFEARRAY в String
Всем привет!

Есть внешняя БД на FoxPro. Там есть таблица у которой есть поле с типом Character (Binary) размер 40.

При чтении данных из этого поля мне приходит COMVariant с типом VT_SAFEARRAY. Я его получаю в переменную в Аксапте Array = comVariant.safeArray(). Как дальше этот массив преобразовать в строку?

Заранее Спасибо!
Старый 09.06.2009, 15:45   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от if_maks Посмотреть сообщение
... Как дальше этот массив преобразовать в строку?

Заранее Спасибо!
У объектов типа array есть метод toString(), он возвращает строку из элементов массива.(правда через запятую и в скобках).

p.s. Если нужна какая-то специфическая строка, то перебором всех элементов в цикле.

UPD: ссылка по классу array axaptapedia: Array (Foundation class)
UPD: посмотрите здесь может поможет BLOB -> Strings. Как?

Последний раз редактировалось SRF; 09.06.2009 в 17:03.
Старый 09.06.2009, 16:03   #3  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Проблема НЕ в том как собрать строку из массива. А как преобразовать бинарное разложение строки, простите меня есть я использую не правильную терминологию, но именно так я себе это представляю, обратно в строку.
Старый 09.06.2009, 17:38   #4  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Thumbs up
Найдено на просторах интернета:

Если в базе foxpro есть поле типа character (binary), то чтобы заполучить из него читаемое значение, нужно в запросе добавить две одинарные кавычки и знак "+" перед именем поля.

Например так: Select usr_lanid, ''+usr_password as usr_password FROM users, где поле usr_password имеет тип character (binary). После этого, значение поле будет вполне съедобной строкой.
__________________
С уважением,
Tony Green
За это сообщение автора поблагодарили: if_maks (1).
Старый 09.06.2009, 17:48   #5  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Антоха ты МОЗГ!!! СПАСИБО! Все теперь работает!

Как же я сам не догодался что надо поставить ''+ перед именем поля ))) что бы получилась строка.
Теги
comvariant

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
RPC exception 5 occurred (AX2009) player DAX: Администрирование 6 30.05.2012 11:38
palleagermark: Saving the reference to a unique record as a string Blog bot DAX Blogs 0 20.10.2008 11:05
axaptapedia: String validation Blog bot DAX Blogs 1 03.06.2008 20:48
Issues concerning X++: Misusing string concatenations Blog bot DAX Blogs 0 08.08.2007 10:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:48.