文档章节

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
深圳
程序员
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简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动态库...

天下杰论
2013/03/08
0
0
iPhone开发之SQLite

现在网站开发和软件开发,数据库的支持是少不了的;在iPhone开发中,作为数据持久化的解决方案中,SQLite是不错的选择,它既轻量占用资源少,又可以方便嵌入到程序中,在一些嵌入式设备中有着...

jackyyang
2012/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python中cv2模块imread函数

导入 >> import cv2>> import numpy as np 读图片 >> image_arr = cv2.imread('file_path') 灰度图扩展成彩色图 可以通过图片的channel判断是否是灰度图。如果需要可以将灰度图扩展到RGB......

温子寒
25分钟前
1
0
利用剪切板JS API优化输入框的粘贴体验

直接复制记录下 /**@description 表单输入框粘贴体验优化,出处https://www.zhangxinxu.com/wordpress/?p=8003@author zhangxinxu*/// 遍历所有的输入框[].slice.call(document.qu...

红羊在厦门
32分钟前
2
0
2018CTF大赛学习

1.C伪随机数,可预测,可用来做加密解密,如 int main() { // This program will create same sequence of // random numbers on every program run for(int i = 0; ......

simpower
46分钟前
1
0
XamarinEssentials教程移除键值首选项的键值

XamarinEssentials教程移除键值首选项的键值 如果开发者不再使用首选项中的某一项时,可以将该项移除掉。此时可以使用Preferences类的Remove()方法,该方法可以将存在于首选项中的指定键以及...

大学霸
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部