09.06.2009, 15:10 | #1 |
Участник
|
Преобразование из COMVariantType::VT_SAFEARRAY в String
Всем привет!
Есть внешняя БД на FoxPro. Там есть таблица у которой есть поле с типом Character (Binary) размер 40. При чтении данных из этого поля мне приходит COMVariant с типом VT_SAFEARRAY. Я его получаю в переменную в Аксапте Array = comVariant.safeArray(). Как дальше этот массив преобразовать в строку? Заранее Спасибо! |
|
09.06.2009, 15:45 | #2 |
Участник
|
У объектов типа 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 |
Участник
|
Проблема НЕ в том как собрать строку из массива. А как преобразовать бинарное разложение строки, простите меня есть я использую не правильную терминологию, но именно так я себе это представляю, обратно в строку.
|
|
09.06.2009, 17:38 | #4 |
Участник
|
Найдено на просторах интернета:
Если в базе 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 |
Участник
|
Антоха ты МОЗГ!!! СПАСИБО! Все теперь работает!
Как же я сам не догодался что надо поставить ''+ перед именем поля ))) что бы получилась строка. |
|