Многократный доступ к базе данных с Delphi - PullRequest
3 голосов
/ 26 ноября 2009

Я 10-летний пользователь FirebirdSQL, и теперь у меня есть клиент, желающий использовать MSSQL 2008. Я не хочу начинать пламенные войны с этим, я просто хочу ваш совет по технологии доступа к данным.

Я использую Delphi MMVI.

Использовать нативный ADO или DBExpress? Использовать третью часть?

Какие-нибудь еще слова мудрости?

Спасибо

Да, я знаю, что мне придется переписать процедуры, триггеры. Я надеюсь, что это стоит ...

Ответы [ 7 ]

7 голосов
/ 26 ноября 2009

Для компонентов базы данных я никогда не видел более быстрых и стабильных компонентов, чем компоненты, взятые из DevArt (CoreLab)

У них есть UniDac Универсальный компонент прямого доступа, который поддерживает (Oracle, SQL Server, MySql, InterBase / Firebird, PostgreSql и ODBC (который предлагает DB2, Sybase MS Access и любой другой ODBC)

7 голосов
/ 26 ноября 2009

Несмотря на то, что я ежедневно использую компоненты SQLDirect, AnyDAC кажется популярным и хорошо разработанным решением: http://www.da -soft.com / anydac /

3 голосов
/ 26 ноября 2009

Я написал программу с использованием сервера базы данных преимуществ и очень легко переключил ее на MSSQL с помощью компонентов ado. Вы можете использовать файл udl, чтобы указать соединение odbc, чтобы таким образом относительно легко переключаться между двумя различными типами баз данных. Пока вы используете простые соединения с базой данных, например простые операторы SQL или таблицы, у вас не должно быть особых проблем с переключением. Это может быть сложнее, если вы регулярно используете процедуры и триггеры. тем не менее, у меня нет опыта работы с dbexpress, поэтому я не уверен, как он сравнивается.

1 голос
/ 30 ноября 2009

Для меня ADO делает лучший выбор для MS SQL. Он был разработан Microsoft и очень стабилен. Вы могли бы потратить время на более естественный подход, но я обнаружил, что мои проекты, созданные с помощью ADO, не требуют большого количества изменений (если таковые имеются) для поддержки различных версий MSSQL Server. ADO также поддерживает драйверы ODBC, поэтому к устаревшим базам данных также можно получить доступ. Можно даже взять файл с разделителями-запятыми и запросить его, как если бы он был таблицей с использованием ADO (хотя производительность ужасна, поскольку каждый запрос становится полным сканированием таблицы).

1 голос
/ 26 ноября 2009

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

До недавнего времени мы использовали ODBCExpress , который очень хорошо справлялся с упаковкой ODBC в компоненты Delphi TDataSet, и, конечно, в каждой базе данных есть драйвер ODBC. К сожалению, этот продукт больше не поддерживается с Unicode Delphi 2009, поэтому он подойдет для Delphi 2006, но только если вы в какой-то момент перейдете на более позднюю версию Delphi. Сказав, что я пытаюсь перевести его на D2009 с помощью оригинального разработчика.

Поэтому ADO будет очевидным выбором, так как большинство баз данных также имеют драйвер ADO, и в наши дни он является частью Delphi через компоненты dbGo. Но может показаться, что dbExpress популярен и хорошо воспринимается, и, пока существуют драйверы для полной поддержки выбранных вами баз данных, это, кажется, самый популярный выбор.

1 голос
/ 26 ноября 2009

У нас был очень хороший опыт работы с DBExpress для SQL и DOA для Oracle. Если вы работаете с оракулом, DOA - это путь (намного быстрее, чем BDE и ADO).

1 голос
/ 26 ноября 2009

Я бы порекомендовал DBExpress.

...