Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];

Вниз

Что выбрать: AdoDataSet, ADOQuery, ADOCommand,...?   Найти похожие ветки 

 
WHR   (2010-06-21 18:06) [0]

Всегда пользовался простой схемой: ADOConnection -> ADOQuery1..10...
т.к. с помощью ADOQuery можно выполнять все запросы: Insert, Select...
Но, судя по отзывам, ADOQuery не так хорош. Как-же тогда организовать работу в программе?
- Выполнять все запросы с помощью AdoCommand? А, в случае с Select-ом делать:
AdoDataSet.RecordSet := AdoCommand.Execute;
Или лучше AdoDataSet - для Select, остальное - AdoCommand?
Как быть с ADOConnection? Лучше всё-таки он один - общий? Или отдельно для каждого компонента строка соединения?


 
Ega23 ©   (2010-06-21 18:12) [1]


> Или лучше AdoDataSet - для Select, остальное - AdoCommand?


Я именно так делаю.


> Как быть с ADOConnection? Лучше всё-таки он один - общий?
>  Или отдельно для каждого компонента строка соединения?


Отдельный коннект на каждый поток.


 
WHR   (2010-06-21 18:19) [2]

Благодарю! А чём недостаток ADOQuery? - ничего конкретного я не нашёл, просто как правило - не надо использовать.

> Отдельный коннект на каждый поток.
Отдельный компонент ADOConnection? И "поток" - Вы просто так называете, или выполняете все запросы в отдельном потоке?


 
Ega23 ©   (2010-06-21 18:49) [3]


> Отдельный компонент ADOConnection? И "поток" - Вы просто
> так называете, или выполняете все запросы в отдельном потоке?


На каждый Thread, который работает с БД, иметь собственный коннект.
Как выполнять запросы, в отдельном треде или в основном - это уже зависит от задачи.


> А чём недостаток ADOQuery? - ничего конкретного я не нашёл,
>  просто как правило - не надо использовать.


Пользуйтесь поиском, эта тема обсасывалась миллионы раз, по новой объяснять уже всем лениво до невозможности.


 
Игорь Шевченко ©   (2010-06-21 19:14) [4]


> Но, судя по отзывам, ADOQuery не так хорош


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


 
sniknik ©   (2010-06-21 19:21) [5]

>> Или лучше AdoDataSet - для Select, остальное - AdoCommand?
select это частность, а адодатасет для всего возвращающего данные (рекордсет), неважно что это sql команда, процедура, функция, командный пакет.

адокомманд аналогично, только для всего не возвращающего данные (рекордсет).
хотя, тут тонкость, он то как раз и с возвращающимися данными может работать, но только нет встроенного их обработчика как у адодатасета, но тем не менее именно это иногда бывает удобно (ну например получить цепочку рекордсетов, или получить исключение "изнутри" с какого-то этапа, которые любой обработчик сделанный не специально под это просто пропустит)  

> А чём недостаток ADOQuery?
скрестили значит ежа с ужом... а после спрашивают "а в чем его недостаток?".

> ничего конкретного я не нашёл, просто как правило - не надо использовать.
а чего конкретного хочешь? он сам не конкретный, это просто ничего не делающая оболочка меняющая управление оригиналами. т.е. изучая его ты изучаешь не то как работает адо, а представления авторов адоквери (принесенные из BDE) как оно должно по их мнению работать.


 
sniknik ©   (2010-06-21 19:23) [6]

> будучи употреблен надлежащим образом в надлежащее время.
беда в том, что то для чего его делали уже история, и она вряд ли повторится (перенос из BDE). т.е. трудно его сейчас правильно употребить.


 
WHR   (2010-06-21 19:33) [7]

Ясно, спасибо!
И, на будущее, хотел спросить:
сейчас я работаю с Access - учусь, дальше планирую приступить к изучению SQL-Server"a. ADO, в принципе - ещё актуально?
Существуют более продуманные сторонние компоненты?


 
Ega23 ©   (2010-06-21 19:38) [8]


> Существуют более продуманные сторонние компоненты?


Считай, что для MSSQL ADO - самый верный и православный DAC.


 
sniknik ©   (2010-06-21 19:39) [9]

для SQL-Server"a (если это mssql) оно в принципе - без вариантов. все сторонние так или иначе работают либо через него либо через его компоненты/драйвера (OLEDB).
а вот если под "SQL-Server"a" подразумевается что-то другое то тут такой простор для творчества... за год не описать.


 
WHR   (2010-06-21 19:41) [10]

Нет, именно - SQL-Server.

Всё - огромная всем благодарность!
Вопросов больше нет!


 
Игорь Шевченко ©   (2010-06-21 20:52) [11]

sniknik ©   (21.06.10 19:23) [6]


> т.е. трудно его сейчас правильно употребить.


если справку почитать, то можно и правильно употребить. Справка - она источник знаний


 
Anatoly Podgoretsky ©   (2010-06-21 21:43) [12]

> sniknik  (21.06.2010 19:21:05)  [5]

Да было же обсуждение, когда после замены на Dataset скорость возрасла в два
раза.


 
Anatoly Podgoretsky ©   (2010-06-21 21:45) [13]

> WHR  (21.06.2010 19:33:07)  [7]

Зачем теряешь время, сразу приступай к SQL-Server


 
Anatoly Podgoretsky ©   (2010-06-21 21:47) [14]

> Игорь Шевченко  (21.06.2010 20:52:11)  [11]

Книга источник знаний, а справка ее подруга.


 
sniknik ©   (2010-06-21 22:02) [15]

> Да было же обсуждение, когда после замены на Dataset скорость возрасла в два раза.
было, а еще было когда замена на AdoCommand ускорила запись на порядок (правда и там и там не только это, еще какие то действия были, не помню).

но кому это нужно? если парой банальных фраз про овощи в свое время, и справку источник знаний можно "убить" весь "воспитательный" эффект, и вернуть начинающих в "старое болото привычных компонент".


 
Anatoly Podgoretsky ©   (2010-06-21 22:14) [16]

> sniknik  (21.06.2010 22:02:15)  [15]

Ну с дополнительными действия получить хороший результат не удивительно. А
то просто замена на Dataset дала эффект.


 
Anatoly Podgoretsky ©   (2010-06-21 22:16) [17]

> sniknik  (21.06.2010 22:02:15)  [15]

У AdoQuery есть три гадских штучки Text/SQL/Add


 
Игорь Шевченко ©   (2010-06-21 23:33) [18]

sniknik ©   (21.06.10 22:02) [15]


> но кому это нужно? если парой банальных фраз про овощи в
> свое время, и справку источник знаний можно "убить" весь
> "воспитательный" эффект, и вернуть начинающих в "старое
> болото привычных компонент".


А вот Codegear до сих пор включает этот компонент в палитру и справку по нему пишет. Он наверное нифига не знает, что существуют крутые мастера, которые знают лучше разработчика, что хорошо, а что плохо.
Ты напиши в Embarcadero, они теперь Codegear к рукам прибрали, скажи, что же вы, нехорошие разработчики, клепаете компоненты, как пирожки, а нам потом разъяснительную работу среди молодежи проводить приходится, чтобы они вашими наколенными поделками не пользовались. А еще лучше, попроси и вовсе из палитры убрать, чтобы соблазна не было.


 
Anatoly Podgoretsky ©   (2010-06-21 23:53) [19]

> Игорь Шевченко  (21.06.2010 23:33:18)  [18]

Не я не могу на это согласиться, тут старшой нужен. (с)


 
Германн ©   (2010-06-22 01:33) [20]


> но кому это нужно? если парой банальных фраз про овощи в
> свое время, и справку источник знаний можно "убить" весь
> "воспитательный" эффект, и вернуть начинающих в "старое
> болото привычных компонент".
>


> Не я не могу на это согласиться, тут старшой нужен. (с)

Игорь никогда не признает ошибки в своих высказываниях, пока его не "ткнут в носом в официальный документ".


 
Ega23 ©   (2010-06-22 01:33) [21]


> А вот Codegear до сих пор включает этот компонент в палитру
> и справку по нему пишет.


Дык и BDE он до сих пор вкючает.


 
Германн ©   (2010-06-22 01:37) [22]


> Ega23 ©   (22.06.10 01:33) [21]
>
>
> > А вот Codegear до сих пор включает этот компонент в палитру
> > и справку по нему пишет.
>
>
> Дык и BDE он до сих пор вкючает.
>

Дык это политика руководства. Совместимость - это главное.
Но с BDE  тут немного иначе.


 
Ega23 ©   (2010-06-22 02:04) [23]


> Но с BDE  тут немного иначе.


Та же фигня.


 
Германн ©   (2010-06-22 02:14) [24]


> Ega23 ©   (22.06.10 02:04) [23]
>
>
> > Но с BDE  тут немного иначе.
>
>
> Та же фигня.
>

Не совсем. BDE как работала раньше так и сейчас работает. Возьми исходники старой программы использующей BDE, скомпилируй на последней версии Дельфи. Она (программа) будет работать также, как и прежняя, скомпилированная в раньшей версии Дельфи.


 
Ega23 ©   (2010-06-22 07:12) [25]


> скомпилируй на последней версии Дельфи. Она (программа)
> будет работать также, как и прежняя, скомпилированная в
> раньшей версии Дельфи.


Уверен? :)


 
Anatoly Podgoretsky ©   (2010-06-22 08:49) [26]

> Ega23  (22.06.2010 07:12:25)  [25]

Я уверен, БДЕ не имеет отношения к Дельфи, никакого, это отдельный
независимый продукт. Работоспособность зависит только от ее версии, а не от
Дельфи.

Убирать ничего нельзя, зачем же старались.


 
Ega23 ©   (2010-06-22 10:22) [27]


> Я уверен, БДЕ не имеет отношения к Дельфи, никакого, это
> отдельный
> независимый продукт. Работоспособность зависит только от
> ее версии, а не от
> Дельфи.


Ну я DAC имел ввиду, а не набор драйверов.


 
Anatoly Podgoretsky ©   (2010-06-22 11:17) [28]

> Ega23  (22.06.2010 10:22:27)  [27]

Ты имеешь в виду BDE.VCL
Тогда и устаревший Виндоус 3.1 на тех же условиях.


 
Игорь Шевченко ©   (2010-06-22 11:27) [29]

Ega23 ©   (22.06.10 07:12) [25]

В D2006 программа, использующая BDE перенесена без проблем.


 
Ega23 ©   (2010-06-22 11:40) [30]


> В D2006 программа, использующая BDE перенесена без проблем.


Стоп, я "последнюю" недаром выделил. Я за D2010


 
Игорь Шевченко ©   (2010-06-22 11:42) [31]

Ega23 ©   (22.06.10 11:40) [30]

Пока нужды нет переносить, будет - перенесем. А в чем проблемы ?


 
Anatoly Podgoretsky ©   (2010-06-22 12:25) [32]


> Стоп, я "последнюю" недаром выделил. Я за D2010

Надо проверить исходники VCL, что бы не было string, само BDE не имеет проблем этого рода.


 
MsGuns ©   (2010-06-22 17:43) [33]

Насколько помню, у квери есть единственный плюс - RowsAffected


 
sniknik ©   (2010-06-22 17:54) [34]

> единственный плюс - RowsAffected
а откуда думаешь он его получает? из того же execute от комманд. своего у него только SQL.Text/Add т.е. как раз то на чем был самый главный "глюк ado" - AV при дробном внесении запроса на попытке определить параметры.
остальное все заимствованное от "родителя".


 
MsGuns ©   (2010-06-22 20:15) [35]

Так и знал, что не пропустишь :)))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.004 c
2-1277704401
И. Павел
2010-06-28 09:53
2010.09.19
Общий обработчик ошибок, завершающий программу.


2-1277317567
lihoy_p5
2010-06-23 22:26
2010.09.19
загрузка следующего изображения


11-1223369174
L`Autour
2008-10-07 12:46
2010.09.19
Проблема с Menu.InsertItem


15-1276882263
istok
2010-06-18 21:31
2010.09.19
попал с виртуальной машиной...


2-1277184150
Seally
2010-06-22 09:22
2010.09.19
проблема с AdvStringGrid 2.0 в delphi 5





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский