![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
регистр и dbase [D7, dBase, FoxPro]
Вован © (2003-11-26 22:55:00)
Люди помогите-е-е... пожалуйста!!!
Как сделать нечувствительность к регистру при поиске по какому-то индексу в delphi. Пробовал поменять в IndexDefs свойство ixCaseInsensitive на true - не помогает!
Что делать?
AbrosimovA (2003-11-28 15:35:00) [1]
Я делал так, работает и для кириллицы:
procedure TMainForm.SortBtnClick(Sender: TObject);
var IOp: TIndexOptions;
begin
Case SetSort.ItemIndex of
0: IOp:=[];
1: IOp:=[ixDescending];
end;
Case DBGrid1.SelectedIndex of
0: with DataModule1.Cust do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iFio").Name<>"" then DeleteIndex("iFio");
AddIndex("iFio","Fio",Iop);
IndexName:="iFio";
Exclusive:=false;
Open;
end;
1: with DataModule1.Cust do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iAddress").Name<>"" then DeleteIndex("iAddress");
AddIndex("iAddress","Address",Iop);
IndexName:="iAddress";
Exclusive:=false;
Open;
end;
2: with DataModule1.Cust do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iSpec").Name<>"" then DeleteIndex("iSpec");
AddIndex("iSpec","Spec",Iop);
IndexName:="iSpec";
Exclusive:=false;
Open;
end;
3: with DataModule1.Cust do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iWorkTel").Name<>"" then DeleteIndex("iWorkTel");
AddIndex("iWorkTel","WorkTel",Iop);
IndexName:="iWorkTel";
Exclusive:=false;
Open;
end;
4: with DataModule1.Cust do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iHomeTel").Name<>"" then DeleteIndex("iHomeTel");
AddIndex("iHomeTel","HomeTel",Iop);
IndexName:="iHomeTel";
Exclusive:=false;
Open;
end;
end;
end;
Anatoly Podgoretsky (2003-11-28 07:30:00) [2]
Сделай индекс по выражени. следующего типа UPPER(Fld)
Вован (2003-11-27 22:28:00) [3]
function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions)
type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;
Чё-то как-то не помагло...Есть DataModule, DataSource...
А я искал через setkey->gotoNearest;
Может есть какие-то API определяющие или изменяющие регистр...
обхадной путь придумать... Ну кто-нибудь помогите!!!
Lookup тоже попробовал...
Вован (2003-11-27 21:28:00) [4]
Alex_Bredin: Именно в этом, если я ввожу Мама или мама, необхадимо чтобы результат поиска был один и тот же...Спасибо.
Главное поиск...
Вован (2003-11-27 21:28:00) [5]
Michail Dalakov: Спасибо! Ща попробую...
Alex_Bredin (2003-11-27 10:19:00) [6]
возможно дело вовсе не в регистре
опиши проблему подробнее
AbrosimovA (2003-11-27 09:05:00) [7]
По-моему ixCaseInsensitive начинает работать при повторном создании индекса.
Michail Dalakov (2003-11-26 23:12:00) [8]
function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions)
type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;