Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 48

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Поиск

Поочередный поиск заданного значения

Это поочередный поиск заданого значения (начало, середина, один символ и тд.), при чем регистр не имеет значения. Поиск по больших выборках даных будет несколько долговат, но наглядный.

procedure SearchValue(AQuery: TADOQuery; AField, AValue: string);
var
i: integer;
NoRec: integer;
begin
with AQuery do
begin
First;
for i := 0 to RecordCount - 1 do
begin
if (not Eof) and (Pos(AnsiLowerCase(AValue),
AnsiLowerCase(FieldByName(AField).AsString)) <> 0) then
begin
if MessageBox(HWND_DESKTOP, PChar('Заданое значение найдено!' + #10#13+
' Продолжать поиск'), 'Поиск', MB_YESNO +
MB_ICONINFORMATION + MB_DEFBUTTON1) = IDYES then
begin
NoRec := RecNo;
Next;
end
else
Break;
end
else
Next;
end;
MoveBy(NoRec - RecordCount);
MessageBox(HWND_DESKTOP, PChar('Поиск завершен!'), 'Поиск', MB_OK +
MB_ICONINFORMATION + MB_DEFBUTTON1);
end;
end;

// А это пример того, как я вызывал
// процедуру поиска через TActionList

procedure TfmMain.acSearchExecute(Sender: TObject);
var
S: string;
begin
S := '';
S := InputBox('Поиск', 'Введите значение для поиска:', S);
if S <> '' then
SearchValue(((Screen.ActiveControl as TDBGridEh).DataSource.DataSet as
TADOQuery), (Screen.ActiveControl as
TDBGridEh).SelectedField.FieldName, S);
end;

procedure TfmMain.acSearchUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled :=
Assigned(Screen.ActiveControl) and
(Screen.ActiveControl is TDBGridEh);
end;
Категория: Поиск | Добавил: Skinner (07.07.2008)
Просмотров: 438 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2024 Хостинг от uCoz