Я ищу прокси DBI (или аналогичный), который поддерживает ограничения SQL и транзакции. Два, о которых я знаю:
DBD :: Proxy
Проблема, с которой я столкнулся с DBD::Proxy
, заключается в том, что ее сервер DBI::ProxyServer
не только ограничивает запросы, поступающие по сети (что я хочу), но также ограничивает запросы, генерируемые внутренне драйвером базы данных. Так, например, с DBD::Oracle
ping больше не работает, как и многие другие запросы, которые он сам выдает.
Я не могу просто позволить им, потому что:
- Это довольно мало внутренних знаний о DBD :: Oracle, и это было бы довольно хрупко.
- Белый список -
query_name => 'sql'
, где query_name
- это первое слово из всего, что передано prepare
. DBD :: Oracle имеет много внутренних запросов, и первое слово многих из них - select
(duh).
Так что, похоже, я не могу использовать DBD::Proxy
DBD :: Gofer
Я не пробовал DBD :: Gofer, потому что документы, кажется, говорят мне, что я не могу использовать транзакции через него:
ТРУДНОСТИ
...
Вы не можете использовать транзакции
Только AutoCommit. Транзакции не поддерживаются.
Итак, прежде чем писать свой собственный прокси-сервер для конкретного приложения (используя RPC::PLServer
?), Существует ли какой-нибудь код, который решает эту проблему?