Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в базе данных, Варианты поиска 
:(
    Опции темы
Novichek27
Дата 27.6.2010, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Приветствую всех участников форума.
Создал форму  в Delphi7 и связал ее компоненты(TEdit, DBEdit, DBLookupListBox и др.) с базой данных MS Access.

Поиск 1-ый находит одно первое похожое слово(т.е. если ввести слово "выс" то находит "высокий" или  "высокий столб" например);
Код:
Код

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   //s:=Edit1.Text;
    if not ADOQuery1.Locate('name', Edit1.Text, [loCaseInsensitive, loPartialKey]) then
    ShowMessage('Запись не найдена');
end;


Поиск 2-й выводит точно введенное слово(т.е. если ввести слово "высокий столб" то находит "высокий столб", если "высокий столб" отсутствует но есть "высокий стол" то вернется пустая строка ), при этом выводятся только найденные или пустая строка.

Пример:    name                     color
               высокий столб        серый
               высокий столб       белый
               высокий столб       черный

остальные записи не видны.
Чтобы их снова отобразить пишем
Код

procedure TForm1.Button2Click(Sender: TObject);
begin
with ADOQuery1 do
  begin
    close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM tablename');
    ADOQuery1.Open;
  end;
end;


Код поиска 2:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  with ADOQuery1 do
  begin
    Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM tablename');
    ADOQuery1.SQL.Add('WHERE (name='''+Edit1.Text+''')');
    ADOQuery1.Open;
  end;
end;


В принципе вопрос состоит в том чтобы можно было ввести слово для поиска(точное или неточное) и получить список найденного.
Как объединить эти два поиска в один?
Например:
вводим слово для поиска "Иванов", находим и отображаем:

"Иванов А.А."
"Иванов А.Б."
"Иванов А.В."                                          


Это сообщение отредактировал(а) bems - 28.6.2010, 11:59
PM   Вверх
world
Дата 27.6.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 2.10.2009
Где: Харьков

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



Тут ошибка в запросе по идеи необходимо составить запрос вроде

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  with ADOQuery1 do
  begin
    Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM tablename');
    ADOQuery1.SQL.Add('WHERE (name LIKE "%' + Edit1.Text + '%")');
    ADOQuery1.Open;
  end;
end;


Убедительная просьба только расставить кавычки как надо, увы языка Делфи не знаю, но как пользователь СБилдер6 и человек который немного разбирается в запросах подсказать могу.

ЗЫ. И кстати, если поле поиска оставить пустым, то выведет все записи.

Это сообщение отредактировал(а) world - 27.6.2010, 23:47
--------------------
Say what you mean, and mean what you say. Robert Wilson Cody
PM MAIL WWW ICQ Skype   Вверх
superVad
Дата 29.6.2010, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



world лучше все же использовать параметры.
PM MAIL   Вверх
Novichek27
Дата 29.6.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо world!!!  smile 
Будем изучать SQL   
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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