Есть ли прокси DBI, который обрабатывает ограничения SQL и транзакции? - PullRequest
5 голосов
/ 03 декабря 2008

Я ищу прокси DBI (или аналогичный), который поддерживает ограничения SQL и транзакции. Два, о которых я знаю:

  • DBD::Proxy
  • DBD::Gofer

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?), Существует ли какой-нибудь код, который решает эту проблему?

1 Ответ

0 голосов
/ 05 марта 2009

Этот вопрос лучше всего задать в списке рассылки DBI Users, dbi-users@perl.org. Зарегистрируйтесь на http://dbi.perl.org/

Я не уверен, что вы имеете в виду, когда DBD :: Proxy ограничивает запросы. Единственный раз, когда я его использовал, он вообще не изменял запросы.

...