|
1c8 + внешняя база данных + BLOB | ☑ | ||
---|---|---|---|---|
0
RommBoss
31.03.15
✎
12:25
|
Во внешней базе данных, подключенной к 1С как внешний источник, есть поле типа BLOD (содержит текстовое описание), в результате запроса 1С определяет тип этого поля как Двоичные данные.
Как преобразовать в при загрузке 1С в обычную строку? мысли? |
|||
1
shuhard
31.03.15
✎
12:28
|
(0) выгрузит в файлик
распарсить |
|||
2
RommBoss
31.03.15
✎
12:46
|
так не интересно. проще все выгрузить в эксель и оттуда закинуть в 8-ку
|
|||
3
Karav
31.03.15
✎
12:49
|
How do I convert from BLOB to TEXT in Mysql?
http://stackoverflow.com/questions/948174/how-do-i-convert-from-blob-to-text-in-mysql |
|||
4
Karav
31.03.15
✎
12:51
|
+ (3) Ну т.е. как я понял если ты запросы сам к базе генерируешь то можешь прям в запросе преобразовать CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)
|
|||
5
RommBoss
31.03.15
✎
12:53
|
(4) спасибо, попробую
|
|||
6
RommBoss
31.03.15
✎
13:41
|
(4) увы 1с язык запросов не позволяет таких конструкций
|
|||
7
alex_shkut
31.03.15
✎
13:48
|
А вариант =Строка(BLOB) не пробовал?
|
|||
8
alex_shkut
31.03.15
✎
13:50
|
Я внешние источники данных сильно не изучал, но там посмотри, нельзя ли явно указать тип поля например Строка(0) вместо BLOB.
|
|||
9
shuhard
31.03.15
✎
14:10
|
(6) это было очевидно
трансформировать данные нужно на стороне сиквела |
|||
10
RommBoss
31.03.15
✎
14:15
|
(8) нет. нельзя
(9) у меня нет туда доступа, да и это не сиквел, а нечто подобное но корявое... задачи именно из 1С при/после запроса привести значение в удобочитаемую форму |
|||
11
alex_shkut
31.03.15
✎
14:19
|
ВЫРАЗИТЬ(BLOB как Строка(100)) больше в запросе, как мне известно - нельзя;
Строка(0) я не пробовал, но поробуй хоть 100 - может получится? |
|||
12
RommBoss
31.03.15
✎
14:21
|
(11) нельзя так
|
|||
13
Лефмихалыч
31.03.15
✎
14:22
|
(6) именно по этому такие магические конструкции надо кастовать на стороне внешней базы
|
|||
14
shuhard
31.03.15
✎
14:26
|
(10) внимательно читаем (1), перестаем выпендриваться и начинаем кодировать
|
|||
15
Karav
31.03.15
✎
14:30
|
(6) А причем тут язык запросов 1С, у тебя же какая-то внешняя база данных ты как к ней цепляешься ? через какой-нить ведь oledb driver Или я путаю ?
|
|||
16
shuhard
31.03.15
✎
14:35
|
(15)[Во внешней базе данных, подключенной к 1С как внешний источник]
это ODBC |
|||
17
Karav
31.03.15
✎
14:36
|
(16) Дак может driver поменять :) да напрямую читать :)
|
|||
18
Лефмихалыч
31.03.15
✎
14:38
|
(15) даже через ODBC ты строку из блоба с разбегу не получишь. Придется, один болт, конвертить
|
|||
19
Karav
31.03.15
✎
14:40
|
(10) Всмысле а что там такого то... что за база ?
sqllite,mysql,oracl, или что-то экзотическое ? |
|||
20
shuhard
31.03.15
✎
14:55
|
(17) можно пустить ADODB поверх ODBC и сделать Convert поверх,
но имею двоичные данные в неизвестной кодировке это гемор файлик локально куда как проще |
|||
21
RommBoss
31.03.15
✎
15:01
|
яфил
видимо проще вторым заходом через эксель загрузить только это ОДНО поле |
|||
22
RommBoss
31.03.15
✎
15:04
|
(21) -> (19) :)
|
|||
23
Drac0
31.03.15
✎
15:05
|
(0) ИМХО, для доступа извне необходимо генерить отдельную вьюху с учетом особенностей потребителя. И к ней уже цепляться. А остальное - это дикий изврат.
|
|||
24
Drac0
31.03.15
✎
15:06
|
+(23) Почему не рассматриваете этот вариант?
|
|||
25
RommBoss
31.03.15
✎
15:08
|
мне не надо доступ из вне, мне надо только периодически забирать определенные данные. Зачем мне и заказчику ради этого заморачиваться с "отдельной вьюхой"?
|
|||
26
Garykom
гуру
31.03.15
✎
15:10
|
(25) ну тогда не как внешний источник подрубай, а через ВК юзай
|
|||
27
RommBoss
31.03.15
✎
15:11
|
(26) ради одного поля? все остальное же намного удобней
|
|||
28
Garykom
гуру
31.03.15
✎
15:12
|
(26)+ но вариант (1) самый простой и надежный...подразумевается эти "двоичные данные" записать в файл и прочитать оттуда как надо
|
|||
29
RommBoss
31.03.15
✎
15:15
|
(28) не сталкивался с таким.. и не нашел пока как 2-е данные записать в файл, а потом открыть его как текст
|
|||
30
shuhard
31.03.15
✎
15:18
|
(27) записать и открыть блокнотом пробовал ?
|
|||
31
RommBoss
31.03.15
✎
15:42
|
(1)(30) - выпил кофе и все стало просто и понятно!
|
|||
32
МихаилМ
31.03.15
✎
16:17
|
ЗначениеВСтрокуВнутр() пробуйте с разбором содержимого.
|
|||
33
RommBoss
31.03.15
✎
16:29
|
(32) так пробовал - дает шестадцатиричный код...
|
|||
34
RommBoss
31.03.15
✎
16:30
|
Вопрос решился файлом, даже парсить его не надо было, значение поля = ТекстФайла и все..
|
|||
35
МихаилМ
31.03.15
✎
16:34
|
(33)
приведите пример кода |
|||
36
shuhard
31.03.15
✎
16:42
|
(34) глянул я и действительно, охуительно, охуительно (с)
|
|||
37
RommBoss
31.03.15
✎
16:53
|
BLOD.Записать(ИмяФайла);
Текст = Новый ТекстовыйДокумент(); Текст.Прочитать(ИмяФайла); ВесьТекст = Текст.ПолучитьТекст(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |