SQL Filter

4 отговора 157 прегледа
#1

SQL Filter

Моля , за малко помощ .
Значи имам ДBГрид и ЕдитBOX и искам като започна да пиша в Едит Име и напиша "Н" в ДВГрида да се редят имената започващи с 'Н'


procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.SQL.Clear;
DBGrid1.Columns.Clear;
Query1.SQL.Add('Select * from kefir where IME = '''+Edit1.text+'''');
Query1.Close;
Query1.Open;

във варианта в който е сега го слага в грида , чак когато напиша цялото име.

Отговор
в отговор на otoboto #2

Прочети за "LIKE"

Прочети за "LIKE", филтри, и събитието OnFilterRecord.
Единият механизъм е с филтър и like, а другия - с OnFilterRecord.
Ти сега (със select) се каниш да изпълняваш яуерито на всеки въведен символ в едита.
По-добре го филтрирай.
Не си писал за кой SQL става въпрос, така, че сам прочети хелпа.

Отговор
в отговор на otoboto #3

Re: SQL Filter

Не казваш сървъра
Пробвай:
... where IME starting with '''+Edit1.text+'''');
или
... where IME like '''+Edit1.text+'%''');

Първия случай е за предпочитане, защото ще ползва индекс, ако има.

Отговор
в отговор на NDeu #4

Re: SQL Filter

YES ... where IME like '''+Edit1.text+'%'''); - Това е !!!
само ако може да ме светнеш този процент каква му е ролята , че вече за втори път го ползавам без да знам какво прави .

Отговор
в отговор на otoboto #5

Ами това е % ДДС

Ами това е % ДДС

Сериозно: % се ползва както * във Windows за обобщени имена - замества "какъвто и да е" текст

Отговор