Я подключаюсь к Jet 4 DB через ODBC.Jet DB использует сквозные запросы к базе данных Oracle.Пока это работает (не может получить прямой доступ к pt-запросам, но создание представления по запросу делает свое дело).
Мне нужно некоторое подмножество данных, возвращаемых p-ts.Параметры будут лучшими, но они не поддерживаются.
Два вопроса:
1) Кажется, что Jet действительно может выдвигать некоторые предложения where в Oracle.Например, у меня есть сквозной запрос, который возвращает 100 тыс. Строк.Вид на pt с одним выражением мерцания (например, "district = '1010'") очень быстрый, поэтому обработка, похоже, происходит в Oracle.Добавление дополнительных предложений может замедлить выполнение запроса до обхода, зацикливаясь на минуты с высокой загрузкой ЦП.Есть ли какая-либо документация о том, что передается и что делается на стороне Jet?
2) Существует множество руководств по созданию динамических сквозных запросов с помощью VBA / Access.Возможно ли сделать это (или что-нибудь в этом роде) с помощью Jet, доступного через ODBC?
Благодарю Мартина
Редактировать: Извините, что так неясно.
У меня есть инструмент отчетности, который обращается к базе данных Jet через ODBC.База данных Jet содержит некоторые данные и несколько сквозных запросов к базе данных Oracle.Типичным вариантом использования может быть создание отчета для данного отдела и определенной даты с использованием данных из Jet и Oracle.В принципе это работает очень хорошо.
Проблема в том, что сквозные запросы не могут содержать никаких параметров.Сквозной запрос работает как представление, поэтому я могу просто выполнить «select * from pt_query, где dep = 'a' и date = somedate".Jet, однако, загружает все строки из pt и выполняет полное сканирование на стороне клиента.Это невероятно медленно для просмотра 100-строк, и мне нужно найти способ избежать этого.
Для некоторых простых выборок Jet, похоже, позволяет Oracle выполнять тяжелую работу и не загружает все строки, поэтому мой вопрос 1.
Если это не такработать, мне нужно найти способ заставить Jet загружать только те данные, которые мне нужны от Oracle для данного запроса.
Я знаю, что могу изменять pts через Access VBA, но я подключаюсь только через ODBC, поэтому я могу только передавать SQL в Jet, а не вызывать vb api (если только это не возможно для встроенного VB в операторе SQL),