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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 22:39   #11
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
SQL[2]:='WHERE Фамилия = ' + QuotedStr(Edit1.Text)
поиск по началу текста
Код:
SQL[2]:='WHERE Фамилия LIKE ' + QuotedStr(Edit1.Text+'%')
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.02.2010, 09:27   #12
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
SQL[2]:='WHERE Фамилия = ' + QuotedStr(Edit1.Text)
поиск по началу текста
Код:
SQL[2]:='WHERE Фамилия LIKE ' + QuotedStr(Edit1.Text+'%')
Что-то также. Ничего не находит.
Вот кусок кода:
Код:
Str := Edit1.Text;
case RadioGroup1.ItemIndex of
    0:begin
      with ADOQuery1 do begin
                       Close;
                       SQL[2]:='WHERE Фамилия LIKE ' + QuotedStr(Edit1.Text+'%')


                       end;
      end;
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 05.02.2010, 09:53   #13
начинающий кодер
только учусь!
Форумчанин
 
Аватар для начинающий кодер
 
Регистрация: 08.02.2009
Сообщений: 124
По умолчанию

если нужен поиск по начальным буквам тут проще Locate использовать
Цитата:
Locate method (TDataSet)
Implements a virtual method for searching a dataset for a specified record and making it the active record.

Delphi syntax:

function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; virtual;

TLocateOptions type
Delphi syntax:

type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;
правда выборку она не делает а только указатель Грида переставляет на запись подходящую
«Я знаю, что ничего не знаю, но многие не знают и этого».

Последний раз редактировалось начинающий кодер; 05.02.2010 в 11:06.
начинающий кодер вне форума Ответить с цитированием
Старый 05.02.2010, 10:55   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
правда выборку она не делает а только указатель Грида переставляет на запись подходящую
Вот именно! Этот метод не ищет запись в таблице по мере ввода слова в Edit. Он переставляет указатель грида только на найденную запись, совпавшую с той, что была введена в Edit. Автору темы дали уже ссылки для решения его вопроса. Это инфа лишняя и не относится к теме)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.02.2010, 11:02   #15
начинающий кодер
только учусь!
Форумчанин
 
Аватар для начинающий кодер
 
Регистрация: 08.02.2009
Сообщений: 124
По умолчанию

Уважаемый, artemavd
Цитата:
Этот метод не ищет запись в таблице по мере ввода слова в Edit
- а это кто вам сказал?
«Я знаю, что ничего не знаю, но многие не знают и этого».
начинающий кодер вне форума Ответить с цитированием
Старый 05.02.2010, 11:10   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Уважаемый, начинающий кодер, я работал с этим методом, когда использовал BDE. Этот метод ищет запись в гриде независимо от регистра, о чем говорит параметр loCaseInsensitive, а также запись, которая частично совпадает с искомой, о чем говорит параметр loPartialKey. Поэтому данный метод не подходит для решения вопроса топикстартера. Переведите это предложение:
Цитата:
Implements a virtual method for searching a dataset for a specified record and making it the active record.
Перевод будет примерно таким:
Осуществляет действительный(виртуальный) метод для поиска набора данных для указанной записи и делая найденную запись активной в гриде. Дальнейшее обсуждение считаю бессмысленным, т.к. это не по теме и флуд это мы делаем.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.02.2010, 11:24   #17
начинающий кодер
только учусь!
Форумчанин
 
Аватар для начинающий кодер
 
Регистрация: 08.02.2009
Сообщений: 124
По умолчанию

Цитата:
данный метод не подходит для решения вопроса топикстартера.
ну уж это решать тс
и я с вами не поэтому вопросу не согласен
а вот с этим вашим высказыванием
Цитата:
Этот метод не ищет запись в таблице по мере ввода слова в Edit
вот пример
Код:
procedure TForm3.edt1Change(Sender: TObject);
begin
if edt1.Text<>'' then begin
  if rb1.Checked then begin
   qry1.Locate('field1',edt1.Text,[loCaseInsensitive,loPartialKey]);
   Exit;
   end;
    if rb2.Checked then begin
   qry1.Locate('field2',edt1.Text,[loCaseInsensitive,loPartialKey]);
   Exit;
   end;
end;
end;
и еще
Цитата:
я работал с BDE
чего же вы тогда не обьясните товарищу что грид служит только для отображения данных и работать надо с Dataset-ом а не с гридом! так как если выборка будет уже по условию то его код
Код:
SQL[2]:='WHERE Фамилия LIKE ' + QuotedStr(Edit1.Text+'%')
) вызовет как минимум синтаксическую ошибку а как максимум избыточность данных
«Я знаю, что ничего не знаю, но многие не знают и этого».

Последний раз редактировалось начинающий кодер; 05.02.2010 в 11:45.
начинающий кодер вне форума Ответить с цитированием
Старый 05.02.2010, 13:13   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
чего же вы тогда не обьясните товарищу что грид служит только для отображения данных и работать надо с Dataset-ом а не с гридом!
Да потому что если человек работает с БД, то он обязан понимать и знать сей факт. А говорить ему об этом я специально не стал, т.к. это уже настолько измусолено на форуме и тысячу раз говорилось, что повторяться нет никакого желания.
Цитата:
и я с вами не поэтому вопросу не согласен
Ваша правда. Я очень давно не работаю с BDE уже.
Цитата:
вызовет как минимум синтаксическую ошибку а как максимум избыточность данных
Сомневаюсь в этом, т.к. если бы это вызвало ошибку или еще что-то, то топикстартет бы написал уже об этом. Раз молчит, значит все работает.
Лично я абсолютно никакой синтаксической ошибки не вижу и считаю, что все правильно написано.

P.S. Уважаемые модераторы, закройте пожалуйста данную тему, ибо она себя исчерпала.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.02.2010, 13:30   #19
начинающий кодер
только учусь!
Форумчанин
 
Аватар для начинающий кодер
 
Регистрация: 08.02.2009
Сообщений: 124
По умолчанию

Цитата:
это уже настолько измусолено на форуме и тысячу раз говорилось
like тут измусолен столько же раз
Цитата:
очень давно не работаю с BDE
а она то тут причем?
Цитата:
Лично я абсолютно никакой синтаксической ошибки не вижу и считаю, что все правильно написано.
вы читаете то что я вам написал? или как?
Цитата:
если выборка будет уже по условию
то есть если запрос будет вида
Код:
Select * from table where field1=1
и если вы к нему припишите
Код:
 'WHERE Фамилия LIKE ' + QuotedStr(Edit1.Text+'%')
то это будет синтаксическая ошибка
а если уберете условие запроса и вставите свое с like то это будет избыточность данных!
Цитата:
Уважаемые модераторы, закройте пожалуйста данную тему, ибо она себя исчерпала.
Страшна-а-а?
«Я знаю, что ничего не знаю, но многие не знают и этого».
начинающий кодер вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический поиск в DBGrid при вводе символа в Edit Irina_87 БД в Delphi 12 12.12.2009 03:53
Поиск от dbgrid mavlon_m Общие вопросы Delphi 4 19.08.2009 12:53
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
Перемещение даннах из dbgrid в dbgrid Hobbit_88 БД в Delphi 7 10.06.2009 13:33
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30