Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в базе данных ADO 
V
    Опции темы
Данкинг
Дата 3.11.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Не знаю, что быстрее будет: locate или select.... top 1 ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 3.11.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Будет зависеть от некоторых факторов, например:
1. Мощность сервера, клиента
2. Пропускная способность сети.
3. СУБД
4. Состояние базы данных.

Пример. Есть таблица на 5000 записей. Нужно сфокусировать курсор на нужную запись. Какого перца выполнять Select ... Если можно выполнить просто locate или lookup. Ну если нужно просто узнать значение поля конкретной записи, то Lookup даже в разы быстрее может выполниться из-за того, что нет нужны перемещать курсор по набору данных. А что сделает Select? Select полезет на сервер за записью, серверу нужно будет вернуть ещё запись клиенту. Мало того... назначение и возможности Select`а и Locate`а разные. Тут нужно смотреть по конкретной ситуации. На то программисту голова и дадена. А по сему дальнейший спор по поводу Select vs Locate есть бессмысленный.
Спасибо за внимание. Всем спасибо, все свободны.
PM MAIL   Вверх
Vrungel
Дата 5.11.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



всем лень было помочь ...
оставлю это на случай если у кавото возникнет вопрос
Код

procedure TForm2.BitBtn2Click(Sender: TObject);
var
keyFields:string;
KeyValues:variant;
Options:tlocateOptions;
begin
if not(checkBox1.Checked or CheckBox2.Checked)then begin
MessageDLG ('Не заданы условия поиска!',mtInformation,[mbOK],0);
exit;
end;
if (CheckBox1.Checked=true and checkbox2.Checked=true) then begin
KeyFields:='Наименование;Поставщик';
KeyValues:=vararrayof([edit1.Text,edit2.text]);

If not ADOTable1.Locate(KeyFields,KEyValues,options) then begin
beep;
MessageDLG('Запись не найдена!!!', mtInformation,[mbOK],0);
exit;
end;
end
else begin
if checkbox1.Checked then begin
KeyFields:='Наименование';
KeyValues:=edit1.text;
end;

if CheckBox2.Checked then begin
KeyFields:='Поставщик';
KeyValues:=edit2.Text;
end;


OPtions:=[loCaseInsensitive,lopartialKey];

If not ADOTable1.Locate(KeyFields,KEyValues,options) then begin
beep;
MessageDLG('Запись не найдена!!!', mtInformation,[mbOK],0);
exit;
end;
end;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
form2.hide;
form1.show;
end;

PM MAIL   Вверх
Данкинг
Дата 5.11.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Vrungel, а BEEP зачем - неужели он пищать в динамик будет? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 5.11.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Vrungel @  5.11.2009,  17:01 Найти цитируемый пост)
всем лень было помочь ...

написать тебе одну строку кода нужно было, самому недодуматься?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.