![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что выбрать: AdoDataSet, ADOQuery, ADOCommand,...? [D7]
WHR © (2010-06-21 18:06:00)Всегда пользовался простой схемой: ADOConnection -> ADOQuery1..10...
т.к. с помощью ADOQuery можно выполнять все запросы: Insert, Select...
Но, судя по отзывам, ADOQuery не так хорош. Как-же тогда организовать работу в программе?
- Выполнять все запросы с помощью AdoCommand? А, в случае с Select-ом делать:
AdoDataSet.RecordSet := AdoCommand.Execute;
Или лучше AdoDataSet - для Select, остальное - AdoCommand?
Как быть с ADOConnection? Лучше всё-таки он один - общий? Или отдельно для каждого компонента строка соединения?
sniknik (2010-06-21 22:02:00) [21]> Да было же обсуждение, когда после замены на Dataset скорость возрасла в два раза.
было, а еще было когда замена на AdoCommand ускорила запись на порядок (правда и там и там не только это, еще какие то действия были, не помню).
но кому это нужно? если парой банальных фраз про овощи в свое время, и справку источник знаний можно "убить" весь "воспитательный" эффект, и вернуть начинающих в "старое болото привычных компонент".
Anatoly Podgoretsky (2010-06-21 21:47:00) [22]> Игорь Шевченко (21.06.2010 20:52:11) [11]
Книга источник знаний, а справка ее подруга.
Anatoly Podgoretsky (2010-06-21 21:45:00) [23]> WHR (21.06.2010 19:33:07) [7]
Зачем теряешь время, сразу приступай к SQL-Server
Anatoly Podgoretsky (2010-06-21 21:43:00) [24]> sniknik (21.06.2010 19:21:05) [5]
Да было же обсуждение, когда после замены на Dataset скорость возрасла в два
раза.
Игорь Шевченко (2010-06-21 20:52:00) [25]sniknik © (21.06.10 19:23) [6]
> т.е. трудно его сейчас правильно употребить.
если справку почитать, то можно и правильно употребить. Справка - она источник знаний
WHR (2010-06-21 19:41:00) [26]Нет, именно - SQL-Server.
Всё - огромная всем благодарность!
Вопросов больше нет!
sniknik (2010-06-21 19:39:00) [27]для SQL-Server'a (если это mssql) оно в принципе - без вариантов. все сторонние так или иначе работают либо через него либо через его компоненты/драйвера (OLEDB).
а вот если под "SQL-Server'a" подразумевается что-то другое то тут такой простор для творчества... за год не описать.
Ega23 (2010-06-21 19:38:00) [28]
> Существуют более продуманные сторонние компоненты?
Считай, что для MSSQL ADO - самый верный и православный DAC.
WHR (2010-06-21 19:33:00) [29]Ясно, спасибо!
И, на будущее, хотел спросить:
сейчас я работаю с Access - учусь, дальше планирую приступить к изучению SQL-Server'a. ADO, в принципе - ещё актуально?
Существуют более продуманные сторонние компоненты?
sniknik (2010-06-21 19:23:00) [30]> будучи употреблен надлежащим образом в надлежащее время.
беда в том, что то для чего его делали уже история, и она вряд ли повторится (перенос из BDE). т.е. трудно его сейчас правильно употребить.
sniknik (2010-06-21 19:21:00) [31]>> Или лучше AdoDataSet - для Select, остальное - AdoCommand?
select это частность, а адодатасет для всего возвращающего данные (рекордсет), неважно что это sql команда, процедура, функция, командный пакет.
адокомманд аналогично, только для всего не возвращающего данные (рекордсет).
хотя, тут тонкость, он то как раз и с возвращающимися данными может работать, но только нет встроенного их обработчика как у адодатасета, но тем не менее именно это иногда бывает удобно (ну например получить цепочку рекордсетов, или получить исключение "изнутри" с какого-то этапа, которые любой обработчик сделанный не специально под это просто пропустит)
> А чём недостаток ADOQuery?
скрестили значит ежа с ужом... а после спрашивают "а в чем его недостаток?".
> ничего конкретного я не нашёл, просто как правило - не надо использовать.
а чего конкретного хочешь? он сам не конкретный, это просто ничего не делающая оболочка меняющая управление оригиналами. т.е. изучая его ты изучаешь не то как работает адо, а представления авторов адоквери (принесенные из BDE) как оно должно по их мнению работать.
Игорь Шевченко (2010-06-21 19:14:00) [32]
> Но, судя по отзывам, ADOQuery не так хорош
Не слушай отзывы. Всякий овощ приносит пользу, будучи употреблен надлежащим образом в надлежащее время.
Ega23 (2010-06-21 18:49:00) [33]
> Отдельный компонент ADOConnection? И "поток" - Вы просто
> так называете, или выполняете все запросы в отдельном потоке?
На каждый Thread, который работает с БД, иметь собственный коннект.
Как выполнять запросы, в отдельном треде или в основном - это уже зависит от задачи.
> А чём недостаток ADOQuery? - ничего конкретного я не нашёл,
> просто как правило - не надо использовать.
Пользуйтесь поиском, эта тема обсасывалась миллионы раз, по новой объяснять уже всем лениво до невозможности.
WHR (2010-06-21 18:19:00) [34]Благодарю! А чём недостаток ADOQuery? - ничего конкретного я не нашёл, просто как правило - не надо использовать.
> Отдельный коннект на каждый поток.
Отдельный компонент ADOConnection? И "поток" - Вы просто так называете, или выполняете все запросы в отдельном потоке?
Ega23 (2010-06-21 18:12:00) [35]
> Или лучше AdoDataSet - для Select, остальное - AdoCommand?
Я именно так делаю.
> Как быть с ADOConnection? Лучше всё-таки он один - общий?
> Или отдельно для каждого компонента строка соединения?
Отдельный коннект на каждый поток.