Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Ошибка  "ВыполнитьXML"  -  "Запрос (число прочтений - 11960 )
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Ошибка  "ВыполнитьXML"  -  "Запрос
06. Октября 2006 :: 07:48
Печать  
      RecordSet=СоздатьОбъект("ODBCRecordSet");
      obBinaryData= СоздатьОбъект("BinaryData");
     
      ТекстЗапроса="
      |Select *
      |FROM $Справочник.Агенты as спрАгенты (NOLOCK)
      |";                                          
     
      RecordSet.ВыполнитьXML(ТекстЗапроса,obBinaryData);

выдает ошибку "Запрос не XML"
  
Наверх
www  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #1 - 06. Октября 2006 :: 08:22
Печать  
Код
Выбрать все
Select *
FROM $Справочник.Агенты as спрАгенты (NOLOCK)
FOR XML AUTO";
 

  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #2 - 06. Октября 2006 :: 08:32
Печать  
Код
Выбрать все
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей . Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.




В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''file:///C:/1.xml''. Строка 1,Положение...

<

 



- так для любого запроса не получается просмотреть результирующий XML с помощью IE
  
Наверх
www  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #3 - 06. Октября 2006 :: 08:35
Печать  
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #4 - 06. Октября 2006 :: 11:32
Печать  
Snif писал(а) 06. Октября 2006 :: 08:32:
Код
Выбрать все
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей . Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.




В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''file:///C:/1.xml''. Строка 1,Положение...

<

 



- так для любого запроса не получается просмотреть результирующий XML с помощью IE

Чтобы получился xml-файл:
1)в начало файла нужно записать заголовок xml файла и начальный тэг корневого элемента;
например:
<?xml version="1.0" encoding="windows-1251" ?>
<SomeData>


2)потом наполнять файл результатами xml запросов;

3)в конец файла записать завершающий тэг корневого элемента.
например:
</SomeData>
  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #5 - 06. Октября 2006 :: 11:32
Печать  
А русским языком кратенько изложить суть написанного в этой ссылке, применительно к этой теме, можно? )
  
Наверх
www  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #6 - 06. Октября 2006 :: 11:47
Печать  
Замечание 1.
У объекта BinaryData есть свойство Кодировка определяющее кодировку для операций чтения/записи.
Загрузка результата запроса в переданный объект идет также с учетом значения этого свойства. На сколько я помню, объект ODBCRecordset может записать xml результат в BinaryData только когда он в кодировке 1251 или Unicode.

Замечание 2.
Результат запроса всегда возвращается в Unicode. При необходимости (свойство Кодировка) ODBCRecordset его конвертирует в 1251.

Замечание 3.
Кодировка объекта BinaryData, конечно же, должна быть согласована с содержимым заголовка xml файла. Это ответственность программиста.
  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #7 - 06. Октября 2006 :: 12:02
Печать  
Поигрался с кодировкой. Нечто осмысленное появилось при
obBinaryData.Кодировка=3;

Но, выдается ошибка: "В документах XML допускается только один элемент верхнего уровня."   И это правильно. Возникает вопрос: как в тот XML, который находится в BinaryData добавить элемент верхнего уровня....
  
Наверх
www  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #8 - 06. Октября 2006 :: 12:10
Печать  
Snif писал(а) 06. Октября 2006 :: 12:02:
Поигрался с кодировкой. Нечто осмысленное появилось при
obBinaryData.Кодировка=3;

Но, выдается ошибка: "В документах XML допускается только один элемент верхнего уровня."   И это правильно. Возникает вопрос: как в тот XML, который находится в BinaryData добавить элемент верхнего уровня....

Дык ведь, именно это я и имел в виду под корневым элементом. В моем примере SomeData и есть элемент верхнего уровня.
  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #9 - 06. Октября 2006 :: 12:33
Печать  
Сорри, а где этот пример можно посмотреть? В папке 1cpp-2.0.3.1.src  я, например, ничего похожего не нашел.
  
Наверх
www  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #10 - 06. Октября 2006 :: 12:37
Печать  
Код
Выбрать все
БД=СоздатьОбъект("BinaryData");
БД.ПодключитьсяКФайлу("C:\11.xml");
БД.Кодировка=3;
БД.ЗаписатьМПБ();
БД.ЗаписатьСтроку("<?xml version=""1.0"" encoding=""UTF-16"" ?>
|<SomeData>");

Запрос=СоздатьОбъект("ODBCRecordset");
Запрос.ВыполнитьXML("select top 100 * from $Справочник.Товары as Товары (nolock) for xml raw", БД);

БД.ЗаписатьСтроку("
|</SomeData>");
 

  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #11 - 06. Октября 2006 :: 12:41
Печать  
Огромное спасибо, все чудесно работает!
  
Наверх
www  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #12 - 06. Октября 2006 :: 12:45
Печать  
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #13 - 06. Октября 2006 :: 15:07
Печать  
пля, я тебя уважаю Улыбка
« Последняя редакция: 07. Октября 2006 :: 05:17 - spock »  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка  "ВыполнитьXML"  -  "Запрос
Ответ #14 - 09. Октября 2006 :: 05:34
Печать  
spock писал(а) 06. Октября 2006 :: 15:07:
пля, я тебя уважаю Улыбка

..наливай! Смех
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать