powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление RowId в запросе. Oracle + Ole DB + Ado
12 сообщений из 12, страница 1 из 1
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884002
Dremlin13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД Oracle 9.XX, Delphi 6 + upd2 + OLE DB.

В общем запрос в компоненте TAdoQuery такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select
  count(CT.RowId) TranCount
from
  Prime.Ctransactions CT
where
  CT.Postdate between To_Date(:pBeginDate, 'DD.MM.YYYY')  and 
                      To_Date(:pEndDate, 'DD.MM.YYYY')
group by
  CaccSerNo
Возникает ошибка: "ORA-00979 not a Group By Expression".
Посмотрел в системном представлении v$sqlarea и обнаружил, что запрос имеет вид:
Код: plaintext
1.
select count(CT.RowId) TranCount, CT.ROWID
from  Prime.Ctransactions CT  where  CT.Postdate between To_Date(:V00001, 'DD.MM.YYYY')  and   To_Date(:V00002, 'DD.MM.YYYY')  group by    CaccSerNo  

Т.е. автоматически добавилось поле CT.RowId.
Кто знает как от этого избавиться?
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884048
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что Оракл позволяет делать группировку не включая поле группировки в выборку и включать в выборку поле, которое не участвует в группировки, а смысл такого действия тогда какой?
Ответ не требуется, поскольку офтопик для данной конференции, а конференция по Ораклу еще не стала синонимом Дельфи.
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884245
Dremlin13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly PodgoretskyА что Оракл позволяет делать группировку не включая поле группировки в выборку
А почему нет. Почему нельзя сделать группировку без выборки этого поля в операторе select. Это допускается не только Oracle'ом, но и SQL Server'ом. Это вообще стандарт SQL-92,03.

Anatoly Podgoretskyи включать в выборку поле, которое не участвует в группировки, а смысл такого действия тогда какой?
Такое не допускается везде...
Anatoly PodgoretskyОтвет не требуется, поскольку офтопик для данной конференции, а конференция по Ораклу еще не стала синонимом Дельфи.
Уважаемый вопрос состоит не в том, что может или не может сделать Oracle, а в том, что при использовании Ado + OleDB + Oracle в выборке, описанной выше, неявно появляется поле ROWID в операторе "select". Это поле выбираю не я, оно автоматом подставляется. Я же описал, что при этом возикает ошибка.
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884272
ScaleFactor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй count делать не от RowID, а от чего-нить другого, хоть count(*)
может поможет :)
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884357
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dremlin13Уважаемый вопрос состоит не в том, что может или не может сделать Oracle, а в том, что при использовании Ado + OleDB + Oracle в выборке, описанной выше, неявно появляется поле ROWID в операторе "select". Это поле выбираю не я, оно автоматом подставляется. Я же описал, что при этом возикает ошибка.
Я же говорил, что ответ не нужен.
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884492
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dremlin13Кто знает как от этого избавиться?
Если мне не изменяет память, в конференции Oracle тебе уже отвечали, как избавиться в том числе и от этого - выкинуть ADO. Заодно избавишься и вот от этого уродства: To_Date(:pBeginDate, 'DD.MM.YYYY').
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884503
Попробуй LockType смени.
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884679
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dremlin13Возникает ошибка: "ORA-00979 not a Group By Expression"
Oracle OLEDB провайдер добавляет ROWID для уникальной идентификации записи, если рекордсет LockType <> ltReadOnly. Это он делает прозрачно для пользователя и указанная ошибка до пользователя никогда не доходила. Каким образом вы зарегистрировали эту ошибку ? Exception ?

удачи,
Дмитрий
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33884692
Dmitry Arefiev

+1
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #33885766
Dremlin13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗаглянувшийПопробуй LockType смени.
Ок. Спасибо. Все заработало.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #40001401
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dremlin13
ЗаглянувшийПопробуй LockType смени.

Ок. Спасибо. Все заработало.

Всем привет!

кто подскажет, чем это может грозить ?
столкнулись точно с такой же проблемой, win server 2016 + delphi xe + ado + oledb + oracle 19c = во множество запросов стали добавляться ROWID, хотя в явном виде их в запросе из delphi конечно же нет. Парсер оракл стал грязно ругать на жуткое количество синтаксических ошибок... как быть ? Кода много, очень много. ADO.LockType стоит ltOptimistic, нагрузка на Оракл большая, как бы не возникло больших проблем с блокировками ? Ну и осложняется тем, что чукча не писатель, чукча пока только читатель и полу-дебагер(
...
Рейтинг: 0 / 0
Добавление RowId в запросе. Oracle + Ole DB + Ado
    #40001403
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ACHTUNG!
зомби...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление RowId в запросе. Oracle + Ole DB + Ado
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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