SQL编程(二)

2016-01-29 14:19 4 1 收藏

SQL编程(二),SQL编程(二)

【 tulaoshi.com - Delphi 】

 

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)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

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中的所有内容。 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

17.5.2 设计一个数据库查询器 

例17.2:在数据库查询器中,用户可以选择要查询的数据库,查询数据库中的那一个表、根据数据库表中那一个字段进行查询,并且可以方便地指定查询条件,指定查询条件主要包括指定逻辑运算符(=、、<、<=、=、like、in、NOT like、NOT in)和字段值。

例子全部的程序清单如下:

unit main;

 

interface

 

uses

SysUtils, Windows, Messages, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, DB, DBTables, Buttons, ComCtrls, Tabnotbk;

 

type

TQueryForm = class(TForm)

BitBtn1: TBitBtn;

DataSource1: TDataSource;

Table1: TTable;

GroupBox1: TGroupBox;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Label5: TLabel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

ListBox1: TListBox;

ListBox2: TListBox;

ListBox3: TListBox;

E

来源:http://www.tulaoshi.com/n/20160129/1493019.html

延伸阅读
VisualBasic以友好易学的可视化开发环境闻名于世,成为人们学习计算机编程的首选语言。目前,全世界大概有300多万人使用着VisualBasic语言。如果您想在这茫茫众生中出类拔萃,那么您就不得不学习API(ApplicationProgramlnterface,即Windows的应用程序编程接口)编程。不懂API,那可成不了高手。 第一节:API基础 API说到底就是一系列的...
标签: Delphi
  10.3.2.2 服务器程序的编写 服务器程序必须包含对 DLL 的调用代码,如: function GetGlobalMem: THandle; far; external 'c:\dlls\glbmem'; 通过调用该函数,服务器可以获得全局内存块的句柄。 在写入数据前,服务器必须锁定全局内存,以避免在写入过程中 Windows 移动该内存块的位置。 函数 Gl...
标签: SQLServer
1. 查看数据库的版本        select @@version        常见的几种SQL SERVER打补丁后的版本号:         8.00.194   Microsoft SQL Server 2000      8.00.384&...
标签: SQLServer
  存取数据 select语句 1. 选择表中的所有列 “*”对Select语句有特殊意义。它指定表中的所有列,而不用列出列的名字。列的顺序和表中的顺序相同。 2. 选择不同的值 如果被选择列表中的列有重复值,这时“distinct”关键字可以用来忽略重复值。 注意: 如果Select list中多于一列,则distinct关键字对它们总体有效。如果一列有重复值,...
标签: SQLServer
本文将解释如何在SQL Server 2005中以尽可能最简单的方法创建基于.NET的CLR子例程。本文主要针对在服务器端使用SQL Server 2005的.NET开发者。 一. 创建SQL Server 2005数据库 这一节主要讨论创建一个将用于本文中的数据库和表格。详见下列步骤: · 执行"Start-Programs-Microsoft SQL Server 2005-SQL Server Management S...

经验教程

480

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部