Какие варианты для приложения Delphi для перехода от BDE при использовании базы данных Oracle - PullRequest
7 голосов
/ 24 мая 2011

У нас есть приложение Delphi 5, подключающееся к базе данных Oracle 8i.

Большая часть логики размещается в базе данных как хранимые процедуры.В настоящее время мы используем Borland Database Engine (BDE) для подключения к Oracle через клиент OCI 9.2.

Это приложение изначально было написано в 96 году с использованием Delphi 1, а затем обновлено до Delphi 5 в 99 году.

План заключается в обновлении до клиента XE и Oracle 11g.

Какие есть варианты просто заменить BDE чем-то другим и свести усилия к минимуму?

До сих пор я видел:

) Я не рассматриваю DBExpress, так как не верю, что он будетиметь производительность, которая нам нужна.

Важны следующие вещи:

  • простота обновления, например, мастер или другой инструмент для преобразования компонентов DBE,
  • ХорошоПроизводительность.

Я склоняюсь к devart, поскольку у них есть инструмент миграции (хотя он выполняет только частичную работу) и у них есть прямая опция TCP для подключения к базе данных без необходимости клиента.

Ответы [ 2 ]

4 голосов
/ 24 мая 2011

Вам нужно будет узнать о различиях между BDE и другими архитектурами.Планируете ли вы перейти на dbExpress или нет, вы должны прочитать и изучить этот технический документ .

Архитектура dbExpress - это намеренная архитектура, разработанная для устранения критических недостатков не только в самой низкой версии BDE.уровни, но также и на его верхних уровнях (компоненты TTable / TQuery) и архитектура.Понимание причин этих изменений и ограничений в BDE, которые они затрагивают, является ключевым элементом при переносе вашего приложения с BDE на что угодно.

Что касается вашего утверждения о производительности, мне нравится видеть людейиспользовать реальные данные, а не формировать мнения, основанные на махании рукой, или прилагательные, такие как «быстрые», приданные объектам, без экспериментальной поддержки.

Я лично не использовал DOA, но если бы я не собирался использовать dbExpressЭто будет следующая вещь, которую я бы оценил, для сред только для Oracle.тем не менее, я бы не предположил, что dbExpress работает медленнее, без тестирования как в моей собственной среде.

Обновлено: Изначально я упоминал Delphi OCI, но оказывается, что он устарел, ине очень активный. DelphiOCI проект на sourceforge, работает с Delphi 7 и более ранними версиями, а не с Unicode Delphi и только с более старыми (Oracle 8i и более ранними) версиями Oracle ... Если это удалось в моей среде, яЯ бы попробовал это.О, и это GPL.Хорошо.Не так здорово.

1 голос
/ 24 мая 2011

И ODAC, и DOA (хотя разработка DOA в последнее время довольно устарела) предоставят вам доступ к функциям Oracle dbExpress, а другие универсальные библиотеки доступа к БД обычно не разрешают доступ к ним. Если ваше приложение поддерживает только Oracle и не нуждается в поддержке других БД, имхо лучше использовать возможности Oracle полностью. Простота переноса зависит от того, как вы написали код компонента BDE. В ODAC есть инструменты, упрощающие перенос BDE (хотя я никогда не использовал их), а в AFAIK DOA - нет. DOA TOracleQuery не является потомком TDataset и, следовательно, не является прямой заменой TQuery, хотя он имеет меньшие накладные расходы и, следовательно, имеет хорошую производительность, тогда как TOracleDaset является единственным компонентом, подобным набору данных. Я бы не использовал прямое TCP-соединение ODAC с Oracle без клиента Oracle, но для очень особых нужд - это неподдерживаемое (для Oracle) соединение, я бы предпочел использовать Oracle Instant Client, если занимает небольшое (относительно ...) пространство требуется, по крайней мере, это полностью поддерживаемая опция, и при необходимости вы (или ваши клиенты) можете открыть запрос на поддержку Oracle.

...