Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
4 / 4 / 2
Регистрация: 01.10.2008
Сообщений: 12

Расширенный поиск в ADO

01.10.2008, 10:59. Показов 5756. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясняю ситуацию: у меня есть база данных(Access) и с помощью ADO я с ней работаю; необходимо сделать поиск по соответствующему полю, причем в полях есть одинаковые записи. Иными словами мне помимо основного поиска, нужен еще Поиск далее...(указатель должен становиться на найденную запись). Методы Locate и Lookup не подходят, т.к находят самую первую запись, удовлетворяющую критериям. Надеюсь на помощь...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.10.2008, 10:59
Ответы с готовыми решениями:

Расширенный поиск
Доброго всем дня! Как в базе данных сделать поиск с помощью Edit1.На форме есть Edit1, Memo1, Memo2, Adoquery1, Adoconnection1. В таблице...

Расширенный поиск в Delphi, база данных MySQL
Доброе время суток, мне нужно сделать расширенный поиск в Delphi, в качестве базы данных выступает MySQL. Но чет голова не варит как это...

Поиск в ADO
Я сделал поиск в своей БД и у меня есть поля с пустыми значениями. Как сделать так, чтобы при выводе информации о сотруднике после поиска...

5
63 / 64 / 13
Регистрация: 08.06.2008
Сообщений: 243
01.10.2008, 11:54
TDataSet.FindFirst/FindNext... и у прочие функции поиска
0
4 / 4 / 2
Регистрация: 01.10.2008
Сообщений: 12
01.10.2008, 18:44  [ТС]
Хмм... FindNext, а первичный поиск как задать? Вроде функции Find нету...(есть FindField и FindComponent, но, думаю, это не то, что мне нужно)
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
01.10.2008, 18:49
Цитата Сообщение от AziAd Посмотреть сообщение
Хмм... FindNext, а первичный поиск как задать?
TDataSet.FindFirst
0
4 / 4 / 2
Регистрация: 01.10.2008
Сообщений: 12
01.10.2008, 19:03  [ТС]
Жутко извиняюсь за свой тупизм(я новичок), но... TDataSet у меня нету, я работаю через ADOTable. Как я и говрил выше там есть функции FindFirst, FindNext, FindPrior и т.д, которые не имеют никаких параметров и возвращают значение boolean. Если можно небольшой примерчик или может у кого есть готовый исходник для наглядности. Буду очень благодарен!
0
4 / 4 / 2
Регистрация: 01.10.2008
Сообщений: 12
02.10.2008, 21:53  [ТС]
Вобщем, не получив нормального ответа, и, немного попотев, решил сделать "расширенный" поиск самостоятельно. Ниже расказываю, как я это реализовал. Возможно таким же, как я, новичкам это поможет.

У нас есть поле Edit1, и кнопки ButSearch и ButSearchNext(для "Поиска" и "Поиска далее..." соответственно). Так же нужна глобальная переменная FoundRec типа Boolean.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
procedure TForm1.butSearchClick(Sender: TObject);
begin
  FoundRec:=False;
  ButSearchNext.Enabled:=False;
  ADOTable1.First;
  while not ADOTable1.Eof do begin
    if AnsiLowerCase(ADOTable1.FieldValues['Любое поле']) = AnsiLowerCase(Edit1.Text) then
      begin
        FoundRec:=True;
        ButSearchNext.Enabled:=True;
        break;
      end;
    ADOTable1.Next;
  end;
  if not FoundRec then begin
    ADOTable1.First;
    ShowMessage(Search.Text+' не найдено');
  end;
end;
 
 
procedure TForm1.butSearchNextClick(Sender: TObject);
begin
  ADOTable1.Next;
  while not ADOTable1.Eof do begin
    if AnsiLowerCase(ADOTable1.FieldValues['Любое поле']) = AnsiLowerCase(Edit1.Text) then
      break;
    ADOTable1.Next;
    if ADOTable1.Eof then ADOTable1.First; 
  end;
end;
Проверям: вводим в базу данных несколько одинаковых значений, например, в поле "Фамилия" есть 20 Ивановых(в коде, где "Любое поле", необходимо его заменить на свое, в данном случае "Фамилия"). Забиваем в Edit1: Иванов. Нажимаем "Поиск" - указатель встанет на первогонайденного Иванова. Нажимаем "Поиск далее..." - указатель пойдет на других Ивановых. Недостатки такого метода в том, что перебираются все записи БД, причем видно это визуально. Да и с большими БД будут тормоза. Но мне было важно это сделать для демонстрации преподавателю и всего лишь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2008, 21:53
Помогаю со студенческими работами здесь

Поиск в БД (ADO)
Приветствую. Такая у меня проблема. Создал я таблицу в Access, подключился в дельфи, все заработало, написал процедуры добавления,...

Поиск по тегам или расширенный поиск
Вечер добрый. Подскажите пожалуйста как реализовать поиск по тегам. Хотя бы алгоритм. Например: автомобиль у него есть характеристики...

Расширенный поиск
День добрый всем! Такая проблема, пишу расширенный поиск, получается следующая вещь. Сама форма: <form method="get"...

Расширенный поиск
Вот никак не пойму, нажимаю на расширенный поиск, ввожу Москва в регион, внизу автоматом отображается: Итого: искать «тухлые...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru