Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.02.2013, 13:43
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию Поиск по БД access тип поля "Memo"

Всем привет друзья, такой вопрос. Как организовать поиск по Бд access с типом поля "Memo"?
Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ADOQuery1.Close; 
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From sinema where' +Edit1.Text);
ADOQuery1.Open;
DataSource1.DataSet:=ADOQuery1; 
end; 
Пробовал вот так но видимо данный метод сработает лишь в текстовом поле.
Ответить с цитированием
  #2  
Старый 17.02.2013, 00:15
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

необязательно перезапрашивать каждый раз при смене поиска =)

есть свойство Filter

ADOQuery1.Filter:='name LIKE '+QuotedStr('%'+Trim(Memo1.Text)+'%');

насчёт Мемо? какая конкретно проблема? мой пример,данные беруться из Memo (точно также как из Edit'a )
Ответить с цитированием
  #3  
Старый 17.02.2013, 00:52
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

В вопросе с Memo имеется ввиду что тип данных поля "Memo" . Стоит база на access, в которой поле которому мне надо сделать поиск имеет тип "Мемо".
Ответить с цитированием
  #4  
Старый 17.02.2013, 01:08
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Код:
If not DBGrid1.DataSource.DataSet.Locate('Информация о прототипе', Edit1.Text, [])
then ShowMessage('Что то не нахожу');
Поиск по базе у меня простенький, другой вопрос в том что данный вид поиска не умеет искать в поле типа "Memo".
Ответить с цитированием
  #5  
Старый 17.02.2013, 13:53
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Немного порывшись в сети нашел инфу что в поле типа "Memo" не работает Locate.
Код:
ADOquery1.SQL.Text:=('SELECT  * from Патент where Информация о прототипе like "%"edit1.text"%"');
ADOquery1.Open;
Попробовал такой вид запроса, но вылетает ошибка "Ошибка синтаксиса (пропущен оператор) в выражений запроса like "%"edit1.text"%"' Понимаю что как то не так отправляю запрос, но в чем конкретно причина не могу понять.
Ответить с цитированием
  #6  
Старый 17.02.2013, 15:06
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Вопрос с Поиском решен
Код:
ADOquery1.SQL.Text:=('SELECT  * from Патент where [Информация о прототипе] LIKE "%' + Edit1.Text + '%"');
Таким образом, но есть ещё 1 вопрос после того как выполняется запрос БД фильтруется и остается только запись с "Искомым", как сделать так что бы БД не фильтровалась, а просто выделялась запись с "Искомым"?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025