Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.13;
Скачать: CL | DM;

Вниз

Записи 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
2-1211262319
grav
2008-05-20 09:45
2008.07.13
IBDataSet, Master-Detail и Insert


6-1190358040
botaniQ
2007-09-21 11:00
2008.07.13
Куки для IdHTTP и Explorer...


15-1211590913
TIF
2008-05-24 05:01
2008.07.13
DIV или TABLE


2-1213341681
Yury
2008-06-13 11:21
2008.07.13
посылка сообщения


10-1147960469
Stalko
2006-05-18 17:54
2008.07.13
Проблема с колонтитулами