在空白窗体上添加: 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] - 获取数据库的基本信息的更多相关文章

  1. FireDAC 下的 Sqlite [4] - 创建数据库

    建立数据库的代码: {建立内存数据库的一般代码:} begin FDConnection1.DriverName := 'SQLite'; //同 FDConnection1.Params.Add(' ...

  2. FireDAC 下的 Sqlite [6] - 加密

    主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单. const dbPath = 'C:\Temp\SQLiteTest.sdb'; ...

  3. mongoshell 执行JavaScript文件获取数据库实例基本信息

    由于MongoDB没有关系型数据中强大的数据字典.因此,如果需要汇总统计一些内部信息,包括数据量,基本元信息,集群架构,状态信息.则需要自己写脚本统计.为日后工作方便,本人在此将一些统计信息通过Jav ...

  4. FireDAC 下的 Sqlite [2] - 第一个例子

    为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\ ...

  5. FireDAC 下的 Sqlite [1] - 前言

    很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动.振奋. Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了. ...

  6. FireDAC 下的 Sqlite [10] - 使用 R-Tree 搜索

    R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事! SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便 ...

  7. FireDAC 下的 Sqlite [9] - 关于排序

    SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序. ...

  8. SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据

    ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...

  9. FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试

    可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align ...

随机推荐

  1. Docker学习笔记四 Docker容器

    本文地址:https://www.cnblogs.com/veinyin/p/10439849.html    容器是独立运行的一个或一组应用及他们的运行态环境,对应虚拟机的操作系统和应用. 启动 可 ...

  2. 线段树->面积并 Atlantis HDU - 1542

    题目链接:https://cn.vjudge.net/problem/HDU-1542 题目大意:求面积并 具体思路:我们首先把矩形分割成一横条一横条的,然后对于每一个我们给定的矩形,我们将储存两个点 ...

  3. 数链剖分(Tree)

    题目链接:https://cn.vjudge.net/contest/279350#problem/D 题目大意:操作,单点查询,区间取反,询问区间最大值. AC代码: #include<ios ...

  4. Mycat 配置及优化【转】

    前言 Mycat 是一个数据库分库分表中间件 MyCAT 是作为通用代理设计的,后端是以 Mysql协议 和 JDBC 的方式连接数据库,可以支持 Oracle.DB2.SQL Server . mo ...

  5. JVM(3)对象A和B循环引用,最后会不会不被GC回收?-------关于Java的GC机制

    ①首先说一下,GC里边在JVM其中是使用的ROOT算法,ROOT算法,什么称作为ROOT呢,就是说类的静态成员,静态成员就是static修饰的那种,是"根"的一个,根还包含方法中的 ...

  6. DOM文档对象模型简介

    DOM简介     DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构.样式".W3C DOM ...

  7. LeetCode(21):合并两个有序链表

    Easy! 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1- ...

  8. LeetCode(16):最接近的三数之和

    Medium! 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...

  9. java 组合接口时的名字冲突

    重载方法仅通过返回类型是区分不开的,在打算组合的不同接口中,尽量使用不同的方法名,否则可能导致混乱 //: interfaces/InterfaceCollision.java package obj ...

  10. PHP科学计数法转换成数字

    /** * 科学计数法转换成数字 * @param $num * @param int $double * @return int */ function sctonum($num, $double ...