Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.24;
Скачать: CL | DM;

Вниз

Поиск части строки   Найти похожие ветки 

 
Dim!S   (2003-03-04 03:41) [0]

Уважаемые мастера!
Как сделать так чтобы поиск велся по части строки.
Пример:
Есть поле Korres(текстовое). В нем есть: предприниматель(ЧП, част. пред. или просто без всего) Сидоров
Задача:
Необходимо организовать поиск по части строки и желательно без учета регистра символов. Как это лучше осуществить? Может кусочек кода у кого есть?

Спасибо.


 
Наталия ©   (2003-03-04 06:06) [1]

Используй запрос типа select ... from ... where UPPER(field1)LIKE "%СИДОРОВ%"


 
Dim!S   (2003-03-04 06:31) [2]

Используется компонент TTable


 
aaa3aaa   (2003-03-04 07:09) [3]

Используется компонент TTable
тогда Filter
но ИМХО . Лучше б ты послушал
> Наталия © (04.03.03 06:06)

Потому как загоняешь себя в угол ограниченных возможностей.


 
Наталия ©   (2003-03-04 07:15) [4]

Locate не пробовал?


 
Соловьев ©   (2003-03-04 09:21) [5]

Событие onFilterRecord у TTable. Access := true когда у тебя выполняется нужное условие.


 
denary   (2003-03-06 01:47) [6]

Locate с двумя параметрами - именно по части строки и без учета регистра символов. Наизусть их не помню, посмотри формат.


 
kaif ©   (2003-03-06 02:02) [7]

Делай через запрос TQuery. Через TTable не делай. Запросы такого рода в Paradox происходят очень быстро (из 3000 записей LIKE сработает за 50 миллисекунд). А через TTable будешь более 1 сек ждать.


 
leonon ©   (2003-03-06 09:55) [8]

// Поиск нужной записи по полю от текущего положения
function TfrmSprav.FindRecord(aField : TField): boolean;
Var
B : TBookMark;
Splash : TForm;
begin
Result := False;
if InputQuery("Поиск", "Укажите значение для поля ""+aField.DisplayName+""", LastFindStr) then begin
Splash := ShowSplashWindow(Application.Icon,"Обработка данных. Подождите, пожалуйста...", False,
Application.MainForm);
Application.ProcessMessages;
Grid.DataSource.DataSet.DisableControls;
try
B := Grid.DataSource.DataSet.GetBookmark;
While Not Result and Not Grid.DataSource.DataSet.Eof do begin
Grid.DataSource.DataSet.Next;
Result := Pos(AnsiUpperCase(Trim(LastFindStr)),
AnsiUpperCase(Trim(Grid.DataSource.DataSet.FieldByName(aField.FullName).AsString))) <> 0;
end;
if Not Result then Grid.Datasource.Dataset.GotoBookmark(B);
finally
Splash.Free;
Grid.Datasource.Dataset.EnableControls;
end;
if Not Result then MsgBox("Внимание", "Запись не найдена!", mb_IconInformation + mb_Ok);
end;
end;


 
VAleksey ©   (2003-03-06 10:18) [9]

Назнач условие фильтра, а потом методы датасета
FindFirst и FindNext



Страницы: 1 вся ветка

Текущий архив: 2003.03.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-76505
Dinn
2003-03-12 18:07
2003.03.24
Обработка исключительных ситуаций


7-76697
maxfiles
2003-01-28 00:35
2003.03.24
Перенаправление звука на звуковые платы.


14-76654
Vavan
2003-03-08 14:44
2003.03.24
ошибка odac


9-76252
Волшебник
2002-10-22 09:45
2003.03.24
Люди, помогите, ищу РАБОТАЮЩИЙ пример по использованию DirectPlay


1-76490
Вадим
2003-03-12 15:02
2003.03.24
Ничего не понимаю или глюки с буфером обмена