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

Вниз

Записи ADOQuery   Найти похожие ветки 

 
Lamer666   (2008-02-02 19:19) [0]

Уважаемые, подскажите, есть:
ADOQuery есть ли более быстрый способ перебора записей чем через RECORDSET?

   AQ.Recordset.MoveFirst;
   While AQ.Recordset.EOF=False do begin
   ...
   AQ.MoveNext
   end;


 
Palladin ©   (2008-02-02 19:26) [1]

ага, конечно есть, для наглых беспардонных лоботрясов, которым лень изучать и понимать справочную информацию ado*.chm (да облоботрясничаются они нагло и дальше и пусть я буду последним) сообщаю код для копи пасте

AQ.CursorLocation:=clUseServer;
AQ.CursorType:=ctOpenForwardOnly;
AQ.LockType:=ltReadOnly;
 { AQ.Recordset.MoveFirst; бред наглой лоботрясничающей кобылы}
//   While AQ.Recordset.EOF=False  жестокий лихорадочный бред наглой лоботрясничабщей кобылы
While Not AQ.EOF  do begin
  ...
  AQ.Next
 End;
AQ.Close;


 
MsGuns ©   (2008-02-02 19:30) [2]

recordset - суть фича мелкософтового ADO, а TDataSet - детище Делфи.
Каждый пользует то, что ему больше знакомо и понятно.
Если Вы используете для извлечения данных с сервера делфишный TADOQuery естественным было бы управляться с ним его "родными", датасетовскими (TCustomADODataSet) свойствами, методами и событиями, нежели "стучаться" к нему через рекордсет.

Что же касается скорости.. Самый лучший и радикальный способ ускорения - не извлекать с сервера "лишнюю" информацию, максимально уменьшая "подконтрольную"  порцию данных.

Далее. Смотря для чего используется перебор . Если для нахождения записей по какому-то признаку или совокупности признаков, то стОит подумать о дополнительных условиях выборки - априори сервер должен быстрее найти нужные записи, скажем в таблице, чем весьма "толстый" клиент. Для обязательного перебора ВСЕХ записей (например, если все содержимое датасета куда-нибудь выгружается, например на печать), то существенной разницы между рекордсетом и датасетом нет и выбирать нужно лишь руководствуясь принципом удобства, наглядности и сбоеустойчивости кода, а также принятыми корпоративными стандартами.


 
Lamer666   (2008-02-02 19:31) [3]


> ага, конечно есть, для наглых беспардонных лоботрясов, которым
> лень изучать и понимать справочную информацию ado*.chm (да
> облоботрясничаются они нагло и дальше и пусть я буду последним)
> сообщаю код для копи пасте

Спасибо! Буду читать, сейчас "качшу".


 
Lamer666   (2008-02-02 19:32) [4]


> MsGuns ©   (02.02.08 19:30) [2]

СПАСИБО, очень полезное ПРИМЕЧАНИЕ!


 
MsGuns ©   (2008-02-02 19:33) [5]

>Palladin ©   (02.02.08 19:26) [1]

Вы не совсем правы - это вовсе не бред. И если сталкиваешься с ADO не в среде делфи, то приходится иметь дело именно с рекордсетом. Отсюда у многих, например, "свистунов" и "васек", не особенно натасканных в дельфях, все пытаться делать через "родные" классы.


 
Palladin ©   (2008-02-02 19:39) [6]


> Вы не совсем правы - это вовсе не бред. И если сталкиваешься
> с ADO не в среде делфи, то приходится иметь дело именно
> с рекордсетом. Отсюда у многих, например, "свистунов" и
> "васек", не особенно натасканных в дельфях, все пытаться
> делать через "родные" классы.

ждю не дождюсь примера необходимости работы напрямую с рекорсетом...
АФАИК делфи врапперы прекрасно реализуют функцию NextRecordset, в ином случае не вижу нарекание на врапперы Делфи...

Николя может перестроить мой пример на TADODataSet или вообще на native, но сути это абсолютно не поменяет...


 
MsGuns ©   (2008-02-02 19:42) [7]

>Palladin ©   (02.02.08 19:39) [6]
>ждю не дождюсь примера необходимости работы напрямую с рекорсетом...

Например в 1С, где нетути никаких датасетов вообще.
Или при макропрограмминге в MS Office


 
Palladin ©   (2008-02-02 19:49) [8]


> [7] MsGuns ©   (02.02.08 19:42)

стоп... что-то не так в королевстве датском...
ADO это интерфес к OLEDB провайдерам различных БД...
Petr V. Abramov, почти счастливый обладатель моей недоделанной таки утилитой работы напрямую с БД 1С в стиле DBF и MSSQL может запросто сказать что в 1C очень много рекордсетов :) и как бы сама 1С тут вообще ни причем. Насчет MS Office, тут есть целых два продукта Access и Excel, Access имеет самое что нинаесть прямое отношение к OLEDB провайдерам особенно в виде драйвера OLEDB JET X.XX ... с экселем все сложнее, сколько бы эксель нибыл жестко контейнером жестко форматированных данных - никода ему не суждено быть похожим на БД, только приделанные костыли...

так что либо я что то не понимаю в OLE DB провайдерах, либо 1COLEDB таки существует... :)))


 
MsGuns ©   (2008-02-02 19:57) [9]

Не понял вас ;(
Я говорил о двух разных вещах - RecordSet (ADODB) и TDataSet (Делфи).
"Адошный" делфишный датасет инкарсулирует в себе рекордсет, но никак не наоборот ;)

И еще. Причем тут Акцес или Эксель - я говорю о VBS, встроенном в офис языке, которому пофиг, где его применяют - в акцесе, паинте, эксплорере или экселе (если неправ, то поправьте - буде весьма обязан)


 
Palladin ©   (2008-02-02 20:20) [10]

А я говорил только об одной вещи, TADODataSet, никаких TDataSet я не касался.


> "Адошный" делфишный датасет инкарсулирует в себе рекордсет,
> но никак не наоборот ;)

Да естественно, разве я утверждал что то обратное?


> И еще. Причем тут Акцес или Эксель - я говорю о VBS,

Хем, дык в том то и дело :) а при чем тут VBS и встроенные в офис языкк вообще, когда идет речь об ADODB применительно к Делфи?


 
MsGuns ©   (2008-02-02 20:44) [11]

>Palladin ©   (02.02.08 20:20) [10]
>Хем, дык в том то и дело :) а при чем тут VBS и встроенные в офис языкк вообще, когда идет речь об ADODB применительно к Делфи?

В Вашем посте Palladin ©   (02.02.08 19:26) [1]
есть фраза:

 { AQ.Recordset.MoveFirst; бред наглой лоботрясничающей кобылы}

Я просто попытался Вам сказать, что вряд ли стОит всех подряд людей, использующих такие методы в Дельфи, крестить в кобыл ;)



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

Форум: "Базы";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
15-1211788555
lead-in
2008-05-26 11:55
2008.07.13
ключи для sfx rar


15-1212066266
Dmitry S
2008-05-29 17:04
2008.07.13
OleLoadPictureFile "не видит" png


3-1202068859
Slim
2008-02-03 23:00
2008.07.13
Как установить фокус в DbGridEh на нужный столбец?


2-1213304675
MaryM
2008-06-13 01:04
2008.07.13
Drag & Drop TreeView


15-1211669739
Kolan
2008-05-25 02:55
2008.07.13
Тут по телеку евровидение выиграли,





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский