Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ТабличноеПоле и ODBCDataProvider.Oracle (число прочтений - 5112 )
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
ТабличноеПоле и ODBCDataProvider.Oracle
31. Октября 2007 :: 06:36
Печать  
Попытался для ТП установить провайдера Oracle.

Если просто для запросов (или DML) к базе Oracle использовать ВыполнитьИнструкцию(), то все работает нормально.
А вот использование такого же текста запроса в Поставщике Oracle не получается.
Запросы отличаются только добавлением алиасов к полям (без этого ругается 1С++).
После добавления алиасов ругается Oracle - ORA-00907: отсутствует правая скобка
или ORA-00936: отсутствует выражение, в зависимости от текста запроса.

Не связано ли это с тем, что в доке по ТП написано "Источником должен быть Oracle8i Database",
а у меня база Oracle 9.2 ?
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #1 - 31. Октября 2007 :: 06:50
Печать  
версия 1с++? (надо попробовать более старые версии, т.к. раньше работало, но на 9-м не испытывал)
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #2 - 31. Октября 2007 :: 06:56
Печать  
DmitrO писал(а) 31. Октября 2007 :: 06:50:
версия 1с++? (надо попробовать более старые версии, т.к. раньше работало, но на 9-м не испытывал)

2.5.0.3
Драйверы использовал "Oracle in OraHome92" или "Oracle in instantclient10_2".
Без использования в ТП оба работают нормально.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #3 - 31. Октября 2007 :: 06:59
Печать  
Читал, что ORA-00907: отсутствует правая скобка не всегда свидетельствует о необходимости скобки.
Это такой стиль объявления ошибок у Оракла загадочный. Нерешительный
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #4 - 01. Ноября 2007 :: 14:19
Печать  
to DmitrO
Что посоветуешь? Забить на ТП с Ораклом?
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #5 - 01. Ноября 2007 :: 19:28
Печать  
Посоветую разобраться.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #6 - 02. Ноября 2007 :: 02:06
Печать  
DmitrO писал(а) 01. Ноября 2007 :: 19:28:
Посоветую разобраться.

Самому очень хочется. Улыбка
Пока имеем то, что при абсолютно одинаковом тексте запроса ИсточникДанныхОракл.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1) отрабатывает нормально, а
ИсточникДанныхОракл.УстТекстЗапроса(ТекстЗапроса) при обновлении ТП выдает вышеописанное.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #7 - 02. Ноября 2007 :: 06:26
Печать  
Имеем, имеем.. раз хочется, дак посмотри какие запросы от поставщика на сервер уходят, включи хотя бы трассировку в ODBC. Наверняка текст запроса просто кривой..
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #8 - 03. Ноября 2007 :: 08:22
Печать  
DmitrO писал(а) 02. Ноября 2007 :: 06:26:
Имеем, имеем.. раз хочется, дак посмотри какие запросы от поставщика на сервер уходят, включи хотя бы трассировку в ODBC. Наверняка текст запроса просто кривой..

Текст запроса одинаковый.
Вот трассировка.

1. Запрос, уходящий из ТП

UCHAR *             0x015D2E80 [      -3] "select * from ( select\ d\ a\ d\ afrom A801_TBL \ d\ aORDER BY SMART_CARD\ d\ a\ d\ aorder by \ d\ a)\ d\ awhere rownum <= 20\ 0"
Вот ошибка
DIAG [HY000] [Oracle][ODBC][Ora]ORA-00936: отсутствует выражение
(936)


2. Просто запрос
UCHAR *             0x00A810E0 [      -3] "\ d\ aselect SMART_CARD AS Карта\ d\ afrom A801_TBL \ d\ aORDER BY SMART_CARD\ d\ a\ 0"
Все нормально
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #9 - 05. Ноября 2007 :: 06:24
Печать  
1. Поставщику данных ODBC нельзя устанавливать запрос с предложением ORDER. Порядок записей должен задаваться ключом порядка.
2. В запросе от поставщика данных отсутствует селект лист, похоже на ошибку поставщика данных.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #10 - 05. Ноября 2007 :: 06:46
Печать  
DmitrO писал(а) 05. Ноября 2007 :: 06:24:
1. Поставщику данных ODBC нельзя устанавливать запрос с предложением ORDER. Порядок записей должен задаваться ключом порядка.
2. В запросе от поставщика данных отсутствует селект лист, похоже на ошибку поставщика данных.

Про ORDER я ступил. Знал же.
А вот про ключ порядка, не подумал, что даже если поле единственное, задавать его нужно.
Все заработало. Спасибо Улыбка
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #11 - 05. Ноября 2007 :: 10:38
Печать  
А что за странные префиксы/приставки в текстах запросов?
select\ d\ a\ d\ afrom A801_TBL \ d\ aORDER BY
  
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #12 - 05. Ноября 2007 :: 11:42
Печать  
м.б. перевод строки?
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле и ODBCDataProvider.Oracle
Ответ #13 - 06. Ноября 2007 :: 06:01
Печать  
trdm писал(а) 05. Ноября 2007 :: 10:38:
А что за странные префиксы/приставки в текстах запросов?
select\ d\ a\ d\ afrom A801_TBL \ d\ aORDER BY

Да, это символы с кодом меньше пробела. Особенность формата лога ODBC - значение параметра надо в одной строке изобразить, поэтому так.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать