KbmMemTable的简单应用(增删改查示例)
//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的简单应用(增删改查示例)的更多相关文章
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
- (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
http://www.ityouknow.com/springboot/2017/09/23/spring-boot-jpa-thymeleaf-curd.html 这篇文章介绍如何使用 Jpa 和 ...
- Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越 ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
随机推荐
- C#多线程简单例子讲解
C#多线程简单例子讲解 标签: 多线程c#threadobjectcallbacktimer 分类: C#(7) 转载网址:http://www.knowsky.com/540518.html .NE ...
- Redis源码阅读-Dict哈希字典
Dict和Java中的HashMap很相似,都是数组开链法解决冲突. 但是Redis为了高性能, 有很多比较微妙的方法,例如 数组的大小总是2的倍数,初始大小是4. rehash并不是一次就执行完,而 ...
- spring mvc数据验证
今天来说一下.前段验证,与后端数据验证.大家都知道.在我们.注册与登陆的时候,往往需要对数据进行效验.那么前段我们都知道,可以使用,js去做处理. 今天主要讲解.后端的数据效验.这里我们采用Hiber ...
- python3读取BJDA药品经营企业数据
#-*- coding:utf-8 -*- #读取北京FDA的药品经营企业数据 # 20161125 zhangshaohua import re import urllib.request impo ...
- 多媒体开发之--- rtsp 中的H264 编码+打包+解码相关知识es、pes、ts...
1)ES流(Elementary Stream): 也叫基本码流,包含视频.音频或数据的连续码流. 2)PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的 ...
- [转]maven2中snapshot快照库和release发布库的区别和作用
Post by 铁木箱子 in 技术杂谈 on 2010-08-03 17:17 [转载声明] 转载时必须标注:本文来源于铁木箱子的博客http://www.mzone.cc[原文地址] 原文永久地址 ...
- VirtualBox + CentOS 虚拟机网卡配置
摘要: 要学好Linux,还是得自己搭建虚拟机. VirtualBox比较小巧简单,容易上手.在配合CentOS 6.4使用时,首要的问题就是网卡配置,尤其是使用SSH终端仿真程序(例如SecureC ...
- Linux进程间通信(三) - 信号
什么是信号 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是进程间通 ...
- Laravel手记:执行route:cache时报LogicException
laravel5的路由支持缓存.需要执行以下命令: php artisan route:cache 执行完毕后,报出以下错误: Route cache cleared! [LogicException ...
- 解决ubuntu无法进入unity模式
终端输入如下命令: 1.sudo add-apt-repository ppa:gnome3-team/gnome3 2.sudo apt-get update 3.sudo apt-get inst ...