|  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 | 
| Участник | 
			
			Антоха ты МОЗГ!!! СПАСИБО!   Все теперь работает! Как же я сам не догодался что надо поставить ''+ перед именем поля  ))) что бы получилась строка. | 
|  | 
| Теги | 
| comvariant | 
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |