静态方式是把SQL命令文作为TQuery部件的SQL属性值进行设置这样当执行应用程序时Delphi便执行TQuery部件SQL属性中设置的SQL命令如果是SQL中的查询命令把TQuery部件通过TDataSource部件与数据控制部件相连查询的结果将会显示在与 TQuery部件相连接的数据浏览部件中动态SQL语句是指SQL语句中包含一些参数变量在程序中可以为这些参数赋值在程序运行过程中各个参数值是变化的TQuery部件的SQL 属性中的SQL语句的编写也有两种方法一种方法是在程序设置阶段便将相应的SQL语句写入到TQuery的SQL属性中另一种方法是在Delphi开发的应用程序将SQL语句包含在Pascal代码单元中
在SQL编程中使用TQuery部件的具体方法步骤如下
①为TQuery部件设置DatabaseName属性它可以是用BDE建立的数据库的别名或桌面数据库系统中的目录名或数据库服务器中的文件名如果在应用中使用了TDatabase 部件那么TQuery部件的DatabaseName属性可以是TDatabase部件中定义的一个数据库别名详细情况请参看TDatabase部件的使用;
②为TQuery部件设置SQL属性TQuery部件的SQL属性值就是应用程序要执行的SQL 命令文本设置SQL属性有两种方法
● 在程序设计过程中我们可以通过对象浏览器(Object Inspector)编辑SQL属性在Object Inspector中选择SQL属性这样会打开String List Editor窗口在其中我们便可以编写SQL命令我还可以打开Visual Query Builder来编写SQL命令 (只有Delphi的客户/服务器版本才具有这一工具)
● 将SQL命令包含在Pascal代码单元中
在程序运行过程中首先调用TQuery部件的Close方法关闭当前的TQuery部件然后调用Clear方法清除SQL属性并说明新的SQL命令文本然后调用Add方法将新的SQL命令文本加入到SQL属性中
③通过调用TQuery部件的Open方法或ExecSQl方法执行 SQL 命令 Open 方法只执行Select命令ExecSQL方法还可以执行其它的SQL命令Open方法和ExecSQL 方法的区别我们在后面的章节里会进一步地加以讨论的
如果使用动态SQL语句首先调用prepare方法给动态SQL语句中的参数赋值然后再调用Open方法或ExecSQL方法调用propare 方法并不是必须的但是对于要多次执行TQuery部件中SQL属性中的动态SQL语句调用Prepare可以大大提高TQuery部件执行SQL语句的性能
在TQuery部件中编写简单的SQL查询命令
在这一节里我们将学习如何使用TQuery部件编写简单的SQL查询命令并在Delphi 应用程序中实现SQL查询
例如如果我们想查询出表CustomerDB中客户的编号和公司名称我们按下列步骤来实现
①在应用窗体中放置一个TQuery部件一个TDataSource部件一个TDataGrid部件并将它们连接起来
②设置窗体TQuery 部件Query的DatabaseName属性值为DBDEMOS
③双击Object Inspector窗口中Query的SQL 属性 Delphi 将显示 String List Editor窗口
④在图中的窗口中输入SQL语句
Select CustNoCompany From Custormer;
⑤单击OK按钮关闭String List Editor窗口
⑥设置Query的Open属性为True
SQL语言编程概述
在Delphi应用程序中的SQL命令语句是包含在TQuery部件的SQL属性中TQuery部件的SQL属性是TString类型的也就是说SQL属性值是一个字符串列表这个字符串列表非常类似于一个字符串类型的数组有关TString类型的信息请参看联机帮助在前一节里我们介绍了TQuery部件可以执行两种SQL语句
● 静态SQL语句
● 动态SQL语句
静态SQL语句在程序设计时便已固定下来它不包含任何参数和变量例如下面的语句便是一条静态SQL语句
Select * From Cusromer Where CustNo = ;
而动态SQL语句也被称作参数化的语句在其中间包含着表示字段名或表名的参数例如下面的语句是一条动态SQL语句
Select * From Customer Where CustNo =: Number;
其中的变量Number便是一个参数变量它由一个冒号引导在程序运行过程中必须要为该参数赋值该条SQL语句才能正确执行每次运行应用程序时可以为该参数变量赋予不同的值
SQL命令文本的编写
使用String List Editor编写
我们要为TQuery部件的SQL属性设置SQL命令文本时可以在应用窗体中选择TQuery部件且双击Object Inspector窗口中的SQL属性这样便打开了String List Editor 窗口在该窗口中我们便可以编写各种SQL命令如图所示
在编写完适当的SQL语句之后选择 OK 按钮便可以将编辑器中的 SQL 命令文装入到TQuery部件的SQL属性中选择SAVE按钮可以将编写好的SQL命令保存到一个文件中供以后编程时使用我们在编写SQL命令文本时还可以选择Load按钮从一个 SQL 命令文件中调入SQL命令在程序运行过程中要想设置TQuery部件的SQL属性必须首先调用Close方法关闭TQuery部件然后再调用Clear方法清除SQL属性中现存的SQL命令语句最后再调用Add方法为SQL属性设置新的SQL命令语句例如
QueryClose {关闭Query)
QuerySQLClear {清除SQL属性中的SQL命令语句}
QuerySQLAdd(Select * From Country)
QuerySQLAdd(Where Name =ARGENTINA )
在为TQuery部件设置SQL属性时调用Close方法总是很安全的如果TQuery部件已经被关闭了调用Close方法时不会产生任何影响在应用程序中为SQL属性设置新的SQL 命令语句时必须要调用Clear方法以清除SQL属性中现存的SQL命令语句如果不调用Clear方法便调用Add方法向SQL属性中设置SQL命令语句那么新设置的SQL命令语句会追加在现存SQL命令语句后面在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去
在这里要特别注意的一般情况下TQuery部件的SQL属性只能包含一条完整的SQL语句它不允许被设置成多条SQL语句当然有些数据库服务器也支持在TQuery部件的SQL属性中设置多条SQL语句只要数据库服务器允许这样我们在编程时可以为 SQL 属性设置多条SQL语句
[] [] [] []