delphi使用SQL的教程5

17.5 SQL编程实例  
我们在学习了SQL程序的编写方法之后,我们便可以着手创建自己的应用程序了,通过创建应用程序我们对Delphi的强大功能就会有更深刻的印象,同时会进一步全面掌握有关SQL编程的知识,在本节中我们主要介绍两个例子,前一个例子主要是用静态的SQL语句编程,后一个例子是用动态SQL语句编程。  
17.5.1 设计简单的SQL程序编辑器  
例17.1:在这个例子中,我们设计一个交互式的SQL程序编辑器,在这个编辑器中,我们可以根据SQL语言的语法规则,编写常用的SQL命令,并通过单击编辑器中的有关的按钮,直接执行编写好的SQL命令,SQL命令的执行结果也会及时地通过一个TDBGrid 部件显示出来。  
表17.3 SQL编辑器中个主要部件的属性 
━━━━━━━━━━━━━━━━━━━━ 
部 件 属 性 值 
──────────────────── 
Form1 Caption=SQL程序编辑器 
DBGrid1 DataSource=DataSource1 
Button1 Caption=执行(&E) 
Button2 Caption=清除(&C) 
Button3 Caption=退出(&X) 
Button3 kind=bkClose 
Memo1  
DataSource1 DataSet=Query1 
Query1 DatabaseName=DEMOS 
━━━━━━━━━━━━━━━━━━━━ 
  
因为我们在设置Query1的DatabaseName属性时将其设置为DEMOS,所以我们设计的这个SQL程序编辑器只能对DEOMS中的数据库表进行操作。 
单击按钮Button1的事件处理过程代码为: 
  
程序清单17.1 
  
procedure TForm1.Button1Click(Sender:TObject); 
begin 
Query1.close; 
Query1.SQL.clear; 
Query1.SQL.Add(Memo1.text); 
Query1.Open; 
end; 
  
单击按钮Button2的事件处理过程为: 
  
程序清单17.2 
  
procedure TForm1.Button2Click(Sender:TObject); 
begin 
Query1.close; 
Query1.SQL.clear; 
Query1.ExceSQL; 
end; 
  
下面我们对程序清单17.1和程序清单17.2中的程序代码进行简要的分析: 
程序清单17.1中的程序代码是用来执行查询的。 
  
Query1.close; 
  
这一行程序是用来关闭Query1的,我们在前面的章节中介绍过,只有在调用close 方法将TQuery部件关闭之后,才能修改其SQL属性值,执行close命令关闭查询是很安全的,如果查询已经被关闭了,调用该方法不会产生任何影响。 
  
Query1.SQL.clear; 
  
因为TQuery部件的SQL属性只能包含一条SQL语句,调用Clear 方法的目的是为了清除SQL属性原来的属性值即原来的SQL命令语句,如果不调用clear方法清除原来的SQL命令语句,当在后面的程序中调用Add方法为SQL属性设置新的SQL命令语句时,Delphi 会将新的SQL命令语句加在原来的SQL命令语句,这样使得SQL属性中包含两条独立的SQL语句,这是不允许的。 
  
Query1.SQL.Add(Memo.text); 
  
该条命令是将SQL编辑器的编辑区内的内容(TMemo部件Memo1)设置成Query1的SQL属性值。 
  
Query1.open; 
  
该语句用来执行Query1中的SQL命令语句,如果执行查询从数据库中获得查询结果,查询结果会在数据网格DBGrid1中显示出来。 
程序清单2是用来清除查询的,其前两行语句跟程序清单1中的代码是一样的。Query1.ExecSQL有一些特别,调用ExecSQL方法也是打开Query1,ExecSQL方法与open方法不一样的,请参看前面的章节,当Query1中SQL属性值为空时,即没有SQL语句时,只能调用ExecSQL方法来打开Query1,如果调用 open 方法会返回一个错误。 在执行完 Query1.ExecSQL语句之后,应用程序将会清除数据网格DBGrid1中的所有内容。  
17.5.2 设计一个数据库查询器  
例17.2:在数据库查询器中,用户可以选择要查询的数据库,查询数据库中的那一个表、根据数据库表中那一个字段进行查询,并且可以方便地指定查询条件,指定查询条件主要包括指定逻辑运算符(=、>、<、<=、>=、like、in、NOT like、NOT in)和字段值。

转载于:https://www.cnblogs.com/JTeacher/archive/2012/11/19/2776907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值