powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / вложенный select с retrival argument
11 сообщений из 11, страница 1 из 1
вложенный select с retrival argument
    #35282679
halfboot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Работаю на PowerBuider 9.0.3, MS SQL 2005, драйвер ODBC.
Есть DW со следующим запросом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  SELECT tin_tp + tax_code,   
         person_type  
    FROM temp_accnt  
   WHERE (tin_tp = :tin AND appeal_status = 'A' ) AND  
         ( tin_tp + tax_code in (  SELECT tin_tp + tax_code  
                                                                    FROM temp_accnt  
                                                                   WHERE (tin_tp = :tin AND appeal_status = 'C')   
                                                                GROUP BY tin_tp + tax_code ))   
GROUP BY tin_tp + tax_code,   
         person_type  
ORDER BY tin_tp + tax_code ASC 

При выполнении выдает ошибку: Ошибка синтаксиса или нарушение доступа.
Запрос отрабатывает, если изменить retrival argument во вложенном select на нужное значение.
С драйверами MSS и OLEDB все работает нормально.
В приложении уже используется ODBC и не хотелось бы переходить на другой драйвер. Что можете посоветовать?
Заранее благодарен.
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35282793
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие запросы PB реально на сервер отсылает в случае с ODBC и например MSS?
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35282829
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
методически проблема довольно интересная... но может проще переписать запрос с использованием join?
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35282854
halfboot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин Марк
В SQL server profiler посмотрел переданный Select. Для MSS это

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT tin_tp + tax_code,   
         person_type  
    FROM temp_accnt  
   WHERE (tin_tp = '01201200110156' AND appeal_status = 'A' ) AND  
         ( tin_tp + tax_code in (  SELECT tin_tp + tax_code  
                                                                    FROM temp_accnt  
                                                                   WHERE (tin_tp = '01201200110156' AND appeal_status = 'C')   
                                                                GROUP BY tin_tp + tax_code ))   
GROUP BY tin_tp + tax_code,   
         person_type  
ORDER BY tin_tp + tax_code ASC 

для ОДБС не увидел. Может быть не там смотрю?
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35283107
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
halfbootдля ОДБС не увидел. Может быть не там смотрю?
Ну можно еще в управлении ODBC включить трассировку и посмотреть что PB за запросы туда шлет - по всей вероятности ошибка где-то на уровне ODBC драйвера возникает...
Можно попробовать изменить запрос каким-либо образом например cast(:tin as varchar(255)) или еще как.
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35283216
halfboot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторнапример cast(:tin as varchar(255))
не помогло.

Запрос изменен следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT distinct a.tin_tp + a.tax_code,   
         a.person_type  
    FROM temp_accnt a, temp_accnt b
WHERE a.tin_tp = :tin and a.appeal_status = 'A' and
  a.tin_tp = b.tin_tp and a.tax_code = b.tax_code and
  b.appeal_status = 'C'
    
ORDER BY a.tin_tp + a.tax_code ASC

В таком виде успешно отработан на ODBC, OLEDB и MSS драйверах.
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35285360
umnik_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не подскажете, вообще, вложенные запросы имеют место быть под 2005?
Вопрос непраздный: переходим с SQL2000 на 2005 под Native Client.
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35285397
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вложенные запросы имеют место быть уже очень давно, так что никуда они не делись. Да и приведенный пример говорит о том, что все в порядке.
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35287691
umnik_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас практически все подзапросы по условию where вышибает с сообщением "ошибка синтаксиса . код 3700".
Причем вышибает именно билдер, SQL отрабатывает как надо.
Может, Native Client виноват? или к нему что-то еще надо?
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35287944
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umnik_netУ нас практически все подзапросы по условию where вышибает с сообщением "ошибка синтаксиса . код 3700".
Причем вышибает именно билдер, SQL отрабатывает как надо.
Может, Native Client виноват? или к нему что-то еще надо?

Это вам в ЖЕК обращаться надо :)
...
Рейтинг: 0 / 0
вложенный select с retrival argument
    #35289381
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЭто вам в ЖЕК обращаться надо :)
А уши, как я понимаю, растут из попытки парсить запрос
Код: plaintext
select field from t where id = :id
и получения типа параметров конструировать запросы типа
Код: plaintext
select id from t where  1 = 2 
Как запрос чуть сложнее (используем подзапросы) - так приплыли...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / вложенный select с retrival argument
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]