FireDAC 下的 Sqlite [3] - 获取数据库的基本信息
在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemo
procedure TForm1.FormCreate(Sender: TObject);
var
List: TStrings;
V: Variant;
begin
FDConnection1.Open('DriverID=SQLite; Database=C:\Temp\FDDemo.sdb'); List := TStringList.Create; FDConnection1.GetInfoReport(List);
Memo1.Clear;
Memo1.Lines.Add('==> 获取连接信息:');
Memo1.Lines.AddStrings(List); FDConnection1.GetTableNames('', '', '', List);
Memo1.Lines.Add(#13#10'==> 获取数据库中的表名列表:');
Memo1.Lines.AddStrings(List); FDConnection1.GetTableNames('', '', '', List, [], [tkView]);
Memo1.Lines.Add(#13#10'==> 获取数据库中的查询名列表:');
Memo1.Lines.AddStrings(List); FDConnection1.GetFieldNames('', '', 'Orders', '', List);
Memo1.Lines.Add(#13#10'==> 获取 Orders 表中的字段名列表:');
Memo1.Lines.AddStrings(List); V := FDConnection1.ConnectionMetaDataIntf.GetTables([], [tkTable], '', '', '').Rows[0].GetData(0);
Memo1.Lines.Add(#13#10'==> 获取第一个表中第一列的第一个数据:');
Memo1.Lines.Add(V); List.Free;
end;
{结果如下:}
{...............................................................
==> 获取连接信息:
================================
Connection definition parameters
================================
Name=Unnamed
DriverID=SQLite
Database=C:\Temp\FDDemo.sdb
================================
FireDAC info
================================
Tool = RAD Studio XE6
FireDAC = 10.0.1 (Build 69712)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver SQLite ...
DLL =
Client version = 3.8.3.1
Compile options = ENABLE_COLUMN_METADATA;ENABLE_FTS3;
ENABLE_FTS3_PARENTHESIS;ENABLE_FTS4;ENABLE_RTREE;
ENABLE_STAT4;HAS_CODEC;OMIT_AUTOINIT;
OMIT_DEPRECATED;SYSTEM_MALLOC;TEMP_STORE=2;
THREADSAFE=2
================================
Session info
================================
Current catalog =
Current schema =
Total changes = 0
Database encoding = UTF8
Encryption mode =
Cache size = 10000
==> 获取数据库中的表名列表:
Categories
CustomerCustomerDemo
CustomerDemographics
Customers
Employees
EmployeeTerritories
FDQA_all_types
FDQA_ascii_types
FDQA_batch_test
FDQA_bcd
FDQA_blob
FDQA_Categories
FDQA_db_types
FDQA_details_autoinc
FDQA_FK_tab
FDQA_ForAsync
FDQA_identity_tab
FDQA_locktable
FDQA_map1
FDQA_map2
FDQA_map3
FDQA_map4
FDQA_master_autoinc
FDQA_Maxlength
FDQA_novalstable
FDQA_numbers
FDQA_OrderDetails
FDQA_parambind
FDQA_Products
FDQA_tabwithpk
FDQA_timestamp
FDQA_transtable
FDQA_V_Test
FDQA_WString
"Order Details"
Orders
Products
Region
Shippers
Suppliers
Territories
==> 获取数据库中的查询名列表:
FDQA_V_Test
==> 获取 Orders 表中的字段名列表:
OrderID
CustomerID
EmployeeID
OrderDate
RequiredDate
ShippedDate
ShipVia
Freight
ShipName
ShipAddress
ShipCity
ShipRegion
ShipPostalCode
ShipCountry
==> 获取第一个表中第一列的第一个数据:
1
...............................................................}
FireDAC 下主要有四个 SQLite 的相关单元:
FireDAC.Phys.SQLiteCli // 最底层的 API; 利用它可以像 C 语言一样写程序
FireDAC.Phys.SQLiteWrapper // 主功能包装; 利用它可以像 C++ 一样写程序; 这可能是我以后使用最多的
FireDAC.Phys.SQLiteMeta // 元信息包装
FireDAC.Phys.SQLite // 实现 FireDAC 相关接口; 使用 FireDAC 的方式操作 SQLite 可能是最简单的, 更重要的是: FireDAC 操作所有数据库的方法是一样的
FireDAC.Phys.SQLiteWrapper 提供的 TSQLiteDatabase 类表示 SQLite 数据库, 使用它时一般无须创建,
直接从 FDConnection1.CliObj 或 FDConnection1.ConnectionIntf.CliObj 转换即可.
{示例:通过 TSQLiteDatabase 类获取 CharacterSet}
uses FireDAC.Phys.SQLiteWrapper;
procedure TForm1.Button1Click(Sender: TObject);
var
db: TSQLiteDatabase;
begin
db := TSQLiteDatabase(FDConnection1.CliObj); //假定 FDConnection1 已连接
ShowMessage(db.CharacterSet); //UTF8
end;
FireDAC 下的 Sqlite [3] - 获取数据库的基本信息的更多相关文章
- FireDAC 下的 Sqlite [4] - 创建数据库
建立数据库的代码: {建立内存数据库的一般代码:} begin FDConnection1.DriverName := 'SQLite'; //同 FDConnection1.Params.Add(' ...
- FireDAC 下的 Sqlite [6] - 加密
主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单. const dbPath = 'C:\Temp\SQLiteTest.sdb'; ...
- mongoshell 执行JavaScript文件获取数据库实例基本信息
由于MongoDB没有关系型数据中强大的数据字典.因此,如果需要汇总统计一些内部信息,包括数据量,基本元信息,集群架构,状态信息.则需要自己写脚本统计.为日后工作方便,本人在此将一些统计信息通过Jav ...
- FireDAC 下的 Sqlite [2] - 第一个例子
为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\ ...
- FireDAC 下的 Sqlite [1] - 前言
很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动.振奋. Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了. ...
- FireDAC 下的 Sqlite [10] - 使用 R-Tree 搜索
R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事! SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便 ...
- FireDAC 下的 Sqlite [9] - 关于排序
SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序. ...
- SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...
- FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试
可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align ...
随机推荐
- 20155206 2016-2017-2 《Java程序设计》第7周学习总结
20155206 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 认识时间与日期 1.格林威治时间(GMT):通过观察太阳而得,因为地球公转轨道为椭圆形且速度 ...
- python中的__new__、__init__和__del__
__new__.__init__.__del__三个方法用于实例的创建和销毁,在使用python的类中,我们最常用的是__init__方法,通常称为构造方法,__new__方法几乎不会使用,这篇文章是 ...
- 第10月第6天 lua 闭包
1. static int mytest(lua_State *L) { //获取上值 )); printf("%d\n", upv); upv += ; lua_pushinte ...
- 第10月第4天 Mac g++ sfml opendir
1. g++ OpenGL.cpp -I/Users/temp/Downloads/SFML-2.4.2-osx-clang/include -L/usr/local/lib -framework O ...
- 第6月第6天 opengles 三角形
1. http://blog.csdn.net/u010963658/article/details/52691578 2.多张图 https://www.oschina.net/question/2 ...
- Hibernate常用的Java数据类型映射到mysql和Oracle
研究了常用的Java基本数据类型在mysql和oracle数据库的映射类型.这里使用的是包装类型做研究,一般在hibernate声明的时候最好不要用基本类型,因为数据库中的null空数据有可能映射为基 ...
- CVTE笔试题
一.题目 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法: 要求O(1)空间复杂度和O(n)的时间复杂度: ...
- Nagios配置文件nagios.cfg详解
这里开始要讲一些Nagios的配置. 首先要看看目前Nagios的主配置路径下有哪些文件.[root@nagios etc]# ll总用量 152-rwxrwxr-x. 1 nagios nagios ...
- shell expect的简单用法【转】
用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...
- 再谈CentOS 7程序自启动
上次发现了/etc/init.d下已经没有启动脚本了,然后对于启动乱序自己在rc.local中重排. 其实想一想这些应用的自启动终归还是需要通过脚本来执行的. 一.脚本在哪里? /usr/lib/sy ...