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

Delphi Sources



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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 22.06.2015, 20:31
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

а какая тут ошибка, я вчера несколько часов с этими плюсами и кавычками колдовал
Код:
ADOQuery1.SQL.Text := 'SELECT * FROM organized WHERE Title Like "%' + Edit1.Text + '%"'+ 'and classroom like" + Edit2"';
и странно почему вчера работало, а сегодня нет?
  #17  
Старый 22.06.2015, 20:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
странно в edit1 ввожу букву, сразу все строчки в dbgrid пустые
Добавьте проценты, в смысле
Код:
AdoQuery1.Parameters.ParamValues['Param1']:= '%' + Form1.Edit1.Text + '%';
и заработает (для edit2 тоже)
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
nikotan (22.06.2015)
  #18  
Старый 22.06.2015, 20:39
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Да во первых .text во втором куда то пропала, и вижу что Edit2.text синим цветом, а Edit1.text черным . Кто мне ночью код исправил????
Код:
ADOQuery1.SQL.Text := 'SELECT * FROM organized WHERE Title Like "%' + Edit1.Text + '%"'+ 'and classroom like" + Edit2.text"';
  #19  
Старый 22.06.2015, 20:41
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

в Edit2 нельзя %, там чётко слово, должно быть( ну мне так нужно , для вывода только одного кабинета, а так будут много разных, которые имеют кусок слова)
  #20  
Старый 22.06.2015, 20:45
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Замените в конце строки
Код:
'and classroom like" + Edit2.text"';
на
Код:
'and classroom like"' + Edit2.text + '"';
  #21  
Старый 22.06.2015, 20:48
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Огромное спасибо! Работает

Код:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
AdoQuery1.Sql.Text := 'select * from organized where Title like :Param1 and classroom like :Param2';
  AdoQuery1.Parameters.ParamValues['Param1']:= '%' + Form1.Edit1.Text + '%';
AdoQuery1.Parameters.ParamValues['Param2'] := '%' + Form1.Edit2.Text + '%';
AdoQuery1.Open;
end;
  #22  
Старый 22.06.2015, 20:53
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

а объясните, принцип кавычек, то ' , то " , причем двойные внутри первых одинарных, а вторая двойная внутри следующих находится
  #23  
Старый 22.06.2015, 21:06
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

новая проблемма

Код:
ADOQuery1.SQL.Text := 'SELECT * FROM organized WHERE Title Like "%' + Edit1.Text + '%"'+ 'and classroom like"' + Edit2.text + '"';
идёт поиск только при выставлении в edit2 номер кабинета, а если там пусто , то ни чего не ищет, я понимаю из-за and , но как это обойти?
  #24  
Старый 22.06.2015, 21:07
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

<<<DELETED>>>

Последний раз редактировалось Alegun, 23.06.2015 в 15:52.
  #25  
Старый 22.06.2015, 21:23
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от nikotan
новая проблемма...
Перед последними двойными кавычками вставьте проценты ('%"'), этот знак означает что выбрать нужно любые символы
  #26  
Старый 22.06.2015, 21:27
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

так примерно понял, а мне препод сказал делай на делфи, за пару дней сделаешь, уже месяц сижу, осваиваю это делфи.
теперь ещё проблема, вводишь в edit1 буквы, идёт выборка записей с такими буквами, но как только в edit2 ввожу цифру, то появляются записи кабинетов, а надо чтоб были записи поиска edit1 только в этих кабинетов, и еcли стёр edit2 опять вернулась выборка тех букв которые введены в edit1, уффф...
http://www.delphisources.ru/forum/at...d=143499761 6
Изображения
Тип файла: jpg Безымянный3.jpg (68.3 Кбайт, 2 просмотров)
  #27  
Старый 22.06.2015, 21:31
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Когда используется оператор AND должны удовлетворяться оба условия, так и происходит потому как classroom like...
  #28  
Старый 22.06.2015, 21:46
nikotan nikotan вне форума
Новичок
 
Регистрация: 21.06.2015
Сообщения: 58
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

как тогда правильней сделать запрос?
мой код
Код:
procedure TForm1.Edit1Change(Sender: TObject);
 begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
AdoQuery1.Sql.Text := 'select * from organized where Title like :Param1 and classroom like :Param2';
 AdoQuery1.Parameters.ParamValues['Param1']:= '%' + Form1.Edit1.Text + '%';
AdoQuery1.Parameters.ParamValues['Param2'] := '%' + Form1.Edit2.Text + '%';
AdoQuery1.Open;
end;



procedure TForm1.Edit2Change(Sender: TObject);
var help1, help2: string;
begin
//Edit1.Text:='';
   help1:=Form1.Edit2.Text;
        help2:=Quotedstr(help1);
        With Form1.ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add('select * from organized where classroom like'+help2);
          open;
        end;
   end;
  #29  
Старый 22.06.2015, 22:38
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

<<<DELETED>>>

Последний раз редактировалось Alegun, 23.06.2015 в 15:51.
  #30  
Старый 22.06.2015, 23:02
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Задолбали флеймить. Чего непонятного? Запрос не получается составить?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Закрытая тема


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter