//kbmMemTable
unit 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, , False);
  kbmMemTable1.FieldDefs.Add('Value', FtString, , False);
  kbmMemTable1.FieldDefs.Add('Time', ftDateTime, , 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 := to 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',,[]) 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',,[]) 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',,[]) 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一致,以下是我简单的应用示例,实现了增删改查等基本功能:

KbmMemTable的简单应用(增删改查示例)的更多相关文章

  1. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  2. springboot(十五):springboot+jpa+thymeleaf增删改查示例

    这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...

  3. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

  4. (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

    http://www.ityouknow.com/springboot/2017/09/23/spring-boot-jpa-thymeleaf-curd.html 这篇文章介绍如何使用 Jpa 和 ...

  5. Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

    这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越 ...

  6. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  7. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  8. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  9. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  10. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

随机推荐

  1. kafka的并行度与JStorm性能优化

    kafka的并行度与JStorm性能优化 > Consumers Messaging traditionally has two models: queuing and publish-subs ...

  2. EasyNVR完美搭配腾讯云CDN/阿里云CDN进行RTMP、HLS直播加速的使用说明

    1.相关资料入口 腾讯云LVB EasyNVR.com 2.加速说明 2.1. 腾讯LVB加速 2.1.1. 开通服务 腾讯云视频LVB开通入口 2.1.2. 登录进入控制台 腾讯云直播控制台 2.1 ...

  3. java List的相关工具类

    1. <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</ar ...

  4. IIS架构介绍

    IIS7及以上版本提供的请求-处理架构包括以下内容: Windows Process Activation Service(WAS)可以让站点支持更多协议,不仅仅是HTTP和HTTPS 可以通过增加或 ...

  5. PhotoKit type类型

    参考链接: https://www.jianshu.com/p/42e5d2f75452/ 1.获取图像类型 enum PHAssetCollectionType : Int { case Album ...

  6. 让Xcode支持高版本系统设备真机测试

    最新支持11.2 (15C107) Xcode只可以支持iPhone手机对应iOS系统以下的真机测试.一般想要支持最新的iPhone手机系统,有两个方法. 第一.就需要更新Xcode,这一个方法有一个 ...

  7. 【python】-- 递归函数、高阶函数、嵌套函数、匿名函数

    递归函数 在函数内部,可以调用其他函数.但是在一个函数在内部调用自身,这个函数被称为递归函数 def calc(n): print(n) if int(n/2) == 0: #结束符 return n ...

  8. Django 之 admin组件使用&源码解析

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED ...

  9. 如何更改CSDN博客高亮代码皮肤的样式,使博客看起来更有范(推荐)

    由于本人写博客的时候,也没有配置博客的相关属性,因此贴出来的代码块都是CSDN默认的,因此代码背景色都是白色的,如下所示: 但是本人在浏览他人博客的时候,发现有些博客的代码块看起来比较有范,整个代码库 ...

  10. Javaweb基础--->Servlet(转载)

    今天看到这篇博客,感觉还不错,拿来借鉴学习一下. 一.Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客 ...