Стоит задача работа с БД из приложения, написанного на Дельфи.
Причем сначала это будет просто локальная БД, а потом она будет перенесена на MS SQL или Oracle.
Какую систему для этого лучше использовать BDE, IB, ADO? И какие у каждой из систем преимущества и недостатки?
Я достаточно широко с БД пока не работал, но т.к. база будет перенесена в другую СУБД, то с IB компоненты, лучше не использовать, т.к. эти компоненты только для СУБД InterBase.
При использовании BDE, его придется устанавливать на каждую машуну, на которой будет работать программа. Также существует ODBC-технология, аналог BDE, но только разработанна фирмой Микрософт, поэтому ODBC встроена с Windows. Но в любом случае BDE кажется работает быстрее и даже немного стабильнее, т.к. это Борланд специально разрабатывал для своих продуктов. Хотя бывает, что и BDE и ODBC перевирает некоторые запросы (по крайней мере так говорят).
C ADO я вообще не сталкивался. Эти компоненты появились, кажется только в 5-ой версии Delphi. Единственное, что я знаю - это то, что это очередная технология Microsoft, которая основана на технологии ActiveX (ADO - ActiveX Data Object что-то в этом роде ) по этому работать должна напрямую с ODBC и далее с сетевыми СУБД, в то время как BDE использует для работы с подобными СУБД Sql-Links.
Более подробно я в эту проблему не вникал.
Т.к. у нас форум по Windows, то и использльзовать лучше то, что встроенно в Windows. ADO использует драйвера DAO, встроенные в Windows (в отличие от BDE). ODBC - устаревшая технология и ADO будет работать через ODBC, если его заставить насильно, хотя это изврат. Правда, компоненты Delphi для BDE помощнее, чем для ADO.
PS. С базами данных работаю недавно и нечасто, так что в чем-то могу ошибатся
Похоже ваша тема наиболее мне близка. К первому вопросу. Биллинговая система.
Протестирована на 300 кб входных данных (каждая строка - сведения о производимом звонке). Летает - зверь. Все сделано в памяти и INI - файлах.
Как всегда подумали, и решили, что системма биллинга будет в дальнейшем посталять до 75MB текстовый файл. По всей вероятности придется выбирать IB 6.0 или MS SQL 7.0. Тогда будет другая проблемма - объем файла.
Ну поскольку я имею неплохой опыт работы с большими БД, дам и свой совет.
Если писать под Delphi, то есть два варианта:
1. писать сразу на MS SQL -Delphi с ним работает и проблем перевода потом не будет;
2. писать на BDE - потому что, как верно подметил Админ, она быстрее и надёжнее, кроме того (могу добавить) - она родная для Delphi и с неё перейти на MS SQL намного легче. И ещё, как правильно заметил MoonWolf - компоненты Delphi для BDE действительно намного мощнее, чем не только под ADO но и под все другие БД.
2 den[is]: биллинг для сотовых? это интересно...
какова в дальнейшем будет нагрузка на эту систему биллинга? будет ли справляться система по быстродействию?
Это обычная телефонны станция, имеющая спутниковые каналы международной связи. К нам поступают данные с оборудования, которое отслеживает все звонки, в том числе транзитные.
Может там компьютер какой-то стаит на станции, или в аппаратуре все хранится, но есть возможность все данные ввыгружать (помесячно, понедельно, каждый день). И задача оперативности не ставится (реального времени) Данные есть - обработали, отсортировали. Сделали выдорку. Местные звонки и межгород - выставили счета, транзитные - сделали счета и на взаимозачет или другим телефонным компаниям. Вот такая задача.
За совет спасибо. Буду на MS SQL ваять.
По BDE - оч интересно, особенно "Index out of date" для Paradox
To MoonWolf
DAO не просто более новая версия ODBC. Он заточен под *.mdb. Запросы к другим базам транслируются через ODBC.
To Beerkoff
Все зависит от конфигурации машин в твоей сети. Если возможна работа в 16-ти разрядной среде (н-р Win31), то однозначно ODBC. DAO на 16 разрядов не существует. C ADO работать удобнее, но DAO быстрее (разумеется, на проектах, где это можно заметить - я проверял, составляя сводный отчет из 64 таблиц по 3000-7000 записей в каждой). Тем более, что имеются компоненты, для работы через DAO.
Если система с дальним прицелом - ориентируйся на что-нить виндовое (ODBC, DAO, ADO), а лучше, ей богу сразу на SQL Server. С Oracle не работал, но судя по знакомому - на нем простых проектов не сваяешь. Не для того он.
От себя добавлю. В текущий момент я таю от Bold for Delphi... М-м-м-м... Вещь... К Rational Rose прикручен ... Изюмительно...
Я обычно разрабатываю все на BDE, потому что его легко администрировать и всякие баги отлавливать. А окончательную версию делаю на ADO, потому что она не тр<censored>ет установки (кроме win'95) а работает вроде точно также. Такие компоненты как TDataSet и TTable просто заменяются на аналогичные из панели ADO и все DataControls с ними работают как раньше.
Красиво сделать локальный вариант, который потом легко переносить на клиент-сервер.(не важно какой),красиво не получится. Логика работы разная.
Об тот же курсор сколько шишек набито..Да и хранимые процедуры не использовать грех...
А что касается возможностей, так их у ADO(Я имею ввиду клиент-сервер) больше всего...(последняя уже и глючит не так сильно.)
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)