Midas 中文单字过滤补丁

来源:互联网 发布:大连程序员工资 编辑:程序博客网 时间:2024/05/05 18:01

 如:like '%小%'
单字过滤

经测试两种方式 Filter属性、Locate方法 正常。

提供各种版本的补丁,欠缺的版本会尽快补上。

http://u.skygz.com/ContentPane.aspx?down=ok&filepath=skygz%2f%c6%e4%cb%fc%2fMidaslib.rar

 

测试所用代码:

Unit Main;

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBClient, StdCtrls, Grids, DBGrids;

Type
  TForm1 = Class(TForm)
    Cmdlocate: TButton;
    TxtValue: TEdit;
    Label1: TLabel;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    CmdFilter: TButton;
    Procedure CmdlocateClick(Sender: TObject);
    Procedure CmdFilterClick(Sender: TObject);
    Procedure FormCreate(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;

Var
  Form1: TForm1;

Implementation

{$R *.dfm}
//注释引用MidasLib,将改用Midas.dll
Uses
  MidasLib; 

Procedure TForm1.CmdlocateClick(Sender: TObject);
Begin
  ClientDataSet1.Filtered := false;
  ClientDataSet1.Locate('text1', TxtValue.Text, [loCaseInsensitive, loPartialKey]);
End;

Procedure TForm1.CmdFilterClick(Sender: TObject);
Begin
  ClientDataSet1.Filtered := false;
  ClientDataSet1.Filter := 'text1 like ''%' + TxtValue.Text + '%''';
  ClientDataSet1.Filtered := true;
End;
Procedure TForm1.FormCreate(Sender: TObject);
Const
  Datas: Array[0..5] Of String = ('中', '国', '人', '民', '银', '行');
Var
  I: Integer;
Begin

  TxtValue.Text := '国';
  With ClientDataSet1 Do
  Begin
    With FieldDefs.AddFieldDef Do
    Begin
      DataType := ftAutoInc;
      Name := 'ID';
    End;
    With FieldDefs.AddFieldDef Do
    Begin
      DataType := ftString;
      Size := 20;
      Name := 'Text1';
    End;
    CreateDataSet;
    For I := 0 To 50 Do
    Begin
      Randomize;
      Insert;
      FieldByName('Text1').AsString := Datas[Random(6)] + '中文_' + IntToStr(I + 1);
      Post;
    End;
  End;
End;

End.