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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.09.2018, 12:08
kiddan kiddan вне форума
Прохожий
 
Регистрация: 01.09.2018
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Поиск в Table

Подскажите пожалуйста при таком условии
Код:
if not Table1.Locate('GIC', Edit1.Text, [])
then ShowMessage('Такого номера ГИЦ нет')
всё ищет, но в поле 'GIC' бывают и пробелы например ' 1234 ', ' 1234' и естественно это число не находит. Подскажите как организовать поиск таких чисел без SQL запросов?
Ответить с цитированием
  #2  
Старый 01.09.2018, 17:23
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Используйте функцию 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  
Старый 02.09.2018, 10:11
kiddan kiddan вне форума
Прохожий
 
Регистрация: 01.09.2018
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Подключение к базе FoxPro .dbf через BDE, задача обойтись без SQL запросов если это возможно. DataSource1, Table1, DBGrid1.
Ответить с цитированием
  #4  
Старый 02.09.2018, 11:23
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Пробовали ту ссылку, что я привёл? Срабатывает?
Ответить с цитированием
  #5  
Старый 02.09.2018, 11:58
kiddan kiddan вне форума
Прохожий
 
Регистрация: 01.09.2018
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Да! Там с SQL запросами всё! (
Ответить с цитированием
  #6  
Старый 02.09.2018, 12:15
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Хм... И это тоже?
Код:
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;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter