在空白窗体上添加: 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. 【原创】backbone1.1.0源码解析之Events

    最近在看些node的源代码,发现backbone的应用还是挺广泛的,但是之前的学习忘得一干二净了,后悔当时没做笔记啊. 所以,无奈想用的更好,就是得把源代码看楚,所以还是把源代码的注释笔记留下来,供自 ...

  2. AngulaJs -- 隔离作用域

    具有隔离作用域的指令最主要的使用场景是创建可复用的组件 创建具有隔离作用域的指令需要将scope属性设置为一个空对象{}.如果这样做了,指令的 模板就无法访问外部作用域了: <div ng-co ...

  3. TED_Topic8:How to control someone else's arm with your brain

    By Greg Gage (Neuroscientist) Greg Gage is on a mission to make brain science accessible to all. In ...

  4. [HNOI2013]比赛 (用Hash实现记忆化搜索)

    [HNOI2013]比赛 题目描述 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局, ...

  5. 为什么mysqlbinlog --database选项不起作用

    群里看到有同学提问,多瞅了眼 [root@mysql55 mysql]# mysqlbinlog --no-defaults -vv --base64-output=decode-rows mysql ...

  6. 用《舌尖2》去理解C#中的多态和开闭原则

    昨天晚上看了<舌尖上的中国2>第一集,特别的感人,尤其是看到帮别人割麦子的麦客,一亩地开价200,雇主只肯给100,脸上的那种纠结和无可奈何.还有长着大眼睛的跳跳鱼,很可爱,不过最终还是被 ...

  7. 标准linu休眠和唤醒机制分析(四)【转】

    转自:http://blog.csdn.net/lizhiguo0532/article/details/6453552 suspend第三.四.五阶段:platform.processor.core ...

  8. Python黑魔法

    1. 赋值 In [1]: x = 1 ...: y = 21 ...: print x, y ...: ...: x, y = y, x ...: print x, y 1 21 21 1 2. 列 ...

  9. android 通用 Intent

    通用 Intent 本文内容显示详细信息 闹钟 日历 相机 联系人/人员应用 电子邮件 文件存储 本地操作 地图 音乐或视频 新笔记 电话 搜索 设置 发送短信 网络浏览器 使用 Android 调试 ...

  10. Gearman In Action

    分布式任务系统是一个常见的需求,如果将 Gearman 作为 build block 来搭建这个系统的话,这样能够 make your life much easier. 首先看看 Gearman 是 ...