Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Компонет, работающий с БД

621
20 июня 2004 года
Бешеный кролик
151 / / 23.03.2004
Всем привет. Пишу компонент (наследник TTreeView), который должен обращаться к базе данных с помощью SQL-запросов.
Пока мне в голову пришло только объявить объект TQuery, членом класса и с помощью него выполнять запросы. Хочу спросить - хороший ли это способ :)?
10
20 июня 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Бешеный кролик
Всем привет. Пишу компонент (наследник TTreeView), который должен обращаться к базе данных с помощью SQL-запросов.
Пока мне в голову пришло только объявить объект TQuery, членом класса и с помощью него выполнять запросы. Хочу спросить - хороший ли это способ :)?


Вывод дерева, связанного с базой данных - достаточно трудоемкая задача, и очень часто существующие компоненты работают или не очень быстро, или не имеют нужных возможностей. Например, мы на работе решили, что лучше всего писать каждый раз специализированный код, благо задача вывода дерева встречается не очень часто.
А использовать внутренний TQuery - не очень хорошая затея. Если компонент пишется для себя, такой подход можно считать "специализированным", и соответственно, "правильным". Если же предполагается выложить компонент для свободного скачивания где-нить на Torry, привязка к BDE сильно сократить круг возможных пользователей - слишком мало программистов сейчас используют BDE.

621
20 июня 2004 года
Бешеный кролик
151 / / 23.03.2004
Спасибо за подробный ответ. Я уже реализовал связь дерева с БД, однако задача такова, что мне нужно несколько раз (5 или 6) использовать этот алгоритм в моей проге. И я замучился вносить исправления одновременно во все 5 реализаций. Поэтому-то и решил оформить дерево в виде компонента. Выкладывать, конечно-же, мне его никуда не нужно.
А не могли бы вы несколько расширить вторую часть вашего ответа. Дело в том, что ни с чем, кроме как с BDE я до сих пор не работал (и вообще я чайник :)). Какие есть другие способы (в двух словах) и в чем их преимущества. Т.е. я понимаю, что переносимость больше, а больше ли скорость (скорость для меня достаточно критична)? Еще раз спасибо.
10
20 июня 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Бешеный кролик
Дело в том, что ни с чем, кроме как с BDE я до сих пор не работал (и вообще я чайник :)). Какие есть другие способы (в двух словах) и в чем их преимущества. Т.е. я понимаю, что переносимость больше, а больше ли скорость (скорость для меня достаточно критична)? Еще раз спасибо.


Дело в том, что скорость работы самих компонентов не очень критична, если работа ведется с сервером базы данных. Сервер БД - вещь сама по себе медленная, поэтому небольшое преимущество в скорости работы тех или иных компонентов полностью скрадывается задержкой ответов сервера.

Вообще, есть два вида компонентов работы с БД.

Одни, вроде BDE или ADO, позволяют работать в несколькими базами данных, задавая соответствующие настройки в параметрах подключения. Как правило, эти компоненты позволяют единообразно обращаться как к локальным, так и серверным базам данных. Главный недостаток: в погоне за универсальностью, они, как правило, нивелируют возможности тех или иных баз данных до некоторого усредненного знаменателя, и с их помощью не всегда удается задействовать некоторые специфические возможности того или иного сервера. Например, BDE просто отвратительно работает с Oracle.

Другой тип БД-компонентов работает только с одной базой данных, но делает это, как правило, от души. Во-первых, не требуется установка каких-либо дополнительных библиотек или прокладок для обращения к базе. Во-вторых специфические возможности сервера или настольной базы данных используются на все сто. Для многих популярных баз данных можно выбирать между несколькими реализациями, например, для Oracle есть DOA, ODAC и NCOCI.

Еще можно сказать, что BDE является "родной" реализацией для работы с настольной БД Paradox, а ADO - для MS Jet DB (Access, LDAP) и MS SQL Server.

621
20 июня 2004 года
Бешеный кролик
151 / / 23.03.2004
[QUOTE]Originally posted by smartsoft
Спасибо большое!
Чувствую, что придется мне все-таки почитать разные книжки умные. Не обойтись без этого.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог