在我们对数据库进行操作时,经常用到TTable控件,但TTable只能同时对一个数据表进行操作,而TQuery控件不仅具有TTable的多数功能,而且同时可对多个数据表进行操作。不仅如此,TQuery控件还有更强大的数据库查询功能,可以同时对多个不同结构的数据库进行关联查询,被查询的数据库可以是ODBC支持的任何一种类型,当然计算机中必须先安装ODBC和BDC(Delphi的数据库引擎),现举例说明。
  一、连接Paradox和dBASE进行异库查询
  例如:Master.db和Customer.dbf分别为Paradox和dBASE的数据库,它们有一个公共字段CustNo。这时可输入如下代码:
  Query1.Close;
  Query1.DataBaseName:=′′;
  Query1.SQL.Clear;
  Query1.SQL.Add(′Select * from ″Master.db″ A,″Customer.dbf ″ B Where 
A.CustNo=B.CustNo′);{在同一行内输入}
  Query1.Open;
  注意:进行多库联查时,TQuery控件的DataBaseName属性必须先置空,单引号内不包含任何字符;A和B分别是Master.db和Customer.dbf的别名(引用别名可减少代码长度)。
  二、MS Access的多表联查
  Access数据库属于多表集合数据库(一个数据库中包含多个数据表),所以,对两个Access数据库进行查询的方法就与上述有所不同。例如:我们有RSDA.mdb和ZFGjj.mdb两个数据库,RSDA中包含人事档案、在职职工目录和离职职工目录等数据表,ZFGjj通过公共字段“用户号”与RSDA相连。如果我们从ZFGjj中提取一个用户号,需要从RSDA中得到拥有此用户号的职工姓名,这时就必须用到TQuery的多表查询。
  第一步 在ODBC中增加两个数据源“ZFGjj”和
“RSDA”。
  第二步 在BDE数据库引擎中添加两个数据库列名“ZFGjj”和“RSDA”。
  第三步 在表单中增加两个DataBase控件“DataBase1”和“DataBase2”,在AliasName属性中分别选择“ZFGjj”和“RSDA”,DataBaseName属性中分别键入“ZFGjj”和“RSDA”,最后将KeepConnection和Connected属性都设为“True”。
  现在可以输入相应的代码了:
  Begin
  For I:=1 To 10 Do
  Begin
  Query1.Close;
  Query1.DataBaseName:=′′;
  Query1.Sq1.Clear;
  Query1.Sq1.Add(′Select A.七月,B.个人账号,B.用户号,C.姓名From“:ZFGjj:个人汇激部门表”A,“:ZFGjj:住房公积金明细表”B,“:RSDA:在职职工目录”C 
Where(A.用户号=B.封存=:ib)′);{在同一行输入}
  Query1.Prepare;
  Query1.Params[0].DataType.=ftInteger;
  Query1.Params[1].DataType.=ftBoolean;
  Query1.Params[0].Asinteger:=ia[I];
  Query1.Params[1].Asboolean:=ib;
  Query1.Open;
  End;
  End;
  代码中SQL语句必须在一行内输入,不能分行。SQL语句中使用了动态参数“ia”和“ib”,Delphi会自动按参数出现的顺序将它们添加在Query1的Params属性中并分配索引号分别为0和1,参数“ia”和“ib”应在程序开始时声明其类型并赋值。

Delphi中多库关联查询相关推荐

  1. 多案分库分表带来的问题-跨库关联查询

    比如查询在合同信息的时候要关联客户数据,由于是合同数据和客户数据是在不同的数据库,那么我们肯定不能直接使用join 的这种方式去做关联查询. 我们有几种主要的解决方案: 1.字段冗余 比如我们查询合同 ...

  2. NoSQLBooster for MongoDB 中跨库关联查询

    ​ 使用 MongoDB 是我们常常会遇到一些特殊的需求需要跨库关联查询,比如订单明细缺商品重量需要补商品重量,而商品重量数据又在商品库中,这事就需要跨库关联操作,示例代码如下: // 使用 orde ...

  3. mysql跨实际视图_MySQL 跨库关联查询 (创建视图)

    MySQL 跨库关联查询 (创建视图) 一, 前言 SQL CREATE VIEW 语句 什么是视图? 在 SQL 中, 视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列, 就像一个真实 ...

  4. 解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题)

    解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) 参考文章: (1)解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) (2)https: ...

  5. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  6. SpringJPA中多表关联查询并返回自定义dto带分页

    如题:要实现SpringJPA中多表关联查询并返回自定义dto带分页功能,使用SpringJAP的查询时暂时没找到合适的方法,也不想强制去给实体间做关联,于是有如下代码: 一.建立自己需要返回的dto ...

  7. Delphi中实现多线程同步查询

    优秀的数据库应用应当充分考虑数据库访问的速度问题.通常可以通过优化数据库.优化 查询语句.分页查询等途径收到明显的效果.即使是这样,也不可避免地会在查询时闪现一个带有 SQL符号的沙漏,即鼠标变成了查 ...

  8. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

  9. 如何解决数据关联查询

    如何解决数据关联查询 在传统数据库查询时,如果要获取的字段在别的库表中,通常会使用join操作获得,但是当数据量越来越大时,join操作会使查询速度越来越慢,这显然是不可取的,那么我们该如何进行查询呢 ...

最新文章

  1. win7系统下载 ghost win7 Sp1 32位纯净3月版
  2. 时间复杂度和空间复杂度3 - 数据结构和算法05
  3. 13、GridView案例
  4. android 串口调试
  5. php微博获取用户信息,获取用户基本信息
  6. Burpsuite工具的使用
  7. html中的form action属性,HTML form action 属性
  8. 2018年计算机应用基础性考,2018年电大计算机应用基础核心课形考册
  9. 第12章[12.10.1] Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
  10. Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
  11. C# 中的 ConfigurationManager类引用方法应用程序配置文件App.config的写法
  12. 接受吧,这世界充满潜规则
  13. 读嵌入式linux驱动程序设计从入门到精通 3
  14. 十天学会单片机(1)单片机的认识、各进制、门运算、c51
  15. hdu 1427 24点暴力dfs
  16. Windows桌面文件夹删除被提示“找不到该项目”——顽固目录、文件的删除
  17. 1.2 编程语言选择 | 排行榜、对比、现状,java c++语言对比,哪个工资高、难度更高,mysql数据库对比,java入门怎么学
  18. The7th Zhejiang Provincial Collegiate Programming Contest-Problem A:A - Who is Older?
  19. 戴尔台式机修复计算机,dell电脑win10启动修复无法修复你的电脑的解决方法
  20. 杰理之linein LAC底噪【篇】

热门文章

  1. C++实现大数运算(加减乘除求余)
  2. manga camera android,SMAAASH! Camera [Manga Photo]
  3. Android App专项测试-压力测试篇
  4. omf多路径 oracle_Oracle OMF 功能详解
  5. python手势识别控制幻灯片翻页系统_基于Emgu CV 的手势识别实现PPT的控制放映
  6. 单片机/C语言浮点型数据转换为字符串方法
  7. 套接字的连接(服务器与客户端一对一的连接)
  8. 第十三题:中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
  9. 长差分:LongDifference及AcemogluAER论文推介
  10. 怎么将视频里的语音转成文字?不妨试试这三款转文字工具