Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2009, 14:56   #1
Whiter
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 5
По умолчанию Поиск в тексте

Доброго времени суток! Помогите пожалуйста реализовать поиск по тексту, а именно, если база в Оракле, в ней таблица "фильмы", нужно чтобы пользователь вводил какие то символы, поисковик искал соответствие в таблице "Фильмы" и выводил результат, и чтобы после найденого совпадения шел дальше, т.е. если ищем "Терминатор", (а в базе есть "Терминатор 1,2,3,4," чтобы при последующем нажатии кнопки найти переходил на следующее совпадение) вроде как это можно реализовать через FindDialog, я новичек в делфи, если можно с комментариями, исходниками и пояснениями, заранее спасибо.
Whiter вне форума Ответить с цитированием
Старый 30.07.2009, 15:00   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Составить SQL запрос и в него подставлять значение из FindDialog
Код:
SELECT Title FROM films
WHERE Title LIKE %'FindDialog1.FindText'%
Потом выполнить и брать результат
psycho-coder вне форума Ответить с цитированием
Старый 30.07.2009, 15:31   #3
Whiter
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 5
По умолчанию

Код:
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
with form1.OracleDataSet1 do begin
close;
SQL.clear;
SQL.text:='SELECT nazvanie FROM filmi WHERE filmi LIKE %'FindDialog1.FindText'%';
execSQL;
Open;
end;
if form1.OracleDataSet1.RecordCount<>0 then
begin
form1.DataSource1.DataSet:=OracleDataSet1;
end;
end;

end.
=================================== ======
вот что получилось, только делфи ругаеться
"Missing operator or semicolon"
на строку
SQL.text:='SELECT nazvanie FROM filmi WHERE filmi LIKE %'FindDialog1.FindText'%';

Последний раз редактировалось Stilet; 30.07.2009 в 15:47.
Whiter вне форума Ответить с цитированием
Старый 30.07.2009, 15:34   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
SQL.clear;
SQL.text := 'SELECT nazvanie FROM filmi WHERE filmi LIKE ''' +  '%' + FindDialog1.FindText + '%''';
Open;
ExecSQL убери.

Последний раз редактировалось Evgeniy26; 30.07.2009 в 15:42.
Evgeniy26 вне форума Ответить с цитированием
Старый 30.07.2009, 15:43   #5
Whiter
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 5
По умолчанию

запустилось, но после ввроде текста и нажатия кнопки найти выдает
"Ora-00911" invalid character
причем в SQL Develop'ере проверял находит нужный фильм и нет не какой ошибки
Whiter вне форума Ответить с цитированием
Старый 30.07.2009, 15:44   #6
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Я поправил.
Evgeniy26 вне форума Ответить с цитированием
Старый 30.07.2009, 15:45   #7
Whiter
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 5
По умолчанию

даже без execsql ошибка таже, и еще такой вопрос, как подвязать DBMemo(или просто Memo) чтобы туда выводился результат поиска

Последний раз редактировалось Whiter; 30.07.2009 в 15:48.
Whiter вне форума Ответить с цитированием
Старый 30.07.2009, 15:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
invalid character
Возможно в запросе нужно имя фильма обрамлять в двойные кавычки, это нужно уточнить в хелпе Оракла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2009, 15:51   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Whiter Посмотреть сообщение
и еще такой вопрос, как подвязать DBMemo(или просто Memo) чтобы туда выводился результат поиска
Тут нужно смотреть справку по Oracle.
psycho-coder вне форума Ответить с цитированием
Старый 30.07.2009, 15:53   #10
Whiter
Новичок
Джуниор
 
Регистрация: 30.07.2009
Сообщений: 5
По умолчанию

DBMemo подвязывается в Events>>Onshow? или я ошибаюсь ._. (Events'ы FindDialog'a)
Whiter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в тексте и VLookup jungo Microsoft Office Excel 4 27.04.2009 09:53
Поиск емайлов в тексте hkdkest Общие вопросы Delphi 3 04.12.2008 12:47
Поиск в тексте Rigard Общие вопросы Delphi 8 15.10.2008 00:06
Поиск в тексте jone Общие вопросы Delphi 14 28.09.2008 12:42
Поиск слов в тексте pleer Общие вопросы Delphi 5 23.09.2007 08:19