2019独角兽企业重金招聘Python工程师标准>>>

DELPHI 7 没有办法使用lib文件,这就有点麻烦,但是咱们也没有必要一个一个Query,那样太痛苦了。我当时就好痛苦。咱们可以借助第三方的包装类,有一些是收费的,但是也有一些免费的,具体的信息大家请查看下面的地址 http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

我这里使用的是sqlite simple delphi 这是一个完全免费的包装类,大家可以到它的官方网站下载,http://www.itwriting.com/sqlitesimple.php

下来以后是一个压缩包里面是一个demo。咱们需要里面的两个文件。SQLite3.pas 跟 SQLiteTable3.pas ,把他们复制到工程目录下面,然后在需要操作库的单元文件里面 uses SQLiteTable3 ,然后大家请查看官方的事例代码:

procedure TForm1.btnTestClick(Sender: TObject);

var

slDBpath: string;
sldb: TSQLiteDatabase;
sltb: TSQLIteTable;
sSQL: String;
Notes: String;
begin
slDBPath := ExtractFilepath(application.exename)+'test.db';
sldb := TSQLiteDatabase.Create(slDBPath);
try
if sldb.TableExists('testTable') then 
begin
sSQL := 'DROP TABLE testtable';
sldb.execsql(sSQL);
end;
sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,';
sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);';
sldb.execsql(sSQL);
sldb.execsql('CREATE INDEX TestTableName ON [testtable]([Name]);');

//begin a transaction

sldb.BeginTransaction;

sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Some Name",4,587.6594,"Here are some notes");';

//do the insert

sldb.ExecSQL(sSQL);

sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,4758.3265,"More notes");';

//do the insert

sldb.ExecSQL(sSQL);

//end the transaction

sldb.Commit;

//query the data

sltb := slDb.GetTable('SELECT * FROM testtable');

try

if sltb.Count > 0 then

begin

//display first row

ebName.Text := sltb.FieldAsString(sltb.FieldIndex['Name']);

ebID.Text := inttostr(sltb.FieldAsInteger(sltb.FieldIndex['ID']));

ebNumber.Text := floattostr( sltb.FieldAsDouble(sltb.FieldIndex['Number']));

Notes := sltb.FieldAsBlobText(sltb.FieldIndex['Notes']);

memNotes.Text := notes;

end;

finally

sltb.Free;

end;

finally

sldb.Free;

end;

end;

这样操作起来是不是很简单,^_^

<4> PHP调用SQLite3 ,这个不用我多废话,请参看我写的《通过Apache + PHP5 + PDO 连接 SQLite3 数据库》一文。

<5>Visual Basic , 因为我没有仔细研究,我无发言权,请参看SQLite官方的资料

http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

COM Wrappers / Visual Basic DLLs部分

<6>JAVA 请参看http://www.loveunix.net/bbs/index.php?showtopic=35051 帖子,讲述的比较详细。

第二部分 使用事务写库

事务的具体理论概念我不想多说了,如果不明白的请大家到GOOGLE搜索关键字“数据库事务”,能找到N多文章资料。我们使用VC++来做事例。还有使用到上面的两个函数

void WriteSqlite()

{

try

{

OpenSqlite();

execSQL("begin transaction;"); \\开始一个事务,记录操作

char strSQL[MAX_PATH];

sprintf(strSQL,"INSERT INTO Table_Name (nAction1, nAction2, nAction3) VALUES(%d,%d,%d)", szVar1,szVar2, szVar3,);

execSQL(strSQL);

execSQL("commit transaction;"); \\执行提交之前数据库自动保存用户对数据库操作序列。

return;

}

catch(...)

{

execSQL("rollback transaction;");

}

//Add custom code

}

本文至此而完,上述代码均在 Windows2000 Pro + VC++6 英文企业版本 + Delphi7 英文企业版 编译通过

转载于:https://my.oschina.net/u/1777508/blog/359149

Delphi7中不用控件连接sqlite相关推荐

  1. delphi多线程超时控Delphi7中Indy控件对于网络数据的接收

    1.引言 随着我国经济和社会的发展,水资源的科学管理与合理配置显得越来越重要.而获取大量的.实时的.动态的水资源及其相关信息则是实现水资源科学管理的基础.传统的水资源信息获取采用人工抄取数据后逐级的方 ...

  2. vc mysql控件_VC++使用ActiveX控件连接和操作数据库

    VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题. VC++使用ActiveX控件连接和操作数据库的方法分两种: 1.通 ...

  3. 嵌套母版页中的控件访问

    嵌套母版页中的控件访问 左直拳 嵌套母版页中的控件访问很别扭. 如果一个内容页对应一个没有嵌套的母版页,访问这个母版页上的控件众所周知:类似(Button)Page.Master.FindContro ...

  4. Android中ExpandableListView控件基本使用

    本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 mai ...

  5. android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础

    各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView.闲话休提,言归正转.让我们一起Talk Androi ...

  6. LabVIEW中ActiveX控件、ActiveX服务器和类型库注册

    LabVIEW中ActiveX控件.ActiveX服务器和类型库注册 如何在计算机上手动注册ActiveX控件(.ocx ).ActiveX服务器(.DLL和.EXE)以及类型库(.TLB )? 在L ...

  7. pyqt中treeview控件右键单击操作

    pyqt中treeview控件右键单击操作 pyqt开发GUI的第一篇文章 问题描述 pyqt开发GUI的第一篇文章 用pyqt5开发了一款图像处理软件,记下一些曾经困扰我的一些问题,有不对之处还请大 ...

  8. 基于VB中WINSOCK控件的网上象棋系统的实现

    本文发表在<微型机与应用>杂志2001年第3期. 基于 VB 中 WINSOCK 控件的网上象棋系统的实现 马根峰1   ,  孙艳2  , 王平1 (1.重庆邮电学院自动化学院,重庆,4 ...

  9. VB.net数据库编程中DataGrid控件的使用技巧

    VB.net数据库编程中DataGrid控件的使用技巧 如何用同一个DataGrid显示不同的数据表:如何用DataGrid显示主表/明细表的内容:如何用DataGrid分页显示或编辑数据表的记录.这 ...

最新文章

  1. AI机器学习科研助力 | 计算机科学方向一对一科研项目
  2. SqlHelper++
  3. 什么是TypeScript?为什么我要用它代替JavaScript? [关闭]
  4. 用 Java 实现断点续传 (HTTP)
  5. Spring Cloud Netflix项目进入维护模式之我见
  6. Frameless - 用于预览 iOS8 原型的浏览器
  7. base64的php文件上传,PHP传统文件上传和Base64位文件上传
  8. 史上最强福利,阿里云半价+Plesk免费2万台速抢!
  9. 前端学习(3039):vue+element今日头条管理-侧边菜单栏的展示和收缩
  10. Z-Stack通过按键中断实现长按功能
  11. sql按年、月、日、查询排序
  12. 【贪心】LeetCode 3. Longest Substring Without Repeating Characters
  13. 数值线性代数徐树方pdf_MIT线性代数4-8:矩阵分解,向量空间,列空间和零空间,线性方程组求解...
  14. centos卸载nvidia驱动_linux卸载nvidia驱动 如何彻底删除N卡驱动?
  15. 高中计算机会考操作题网页制作,高中信息技术会考网页制作操作知识点Word
  16. oppo r11s鸿蒙固件,OPPO R11s官方固件rom刷机包_OPPO R11s系统升级更新包下载
  17. win7旗舰版系统下usb外接无线网卡安装教程
  18. 服务器cpu一直处于100%解决思路
  19. 24岁女孩与30多岁成熟有家男人的午夜对白
  20. 漫画:什么是蓝绿部署?

热门文章

  1. Labview之子面板的使用
  2. 聚合支付、单商户多商户支付、微信/支付宝/PayPal支付流程、支付政策法规
  3. 如何打造高效的团队(四)- 团队效能度量
  4. 考幼儿园高级园长证需要些什么材料
  5. MySQL 案例实战--MySQL数据库 存储过程 存储函数
  6. PHP保存公众号文章图片,如何在电脑上保存微信公众号文章封面图片?
  7. 卫星跟踪算法c语言,以SoC FPGA为设计平台的北斗卫星信号跟踪算法的设计
  8. 使用poi实现excel的上传下载
  9. CDC工具之Debezium
  10. Python+Vue计算机毕业设计古诗词鉴赏与交流平台04ps3(源码+程序+LW+部署)