博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KbmMemTable的简单应用(增删改查示例)
阅读量:7012 次
发布时间:2019-06-28

本文共 4440 字,大约阅读时间需要 14 分钟。

//kbmMemTableunit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, Grids, DBGrids, DB, StdCtrls, kbmMemTable; type  TForm1 = class(TForm)    Button1: TButton;    DataSource1: TDataSource;    DBGrid1: TDBGrid;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Button5: TButton;    Button6: TButton;    Button7: TButton;    procedure Button1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button5Click(Sender: TObject);    procedure Button6Click(Sender: TObject);    procedure Button7Click(Sender: TObject);  private    {
Private declarations }  public    {
Public declarations }  end; var  Form1: TForm1;  kbmMemTable1 : TkbmMemTable;  Id:Integer; implementation {
$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);begin  //建表  kbmMemTable1.FieldDefs.Clear;  kbmMemTable1.FieldDefs.Add('Id', ftInteger, 0, False);  kbmMemTable1.FieldDefs.Add('Value', FtString, 20, False);  kbmMemTable1.FieldDefs.Add('Time', ftDateTime, 0, False);  kbmMemTable1.IndexDefs.Add('Index1','Id',[]);//定义索引  kbmMemTable1.CreateTable;  kbmMemTable1.Active := True;end; procedure TForm1.Button2Click(Sender: TObject);var  fld_Id:TIntegerField;  fld_Value:TStringField;  fld_Time:TDateTimeField;  i:Integer;begin  //插入  with kbmMemTable1 do  begin    DisableControls; //切断数据感知控件    try      Open; //打开      //定义Field      fld_Id:=TIntegerField(FieldByName('Id'));      fld_Value:=TStringField(FieldByName('Value'));      fld_Time:=TDateTimeField(FieldByName('Time'));      for i := 0 to 9 do      begin        Inc(Id);        Append; //附加数据        //赋值        fld_Id.AsInteger := Id;        fld_Value.AsString := 'Hello PFeng!'+inttostr(Id);        fld_Time.AsDateTime := Now;        Post; //确定      end;      UpdateIndexes;//更新索引    finally      EnableControls; //连接数据感知控件    end;  end;end; procedure TForm1.Button3Click(Sender: TObject);var  fld_Id:TIntegerField;  fld_Value:TStringField;  fld_Time:TDateTimeField;begin  //更新  with kbmMemTable1 do  begin    Open;    fld_Id:=TIntegerField(FieldByName('Id'));    fld_Value:=TStringField(FieldByName('Value'));    fld_Time:=TDateTimeField(FieldByName('Time'));    if Locate('Id',5,[]) then    begin      Edit;      fld_Value.AsString := '内容被修改';      fld_Time.AsDateTime := Now;      Post;    end;  end;end; procedure TForm1.Button4Click(Sender: TObject);var  fld_Id:TIntegerField;  fld_Value:TStringField;  fld_Time:TDateTimeField;begin  //查询  with kbmMemTable1 do  begin    Open;    fld_Id:=TIntegerField(FieldByName('Id'));    fld_Value:=TStringField(FieldByName('Value'));    fld_Time:=TDateTimeField(FieldByName('Time'));    if Locate('Id',5,[]) then    ShowMessage(fld_Value.AsString);    //还可以用FindKey实现,结合索引速度更快    // kbmMemTable1.IndexFieldNames:='Id';    // if kbmMemtable1.FindKey([5]) then ...  end;end; procedure TForm1.Button5Click(Sender: TObject);var  fld_Id:TIntegerField;  fld_Value:TStringField;  fld_Time:TDateTimeField;begin  //删除  with kbmMemTable1 do  begin    Open;    fld_Id:=TIntegerField(FieldByName('Id'));    fld_Value:=TStringField(FieldByName('Value'));    fld_Time:=TDateTimeField(FieldByName('Time'));    if Locate('Id',5,[]) then    begin      Delete;      UpdateIndexes;    end;  end;end; procedure TForm1.Button6Click(Sender: TObject);var  fld_Id:TIntegerField;  fld_Value:TStringField;  fld_Time:TDateTimeField;  id:Integer;begin  //循环比较最小值  with kbmMemTable1 do  begin    Open;    fld_Id:=TIntegerField(FieldByName('Id'));    fld_Value:=TStringField(FieldByName('Value'));    fld_Time:=TDateTimeField(FieldByName('Time'));    DisableControls;    try      First;      id := fld_Id.AsInteger;      while not Eof do      begin        if id > fld_Id.AsInteger then        id := fld_Id.AsInteger;        Next;      end;      Locate('Id',id,[]);    finally      EnableControls;    end;  end;end; procedure TForm1.Button7Click(Sender: TObject);begin  //清空  kbmMemTable1.EmptyTable;end; procedure TForm1.FormCreate(Sender: TObject);begin  kbmMemTable1 := TkbmMemTable.Create(Self);  DataSource1.DataSet := kbmMemTable1;end; end.

KbmMemTable是一款高效且强大的内存表控件,内存表顾名思义其最大的优势就是速度,KbmMemTable不仅完美地实现了高效的特征,同时,最新版本还支持索引、SQL语句等高级用法。其用法超简单,基本用法和ClientDataSet一致,以下是我简单的应用示例,实现了增删改查等基本功能:

转载于:https://www.cnblogs.com/chenmfly/p/4818321.html

你可能感兴趣的文章
关于SaaS和数据恢复的6大谬误
查看>>
调查:95% 的 APT 攻击源起社交网站
查看>>
《Kali Linux渗透测试的艺术》—第2章2.3节安全测试方法论
查看>>
《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的应用...
查看>>
《软件工艺师:专业、务实、自豪》一3.7.1 软件工艺峰会
查看>>
《善用佳软:高效能人士的软件应用之道》一2.4 项目管理:免费Project查看软件汇总...
查看>>
Galera 将死 — MySQL Group Replication 发布
查看>>
Mozilla 发现用于中间人攻击的证书
查看>>
Docker 中管理数据 【已翻译100%】
查看>>
《Unity 5.x游戏开发实战》一2.2 Unity中的C#脚本
查看>>
《OOD启思录》—第2章2.3节 类耦合与内聚
查看>>
【好书推荐】适合开发者学习DevOps的5本好书
查看>>
11个Linux基础面试问题
查看>>
《嵌入式 Linux C 语言应用程序设计(修订版)》一导读
查看>>
《Python金融大数据分析》一2.3 延伸阅读
查看>>
Android View事件传递详解
查看>>
Elasticsearch-SQL
查看>>
我的失败与伟大 —— 上市之后的规划
查看>>
【Spark Summit East 2017】不必犹豫,使用Spark 2.0结构化流
查看>>
HTTPFS: 基于HTTP操作hadoop hdfs文件系统
查看>>