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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 20:25   #1
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
Восклицание Текст взять из Edit в SQL (Delphi)

Проблема такая:
есть база данных, что то типа поисковой системы, только организованна как обычная БД. то есть на запрос пользователя который вводится в поле Edit в Delphi должен выводиться список документов, соответствующих запросу.
Я составляю вот такой запрос:
Код:
with Form1.ADOQuery1 do begin
Close;
Sql.Clear;
Sql.Add('SELECT Document.Name AS [Название документа], Document.Reference AS [Ссылка]');
Sql.Add('FROM Key_Word, Document, Key_Word_Document');
Sql.Add('WHERE (Key_Word.Key_Word)=(Form1.Edit1.Text)');
Sql.Add('And Key_Word_Document.ID_Document=Document.ID_Document');
Sql.Add('And Key_Word_Document.ID_Key_Word=Key_Word.ID_Key_Word');
Open;
end;
Вопрос такой:
не знаю как сделать, чтобы он проверял то, что берется из текстового поля на соответствие ключевых слов из таблицы в БД, может быть с помощью Like?

Последний раз редактировалось Stilet; 29.10.2010 в 18:41.
Люсьен вне форума Ответить с цитированием
Старый 11.06.2009, 21:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

либо параметризированный запрос сделайте (добавьте параметр в запрос)

либо так:
Код:
with Form1.ADOQuery1 do begin
  Close;
  Sql.Clear;
  Sql.Add('SELECT Document.Name '+
          '  AS [Название документа], Document.Reference AS [Ссылка]');
  Sql.Add(' FROM Key_Word, Document, Key_Word_Document');
  Sql.Add(' WHERE Key_Word.Key_Word='''+Trim(Form1.Edit1.Text)+'''');
  Sql.Add(' And Key_Word_Document.ID_Document=Document.ID_Document');
  Sql.Add(' And Key_Word_Document.ID_Key_Word=Key_Word.ID_Key_Word');
  Open;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.06.2009, 21:59   #3
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
Радость

Спасибо большое, все работает!!
Люсьен вне форума Ответить с цитированием
Старый 29.10.2010, 18:04   #4
rubik
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 20
По умолчанию

Аналогичная ситуация. Нужно создать поиск по базе с помощью Edit. В чем может быть проблема?
Код:
begin
Form7.Query1.Close;
Form7.Query1.SQL.Clear;
Form7.Query1.SQL.Add('SELECT Firma');
Form7.Query1.SQL.Add('From base_led.db');
Form7.Query1.SQL.Add('WHERE Firma='+'"'+Trim(Form7.Edit1.Text)+'"');
Query1.ExecSQL;
Form7.Query1.Open;
end;

Последний раз редактировалось rubik; 29.10.2010 в 18:14.
rubik вне форума Ответить с цитированием
Старый 29.10.2010, 18:11   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Для всех :
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст в Edit Simon..14 Общие вопросы C/C++ 7 18.01.2009 17:28
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02
Как задать текст в Edit в чужом окне Artem Win Api 6 14.12.2007 19:13
Edit и текст M@rsel Компоненты Delphi 2 23.03.2007 09:33