Имя: Пароль:
1C
1С v8
Загрузка XML из поля MySQL
0 247tsm
 
04.07.15
16:53
Прошу прощения, что тревожу восьмёрочников, но семёрочники все вымерли. Может Вы поможете.

Обычная загрузка XML файла:

    Анализатор = СоздатьОбъект("AddIn.XMLParser");
    XML_Документ = Анализатор.СоздатьДокумент();
    Если ПустоеЗначение(XML_Документ) = 1 Тогда
        Возврат;
    КонецЕсли;
    XML_Документ.Загрузить(ИмяФайлаXML);

А у меня есть таблица docs в MySQL.
У таблицы docs есть поле data с неким текстом XML
(а точнее, выгруженный в XML документ).

Вопрос: на что заменить строку: XML_Документ.Загрузить(ИмяФайлаXML);
чтобы прочитать этот XML документ?
2 247tsm
 
04.07.15
17:15
(1) Неужели просто
     XML_Документ=data;
3 Рэйв
 
04.07.15
17:18
(2) ты меня своим data ввел в ступор. Как можно в дату записать строку, чем собссно по большому счету является для скуля xml?:-)
4 Рэйв
 
04.07.15
17:18
потом понял что это наверное "данные":-))
5 247tsm
 
04.07.15
17:19
(1) Если так просто, то зачем тогда строка
XML_Документ = Анализатор.СоздатьДокумент();
?
Ведь это присваивание убивается при
XML_Документ=data;
6 247tsm
 
04.07.15
17:19
(4) совершенно верно
7 Рэйв
 
04.07.15
17:20
(6)Ты хочешь xml держать в скуле?

Плохая идея.
8 247tsm
 
04.07.15
17:21
(7) почему?
9 Рэйв
 
04.07.15
17:23
(8)Потому что размерности файла ты не знаешь - а ты в ручную умеешь в скуле напрямую организововать хранения строк неограниценной дины?. Я вот врать не буду - не пробовал
10 Рэйв
 
04.07.15
17:23
*длины
11 247tsm
 
04.07.15
17:25
(7) но всё же, какой командой можно сделать то, что делает
XML_Документ = Анализатор.СоздатьДокумент();
но из поля data таблицы MySQL?
12 Рэйв
 
04.07.15
17:26
(11)Во первых сначала надо создать Анализатор.
В чет я не думаю, что это прям так просто:-)
13 247tsm
 
04.07.15
17:27
(10) В MySQL есть тип данных MEDIUMTEXT - до 16 Mb, LONGTEXT - до 4Gb
14 Рэйв
 
04.07.15
17:28
(13)и что? Ты 4гиг под поле назначишь?
15 Рэйв
 
04.07.15
17:29
у тебя это даже не взлетит на запуск:-)
16 247tsm
 
04.07.15
17:30
(12) Извиняюсь, ошибка, нужно читать:

но всё же, какой командой можно сделать то, что делает
XML_Документ.Загрузить(ИмяФайлаXML);
но из поля data таблицы MySQL?
17 247tsm
 
04.07.15
17:31
(15) Так это же виртуальная длина, т.е. максимально возможная.
А на деле - реальная длина текста.
19 247tsm
 
04.07.15
17:32
(15) Это я использую при синхронизации удаленных баз (не распределенных)
21 247tsm
 
04.07.15
17:34
(18) Правильно.
Вот мне и нужен метод Загрузить, но не из файла, а из поля базы данных (или переменной)
25 247tsm
 
04.07.15
17:38
(22) Я имел ввиду не этот конкретный метод Загрузить, а может есть метод подобный, но, работающий не с файлом, а с переменной или полем базы данных.
27 247tsm
 
04.07.15
17:41
(22) Весь смысл метода Загрузить в том, чтобы обратиться к диску, найти и прочитать в память информацию из заданного файла, И ВСЁ.
А мне нужно взять информацию не из файла на диске, а из поля базы данных.
Неужели нельзя?
30 247tsm
 
04.07.15
17:46
(29) Другими словами, как я понял, нужно делать так:
- сохранить текст XML документа из поля MySQL в файл на диске
- затем прочитать этот файл с диска и работать дальше.
Так?
Если да, то это КРУТО. ;))
Закон Брукера: Даже маленькая практика стоит большой теории.