Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выполнить "чужой запрос" через ODBC? / 6 сообщений из 6, страница 1 из 1
17.07.2003, 22:35
    #32211556
Artiom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
Есть ODBC'шный датасорс MySQL, таблицы из которого я вставляю как "связанные" в Аксесовскую базу.

Проблема в том, что я не знаю, как написать запрос к MySQL минуя парсер и все остальные причиндалы Аксеса. Т.е. я не хочу чтобы Аксес делал запросы _вместо_ мускула, ибо как разультат крайне плачевный, особенно по скорости, не говоря уж о различиях в синтаксисе и функционале.

Другими словами, если есть таблицы "A" и "B" в MySQL, которые доступны через ODBC, я хочу уметь писать в Аксесе:

select A.*
from A left join B
on A.id = B.aid and B.b regexp "^параметр_взятый_из_Аксес$"
where B.id is null

Как это сделать?
...
Рейтинг: 0 / 0
17.07.2003, 22:41
    #32211558
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
Сделать это просто, создав "запрос к серверу". Подробности в хелпе Access.
...
Рейтинг: 0 / 0
18.07.2003, 00:22
    #32211575
Artiom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
Отлично, то что нужно (я умею в хэлпе искать, но обычно требуется наводка :)

Собсно, осталось лишь выяснить, как этот запрос параметаризовать? Я посмотрел QueryDef.Parameters - вроде похоже на правду. Но разве нельзя сделать не-программистским способом? Например, в этом серверном SQL написать что-то вроде:

select * from A where aa like ":myarg"

или еще как-нибудь? Это для того, чтобы потом в обычном квери сделать:

select * form server_query(myparam)

?
...
Рейтинг: 0 / 0
18.07.2003, 08:15
    #32211645
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
Текст "запроса к серверу", на сколько я знаю, уходит на сервер без каких-либо попыток Access проанализировать его содержание. Поэтому параметры в таком запросе вещь малодостижимая.
...
Рейтинг: 0 / 0
18.07.2003, 15:07
    #32212234
Artiom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
Таким образом, остается динамически его создавать, как я понимаю.
А ODBCDirect это оно и есть?
Я же могу его в том же Form_Current все время заново создавать (через QueryDef) потом как-то присобачивать к выпадающему списку (это всё таже задача :)), чтобы по Requery он сам его выполнял?
Непонятно только что проставлять в filed_name.RowSource. В данный момент там написан запрос строкой: "select ... ", но согласно хэлпа там можно указывать имя запроса. Но как мне сослаться на QueryDef, который я в коде (в том же Form_Current) создаю?
...
Рейтинг: 0 / 0
18.07.2003, 15:46
    #32212310
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполнить "чужой запрос" через ODBC?
> Таким образом, остается динамически его создавать, как я понимаю.
> А ODBCDirect это оно и есть?

В общем - да.

> Я же могу его в том же Form_Current все время заново создавать
> (через QueryDef) потом как-то присобачивать к выпадающему списку
> (это всё таже задача :)), чтобы по Requery он сам его выполнял?
> Непонятно только что проставлять в filed_name.RowSource.
> В данный момент там написан запрос строкой: "select ... ",
> но согласно хэлпа там можно указывать имя запроса.

Имя и проставляй.

> Но как мне сослаться на QueryDef, который я в коде
> (в том же Form_Current) создаю?

Можешь сделать один такой запрос из среды, подставить его в качестве истоника, а потом из кода только менять у него свойство SQL с последующим Requery.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выполнить "чужой запрос" через ODBC? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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