|
|
#1
|
|||
|
|||
Поиск в Table
Подскажите пожалуйста при таком условии
Код:
if not Table1.Locate('GIC', Edit1.Text, []) then ShowMessage('Такого номера ГИЦ нет') |
#2
|
||||
|
||||
Используйте функцию trim, она убирает пробелы. Вместо "Edit1.Text" пишите trim (Edit1.Text).
ПРАВКА: сори, ерунду написал не глядя, а удалить сообщение не могу. Trim нужно применять при вводе, чтоб не было записей с пробелами. Попробуйте сделать, как тут: http://web-developments.ru/prikladno...h-delfi-delphi. Не знаю, какой механизм используете для работы с БД (в приведённом примере - ADO), так что не факт, что прокатит. А вообще зря опасаетесь SQL. Очень простая штука на самом деле. И очень мощная по своим возможностям. Рано или поздно всё равно придётся его использовать. Например, в данном случае нужно кинуть на форму компонент TADOQuery (или что-то другое, не знаю, какой движок Вы используете), обозвать его "q", указать в его параметрах данные для соединения с БД, а в обработчике Edit1.Change прописать: Код:
q.SQL.Clear; q.SQL.Add('SELECT * FROM Имя_таблицы'); q.SQL.Add('WHERE GIC LIKE "%' + trim(Edit1.Text) + '%"'; q.Active := true; Последний раз редактировалось Guaho, 01.09.2018 в 17:48. |
#3
|
|||
|
|||
Подключение к базе FoxPro .dbf через BDE, задача обойтись без SQL запросов если это возможно. DataSource1, Table1, DBGrid1.
|
#4
|
||||
|
||||
Пробовали ту ссылку, что я привёл? Срабатывает?
|
#5
|
|||
|
|||
Да! Там с SQL запросами всё! (
|
#6
|
||||
|
||||
Хм... И это тоже?
Код:
procedure TForm1.Edit1Change(Sender: TObject); begin if Length(Edit1.Text) > 0 then begin ADOTable1.Filtered:=false; ADOTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39; ADOTable1.Filtered:=true; end else ADOTable1.Filtered:=false; end; |