文档章节

FireDAC 下的 Sqlite [5] - 数据的插入、更新、删除

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 440
阅读 16
收藏 0

先在空白窗体上添加: TFDConnection、TFDPhysSQLiteDriverLink、TFDGUIxWaitCursor、TFDQuery、TDataSource、TDBGrid(并在设计时关联好).

你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:
object DBGrid1: TDBGrid Left = 16 Top = 88 Width = 361 Height = 329 DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Name = 'Tahoma' TitleFont.Style = [] end object FDConnection1: TFDConnection Left = 34 Top = 24 end object FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink Left = 143 Top = 24 end object FDGUIxWaitCursor1: TFDGUIxWaitCursor Provider = 'Forms' Left = 260 Top = 24 end object FDQuery1: TFDQuery Connection = FDConnection1 Left = 344 Top = 24 end object DataSource1: TDataSource DataSet = FDQuery1 Left = 420 Top = 24 end object Button1: TButton Left = 400 Top = 88 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 400 Top = 136 Width = 75 Height = 25 Caption = 'Button2' TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 400 Top = 192 Width = 75 Height = 25 Caption = 'Button3' TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 400 Top = 240 Width = 75 Height = 25 Caption = 'Button4' TabOrder = 4 OnClick = Button4Click end end

代码:
{建立}
procedure TForm1.FormCreate(Sender: TObject);
const
  dbPath = 'C:\Temp\SQLiteTest.sdb';
  strTable = 'CREATE TABLE MyTable(Id integer PRIMARY KEY AUTOINCREMENT, Name string(10), Age byte)'; //Id, Name, Age 三个字段
                                                                                                      //integer PRIMARY KEY AUTOINCREMENT: 自增字段
begin
  if FileExists(dbPath) then DeleteFile(dbPath);

  FDConnection1.ConnectionString := 'DriverID=SQLite; Database=' + dbPath;
  FDConnection1.ExecSQL(strTable);

  FDQuery1.Open('SELECT * FROM MyTable');
end;

{插入}
procedure TForm1.Button1Click(Sender: TObject);
const
  strInsert = 'INSERT INTO MyTable(Name, Age) VALUES(:name, :age)'; //:name, :age 的方式(后面还要以数组的方式给出相应的值), 这比字符串的 Format 函数还要方便.
begin
  FDConnection1.ExecSQL(strInsert, ['AAA', 11]);
  FDConnection1.ExecSQL(strInsert, ['BBB', 22]);
  FDConnection1.ExecSQL(strInsert, ['CCC', 33]);
  FDConnection1.ExecSQL(strInsert, ['DDD', 44]);
  FDConnection1.ExecSQL(strInsert, ['EEE', 55]);
  FDQuery1.Refresh;
end;

{更新}
procedure TForm1.Button2Click(Sender: TObject);
begin
  FDConnection1.ExecSQL('UPDATE MyTable SET Age=:a WHERE Name=:n', [Random(100), 'AAA']);
  FDQuery1.Refresh;
end;

{删除}
procedure TForm1.Button3Click(Sender: TObject);
begin
  FDConnection1.ExecSQL('DELETE FROM MyTable WHERE Age>33');
  FDQuery1.Refresh;
end;

{查询符合条件的第一个结果}
procedure TForm1.Button4Click(Sender: TObject);
var
  V: Variant;
begin
  V := FDConnection1.ExecSQLScalar('SELECT Age FROM MyTable WHERE Name = :x', ['BBB']);
  ShowMessage(V);
end;


本文转载自:http://www.cnblogs.com/del/p/3742423.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
SQLite 指南之FAQ(中文)

1. 如何创建自增字段? 2. SQLite 支持哪些数据类型? 3. 为什么能向 SQLite 数据库的整型字段中插入字符串? 4. 为什么 SQLite 认为表达式 '0'=='00' 为真? 5. 为什么 SQLite 不允许在同一...

晨曦之光
2012/04/12
641
0
android sqlite 批量插入

1手动处理sqlite 的事务 http://blog.csdn.net/pipisky2006/article/details/6917399 SQLite的数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频...

tfc
2012/08/15
0
0
2010年SQLite学习笔记之二(2)

创建数据库文件: >SQLite3 d:/test.db 回车 就生成了一个test.db在d盘。 这样同时也SQLite3挂上了这个test.db 2) 用.help可以看看有什么命令 >.help 回车即可 3)可以在这里直接输入SQL语句创...

jpch
2013/12/11
0
0
iOS开发中的sqlite数据库

1.iOS开发中的数据一般指sqlite,而如果连接服务器,那就另说,那就不是iOS开发直接操作其它数据库,譬如SqlSever,Mysql,Orical。要使用数据库sqlite,首先将libsqlite3.0.dylib加到项目中。...

今日竹石
2014/02/18
0
1
Android 开发中使用 SQLite 数据库

SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都...

红薯
2010/08/22
67.1K
32

没有更多内容

加载失败,请刷新页面

加载更多

09.ajax局部渲染---《Beetl视频课程》

本期视频实现分类实时获取; 内容简介:使用了局部渲染技术,实现分类的实时获取 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK Beetl满足了更...

Gavin-King
13分钟前
1
0
同步访问共享的可变数据(66)

关键字synchronized 保证同一时刻,只有一个线程执行某一个方法或代码块 当一个对象被一个线程修改时,可以阻止其他线程看到其内部的不一致状态 正确的使用同步可以避免任何对象看到其不一致...

Java搬砖工程师
15分钟前
1
0
银行卡二要素真实性查询

验证用户的银行卡号、持卡人姓名是否真实。 示例代码: private static String host = "https://bank.market.alicloudapi.com";private static String path = "/bank2";private sta...

貔貅叔
19分钟前
1
0
iOS补位动画、沙漏效果、移动UITableViewCell、模拟贪吃蛇、拖拽进度等源码

iOS精选源码 JHAlertView - 一款黑白配色的HUD之沙漏效果 继承UIButton的自定义按钮SPButton 用递归算法实现iOS补位动画 iOS 长按移动UITableViewCell JHLikeButton - 有趣的点赞动画 兼容X...

Android爱开源
29分钟前
1
0
上币至iamToken

https://github.com/consenlabs/token-profile 点击Fork按钮,插入到自己的github项目中 cd /Users/shijun/Desktop/blockChain/iamToken git clone https://github.com/yellmi1983/token-pro......

八戒八戒八戒
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部