uniGUI之FDQuery(28)
1]基本设置FDQuery1.Connection
2]执行查询SQL语句
3]执行 非查询SQL语句
4]返回所有数据 和所有 列名
1]基本设置FDQuery1.Connection
一定要 放一个 FDPhysSQLiteDriverLink1到ServerModule上
// uses FireDAC.Phys.SQLite 之后, 可不用添加 TFDPhysSQLiteDriverLink //访问SQLite 文件数据库
FDQuery1.Connection := UniMainModule.FDConnection1; UniMainModule.FDConnection1.LoginPrompt := false; // 取消登录提示框
UniMainModule.FDConnection1.Open('DriverID=SQLite;Database=test1.Sqlite3');
2]执行查询SQL语句
FDQuery1.Open('select id,name,info from atb');
3]执行 非查询SQL语句
FDQuery1.ExecSQL('INSERT INTO atb VALUES( (select max(id)+1 from atb),''aName'',''aInfo'')');
4]返回所有数据 和所有 列名, 生成网页格式,方便导出数据
procedure UniDBGridToHTML(aFDquery :TFDQuery;aHTMLFileName:string);
var
aHTMLtext: TstringList;
j: integer;
begin
aHTMLtext := TstringList.Create;
aHTMLtext.Add
('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ' +
'<html> <head> <title></title> </head> ' +
' <body> <table border=".5pt solid windowtext;"; > ' +
' <col width=72 span=3 style='' width:54pt''>'); aHTMLtext.Add(' <tr > ');
for j := to aFDquery.FieldCount do
begin
aHTMLtext.Add('<td>');
aHTMLtext.Add(aFDquery.Fields.FieldByNumber(j).FieldName); // 列 名
aHTMLtext.Add('</td>');
end;
aHTMLtext.Add(' </tr> '); aFDquery.First;
while not(aFDquery.Eof) do
begin
aHTMLtext.Add(' <tr > '); for j := to aFDquery.FieldCount do
begin
aHTMLtext.Add('<td>');
aHTMLtext.Add(aFDquery.Fields.FieldByNumber(j).AsString); // 所有 值
aHTMLtext.Add('</td>');
end;
aHTMLtext.Add(' </tr> '); aFDquery.Next;
end; aHTMLtext.Add('</table> </body> </html> ');
aHTMLtext.SaveToFile(aHTMLFileName);
aHTMLtext.Free;
end;
procedure TMainForm.UniButton1Click(Sender: TObject);
begin
UniDBGridToHTML(FDquery1,'aa.html');//调用
end;
uniGUI之FDQuery(28)的更多相关文章
- uniGUI学习汇总
UniGUI之UniLabel(31) uniGUI之自定义JS事件动作ClientEvents(30) uniGUI之文件下载(29) uniGUI之FDQuery(28) uniGUI之UniPo ...
- [控件]unigui移动端下Unidatepicker时间显示解决方案
[控件]unigui移动端下Unidatepicker时间显示解决方案 http://tz10000.com/kong-jian-unigui-yi-dong-duan-xia-unidatepick ...
- Elevate Web Builder for Web Developers(类似于unigui的东西)
推荐一款pascal 语言的web 开发工具 这几天仔细研究了一款使用Pascal 语言开发web 的工具 具体介绍可以参照这里. 先上几张他开发的页面照.
- 28个你必须知道的HTML5的新特性,技巧以及技术
崭新新的页面布局 传统的: HTML5: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<f ...
- CSharpGL(28)得到高精度可定制字形贴图的极简方法
CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美 ...
- 来,一起让我们越来越懒,面向CSS、JS未来编程。(9.28已更新)
2016.10.29更新 本文存在大量的错误,仅供参考. 不知不觉在前端领域马上一个年头就要过去了,然而再看看自己的代码,果然够烂,那么为什么代码一直没有用面向对象的思维去写CSS呢?首先有两点:一点 ...
- MySQL报错:Got error 28 from storage engine
今天碰到数据库出错: Got error 28 from storage engine 查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够 问题原因: 磁盘临时空间不够导致. 解决 ...
- [.net 面向对象程序设计进阶] (28) 结束语——告别2015
[.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...
- 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox
[源码下载] 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) T ...
随机推荐
- Ant风格表达式
1. ?:匹配任意一个字符 * :匹配0或者任意数量的字符 ** :匹配0或更多的目录
- opencv3.2.0+opencv_contrib-3.2.0+vs2015相关文件的配置
包含目录:E:\opencvcontrib\opencv\sources\build\install\include\opencv E:\opencvcontrib\opencv\sources\bu ...
- npm 配置国内源
淘宝镜像 npm config set registry http://registry.npm.taobao.org
- 《TCP/IP入门经典》摘录--Part 2
TCP/IP协议系统 1.网络访问层 网卡(network adapter),即网络接口板,又称网络适配器或NIC (网络接口控制器),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,由 ...
- linux异常 - 无法分配内存
解决方案: 删除虚拟机上不必要的东西 重启开虚拟机的电脑
- Mysql高级操作
多数据插入 insert into 表名 [(字段名)] values(值列表1),(值列表2),... 主键冲突 主键冲突更新 主键冲突时,更新数据 insert into 表名 [(字段列表)] ...
- python console的命令执行
命令 from app01 import models models.UserInfo.objects.all()查询出所有内容
- mysql(5):主从复制和分库分表
主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读 ...
- EF database first
https://www.cnblogs.com/net064/p/8024150.html 1.EF简介ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对 ...
- 浏览器中js执行机制学习笔记
浏览器中js执行机制学习笔记 RiverSouthMan关注 0.0772019.05.15 20:56:37字数 872阅读 291 同步任务 当一个脚本第一次执行的时候,js引擎会解析这段代码,并 ...