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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 21:15   #1
Irina_87
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 42
По умолчанию Автоматический поиск в DBGrid при вводе символа в Edit

Здравствуйте, кто-нибудь может подсказать, как это осуществить??? Я пишу такой код -
Код:
var S: string;
begin
S:=Edit6.text+'%';
with ADOQuery2 do begin
close;
SQL.Add('select DISTINCT ID_pokup,Name_pokup,Adres,Telefon,F IO_directora from Pokupatel');
SQL.Add('where Name_pokup LIKE' +quotedstr(s));
SQL.Add('ORDER BY Name_pokup');
Open;
Но когда я пытаюсь изменить значение в Edit этот запрос уже не осуществляется(((
Как сделать, чтобы поиск осуществлялся правильно?????

У нас принято оформлять код специальным тэгом - кнопочка "#".
Никак не получается понять такую простую вещь?
Модератор

Последний раз редактировалось mihali4; 11.12.2009 в 23:40.
Irina_87 вне форума Ответить с цитированием
Старый 11.12.2009, 22:16   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

во-первых, надо бы добавить такую строчку
Код:
close;
SQL.clear;
во-вторых, неплохо бы всех к одному регистру привести
Код:
SQL.Add('where upper(Name_pokup) LIKE' +quotedstr(AnsiUpperCase(s)));
а в-третьих, может быть по вновь введенному тексту в эдит действительно нет никаких вариантов в таблице?!
soleil@mmc вне форума Ответить с цитированием
Старый 11.12.2009, 23:52   #3
Toky
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 19
По умолчанию

Шо-то я не пойму: сделал все что советовали здесь и тоже ниче не получается - в чем может быть ошибка?
Код:
begin
S:=Edit1.text+'%';
with Query1 do
begin
close;
SQL.clear;
SQL.Add('SELECT DISTINCT Fam FROM ":MyDB:DataSource.DB" ');
SQL.Add('where upper(Fam) LIKE' +quotedstr(AnsiUpperCase(s)));
SQL.Add('ORDER BY Fam');
Open;
form2.Table1.UpdateStatus;
end;
Toky вне форума Ответить с цитированием
Старый 11.12.2009, 23:55   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

в зависимости от субд функа upper() может по-другому называться
soleil@mmc вне форума Ответить с цитированием
Старый 12.12.2009, 00:48   #5
Toky
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
в зависимости от субд функа upper() может по-другому называться
а как эта функция называется в парадоксе?
Toky вне форума Ответить с цитированием
Старый 12.12.2009, 01:11   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так и называется.
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 01:23   #7
Toky
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Так и называется.
тем не менее и увы, пишу: нажимаю кнопку поиск и никаких изменений, ничего не выберает
Toky вне форума Ответить с цитированием
Старый 12.12.2009, 01:30   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Не знаю, не знаю...
Я ваш запрос (ну не ваш, а применительно к базе DEMO) попробовал, все работает.
Просто в квэрик написал:
Код:
SELECT DISTINCT lastname FROM employee where upper(lastname) like 'N%'
ORDER BY lastname
А-а-а, ну да... Вы забыли про %...
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 02:15   #9
Toky
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 19
По умолчанию

а может быть так что компонент Тэйбэл как-нить блочит запрос, т.е. выпонляется он без ошибок но не выбирает ничего? Не знаю что и гадать уже перепробовал разные способы написания допустим такой
Код:
begin
 Query1.Close;                              
 Query1.SQL.Clear;                
 Query1.SQL.Add('Select * from DataSource where '+'Fam'+' LIKE "'+Edit1.Text+'%"');
 Query1.Open;
end;
Toky вне форума Ответить с цитированием
Старый 12.12.2009, 02:45   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

SQL:='SELECT DISTINCT Fam FROM ":MyDB:DataSource.DB" where upper(Fam) LIKE ' +quotedstr(AnsiUpperCase(s+'%'))+' ORDER BY Fam';
Единственное, насчет чего не уверен - это насчет конструкции ":MyDB:DataSource.DB"...
Как-то не приходилось такими "извращениями" пользоваться, все чаще просто имя таблицы...

Последний раз редактировалось mihali4; 12.12.2009 в 02:47.
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать код символа из Edit в Memo rainbow Общие вопросы Delphi 3 27.10.2009 06:56
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
Вывод ошибки при вводе цифры 1..5 в поле Edit prikolist Общие вопросы C/C++ 2 16.03.2009 00:22
Как в OnkeyPress отловить если в Edit есть текст позицию заменяемого символа? slips Общие вопросы Delphi 3 06.12.2008 18:12
Поиск лишнего/иного символа при сравнении двух строк Bezdar Microsoft Office Excel 5 13.11.2008 13:07