这里使用的是ZEOSDBO控件 官网为http://sourceforge.net/projects/zeoslib/ 最新版本为 7.1.4 Last Update: 2015-01-02
支持的很多。。。
(pooled.* ASA7 ASA8 ASA9 ASA12 oracle oracle-9i sqlite sqlite-3 interbase-6
firebird-1.0 firebird-1.5 firebird-2.0 firebird-2.1 firebird-2.5 firebirdd-1.5
firebirdd-2.0 firebirdd-2.1 firebirdd-2.5 postgresql postgresql-7 postgresql-8 postgresql-9
mysql mysql-4.1 mysql-5 mysqld-4.1 mysqld-5 MariaDB-5 mssql sybase FreeTDS_MsSQL<=6.5
FreeTDS_Sybase<10 FreeTDS_Sybase-10+ FreeTDS_MsSQL-7.0 FreeTDS_MsSQL-2000 FreeTDS_MsSQL>=2005 ado)

一、安装控件
1、进入 …\ZEOSDBO-7.1.4-stable\packages\delphi7 双击 ZeosDbo.bpg
然后点击Delphi7菜单栏的 project à compile all projects

编译完点击 ok
在这里插入图片描述](https://img-blog.csdnimg.cn/201903211311077.png)

2、在Delphi7菜单栏 Tool àEnvironmentOptionsàLibraryàLibrary Path中加入路径
(所在文件夹)\ZEOSDBO-7.1.4-stable\packages\delphi7\build

3、双击 …\ZEOSDBO-7.1.4-stable\packages\delphi7\ZComponentDesign.dpk
点击install
安装完毕 控件就都出现了

二、读取数据库
1、新建个application 拖入DbGrid1、DataSource1、ZQuery1、ZConnection1、listview1、Button1、Button2 7个控件

2、首先把控件链接起来,我习惯用代码写
在Form1的onCreate事件中

procedure TForm1.FormCreate(Sender: TObject);
var
path:string;
begin
path:=ExtractFileDir(ParamStr(0));  //获取根目录路径
ZQuery1.Connection:=ZConnection1;
DataSource1.DataSet:=ZQuery1;
DBGrid1.DataSource:=DataSource1;with ZConnection1 dobeginProtocol :='sqlite-3' ;   //数据库类型port:=3306;               //端口HostName := '127.0.0.1';  Database := path + '/FpcEfficiency.db';//数据库路径Connected:=True;end;
end;

3、在Listview1中显示表名
1)修改Listview1的 ViewStyle属性为 vsReport ,双击Listview1 添加一个column 修改Caption属性为 数据库表名,RowSelect属性改为True,GridLines属性改为True;
2)修改button2 caption属性为 读取表 button1 Caption属性为连接表

3)在Button2的OnClick事件中写入代码

procedure TForm1.Button2Click(Sender: TObject);
vars:TStrings;i:Integer;
beginListView1.Items.Clear;trys:=Tstringlist.Create;ZConnection1.GetTableNames('',s);//第一个参数为过滤  不过滤为空for i:= 0 to s.Count -1 dobeginListView1.Items.Add.Caption := s.Strings[i];end;finallyFreeAndNil(s);end;
end;

这时,已经能读取表名了

4、在DbGrid1中显示数据库内容
在Button1的OnClick事件中写入代码

procedure TForm1.Button1Click(Sender: TObject);
begin
if ListView1.Items.Count = 0  then
ShowMessage('请先读取表名')
else if ListView1.SelCount<=0 then
ShowMessage('先选择表!')
else
beginwith ZQuery1 dobeginClose;SQL.Clear;SQL.add('select * from ' + ListView1.Selected.Caption);Open;end;
end;
end;

这时若发现全部为乱码,修改ZConnection1的AutoEncodeString属性为True就好了
5、由于用的是Dbgrid,Text字段都不显示为(Memo)

网上有很多解决的办法,大部分都推荐换DbGridh控件,这里既然用了 就不换了 用代码搞定
Query1 Fields 有个ongettext事件 用这个实现
定义两个过程

procedure TForm1.ShowTextField(Sender: TField; var Text: string;DisplayText: Boolean);
beginText := Sender.AsString;
end;procedure TForm1.SetTextFieldEvent(const ADatSet: TZQuery);
vari: integer;
beginwith ADatSet dobeginDisableControls;tryfor i := 0 to Fields.Count - 1 doif Fields[i] is TMemoField thenFields[i].OnGetText := ShowTextField;finallyEnableControls;end;end;
end;

然后在ZQuery1的AfterOpen事件中写入代码

procedure TForm1.ZQuery1AfterOpen(DataSet: TDataSet);
begin
SetTextFieldEvent(ZQuery1);
end;

复制代码
三、最后就是DbGrid1颜色调整了 在DbGrid1 onDrawColumnCell事件中自己发挥了

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
var i :integer;
beginif gdSelected in State then Exit;
//定义表头的字体和背景颜色:for i :=0 to (Sender as TDBGrid).Columns.Count-1 dobegin(Sender as TDBGrid).Columns[i].Title.Font.Name :='宋体'; //字体(Sender as TDBGrid).Columns[i].Title.Font.Size :=9; //字体大小(Sender as TDBGrid).Columns[i].Title.Font.Color :=$000000ff; //字体颜色(红色)(Sender as TDBGrid).Columns[i].Title.Color :=$0000ff00; //背景色(绿色)end;
//隔行改变网格背景色:if zQuery1.RecNo mod 2 = 0 then(Sender as TDBGrid).Canvas.Brush.Color := clInfoBk //定义背景颜色else(Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
//定义网格线的颜色:DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);with (Sender as TDBGrid).Canvas do //画 cell 的边框beginPen.Color := $00ff0000; //定义画笔颜色(蓝色)MoveTo(Rect.Left, Rect.Bottom); //画笔定位LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线Pen.Color := $0000ff00; //定义画笔颜色(绿色)MoveTo(Rect.Right, Rect.Top); //画笔定位LineTo(Rect.Right, Rect.Bottom); //画绿色的竖线end;
end;

DELPHI sqlite数据库相关推荐

  1. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密

    //摘自:http://bbs.witbase.com/thread-1141-1-1.html Delphi纯代码连SQLite数据库,同时支持数据库的加密解密 Delphi纯代码连SQLite数据 ...

  2. delphi通过php连接数据库,delphi2010中使用sqlitesimpledelphi连接sqlite数据库并解决中...

    delphi2010中使用sqlitesimpledelphi连接sqlite数据库并解决中 作者:小涵 | 来源:互联网 | 2014-05-28 16:21 阅读: 6469 应女朋友的要求,要写 ...

  3. delphi使用sqlite数据库时的中文路径问题

    https://blog.csdn.net/yuehaiyang/article/details/4184198 如果数据库所在的路径是中文路径的话,根本运行不起来,会报错,因为sqlite用的是ut ...

  4. DelphiXE7操作sqlite数据库

    准备工作: 1.用SQLiteExpertPers建立一个sqlite数据库. 2.打开delphi xe7. 一.FireDAC法 设置库联接 1.放入FDConnection1控件 2.放入FDC ...

  5. sqlite数据库加锁提交_如何解锁SQLite数据库?

    如何解锁SQLite数据库? sqlite> DELETE FROM mails WHERE (`id` = 71); SQL error: database is locked 如何解锁数据库 ...

  6. android数据库isnull,Android中SQLite数据库知识点总结

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  7. C++ VS2013环境编译使用sqlite数据库全过程

    转载:http://www.cnblogs.com/imoon/archive/2012/11/30/2796726.html 转载:https://blog.csdn.net/hjm4702192/ ...

  8. android 数据库索引,SQLite数据库提供警告自动索引(列)升级Android L后

    我已经升级了我的Nexus 7与Android 5.0 Lollipop,之前,我的应用程序运行良好与SQLite数据库,但现在每当我执行任何类型的查询,它给我log cat错误,如: 12-09 1 ...

  9. 操作SQLite数据库

    本文摘自: http://docs.blackberry.com/en/developers/deliverables/25108/Creating_and_deleting_SQLite_datab ...

  10. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

最新文章

  1. 《LeetCode力扣练习》第160题 相交链表 Java
  2. 我的微信'智障聊天助手'的设计思路
  3. 千万级日订单下,饿了么异地多活数据实施DRC的应用实践
  4. 道旅:使用ARMS做业务监控数据清洗
  5. ubuntu安装postman
  6. Asp程序做页面的301跳转,使得cnasda.com跳转到www.cnasda.com
  7. python柱状图挨在一起_echarts多个柱状图展示问题(bar都挤到一起了)
  8. matlab 求解进度,报告测试运行进度的插件
  9. 信息学奥赛一本通 2048:【例5.18】串排序
  10. Python字符串加密
  11. 软件工程计算机组成原理,软件工程--0计算机组成原理.pdf
  12. 怎么做手机App测试?app测试详细流程和方法介绍
  13. 《CMS后台系统》项目实战 详细分解
  14. CentOS 安装火狐的 flash插件
  15. 无法启动此程序,因为计算机中丢失MSVCP120.dll文件、应用程序无法正常启动0xc000007b
  16. 移动cmtds设置服务器无响应,总感觉手机的4G信号变差了?跟我这样设置,让你的信号瞬间满格...
  17. Android获取手机中的所有音乐地址
  18. 烤仔说 | 在 Sorare 等你“一球成名”(内含教程)
  19. 系统论:利用系统论改进做事方法(行动指南)
  20. linux中装ensp_华为模拟器eNSP安装(最新)网络工程师必备!

热门文章

  1. 网络社区划分的算法分类(2)
  2. 技巧:Eclipse阿里代码规范插件
  3. echarts地图随机点生成
  4. (附源码)计算机毕业设计ssm大学生网络安全题库系统
  5. HTTP的REST服务简介
  6. spfa算法(c++)
  7. 【QT】QT字体详解
  8. ESD-PCIe 402-1 CAN卡驱动安装及测试
  9. apache 压力测试工具 ab ,带post参数,token请求
  10. 火狐浏览器linux最新版本下载,火狐浏览器Linux最新版下载