Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Программирование _ Delphi + БД

Автор: Beerkoff Понедельник, 24 Сентября 2001, 18:06

Стоит задача работа с БД из приложения, написанного на Дельфи.
Причем сначала это будет просто локальная БД, а потом она будет перенесена на MS SQL или Oracle.
Какую систему для этого лучше использовать BDE, IB, ADO? И какие у каждой из систем преимущества и недостатки?

Автор: Admin Четверг, 27 Сентября 2001, 0:28

Я достаточно широко с БД пока не работал, но т.к. база будет перенесена в другую СУБД, то с IB компоненты, лучше не использовать, т.к. эти компоненты только для СУБД InterBase.
При использовании BDE, его придется устанавливать на каждую машуну, на которой будет работать программа. Также существует ODBC-технология, аналог BDE, но только разработанна фирмой Микрософт, поэтому ODBC встроена с Windows. Но в любом случае BDE кажется работает быстрее и даже немного стабильнее, т.к. это Борланд специально разрабатывал для своих продуктов. Хотя бывает, что и BDE и ODBC перевирает некоторые запросы (по крайней мере так говорят).
C ADO я вообще не сталкивался. Эти компоненты появились, кажется только в 5-ой версии Delphi. Единственное, что я знаю - это то, что это очередная технология Microsoft, которая основана на технологии ActiveX (ADO - ActiveX Data Object что-то в этом роде smile.gif ) по этому работать должна напрямую с ODBC и далее с сетевыми СУБД, в то время как BDE использует для работы с подобными СУБД Sql-Links.
Более подробно я в эту проблему не вникал.

Автор: MoonWolf Четверг, 27 Сентября 2001, 1:01

Т.к. у нас форум по Windows, то и использльзовать лучше то, что встроенно в Windows. ADO использует драйвера DAO, встроенные в Windows (в отличие от BDE). ODBC - устаревшая технология и ADO будет работать через ODBC, если его заставить насильно, хотя это изврат. Правда, компоненты Delphi для BDE помощнее, чем для ADO.
PS. С базами данных работаю недавно и нечасто, так что в чем-то могу ошибатся biggrin.gif

Автор: den[is] Пятница, 21 Декабря 2001, 8:16

Похоже ваша тема наиболее мне близка. К первому вопросу. Биллинговая система.
Протестирована на 300 кб входных данных (каждая строка - сведения о производимом звонке). Летает - зверь. Все сделано в памяти и INI - файлах.
Как всегда подумали, и решили, что системма биллинга будет в дальнейшем посталять до 75MB текстовый файл. По всей вероятности придется выбирать IB 6.0 или MS SQL 7.0. Тогда будет другая проблемма - объем файла.

Автор: pokhlebaev Пятница, 21 Декабря 2001, 9:23

Ну поскольку я имею неплохой опыт работы с большими БД, дам и свой совет.
Если писать под Delphi, то есть два варианта:
1. писать сразу на MS SQL -Delphi с ним работает и проблем перевода потом не будет;
2. писать на BDE - потому что, как верно подметил Админ, она быстрее и надёжнее, кроме того (могу добавить) - она родная для Delphi и с неё перейти на MS SQL намного легче. И ещё, как правильно заметил MoonWolf - компоненты Delphi для BDE действительно намного мощнее, чем не только под ADO но и под все другие БД.

Автор: Beerkoff Пятница, 21 Декабря 2001, 15:58

2 den[is]: биллинг для сотовых? это интересно...
какова в дальнейшем будет нагрузка на эту систему биллинга? будет ли справляться система по быстродействию?

Автор: den[is] Понедельник, 24 Декабря 2001, 5:24

Это обычная телефонны станция, имеющая спутниковые каналы международной связи. К нам поступают данные с оборудования, которое отслеживает все звонки, в том числе транзитные.
Может там компьютер какой-то стаит на станции, или в аппаратуре все хранится, но есть возможность все данные ввыгружать (помесячно, понедельно, каждый день). И задача оперативности не ставится (реального времени) Данные есть - обработали, отсортировали. Сделали выдорку. Местные звонки и межгород - выставили счета, транзитные - сделали счета и на взаимозачет или другим телефонным компаниям. Вот такая задача.
За совет спасибо. Буду на MS SQL ваять.

Автор: Sansa Четверг, 27 Декабря 2001, 16:03

По BDE - оч интересно, особенно "Index out of date" для Paradox smile.gif
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 прикручен ... Изюмительно...

Автор: WhiteWolf Воскресенье, 27 Января 2002, 22:27

Я обычно разрабатываю все на BDE, потому что его легко администрировать и всякие баги отлавливать. А окончательную версию делаю на ADO, потому что она не тр<censored>ет установки (кроме win'95) а работает вроде точно также. Такие компоненты как TDataSet и TTable просто заменяются на аналогичные из панели ADO и все DataControls с ними работают как раньше.

Автор: perch Пятница, 08 Февраля 2002, 20:43

Красиво сделать локальный вариант, который потом легко переносить на клиент-сервер.(не важно какой),красиво не получится. Логика работы разная.
Об тот же курсор сколько шишек набито..Да и хранимые процедуры не использовать грех...
А что касается возможностей, так их у ADO(Я имею ввиду клиент-сервер) больше всего...(последняя уже и глючит не так сильно.)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)