程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> SQL編程(二)

SQL編程(二)

編輯: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)

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)和字段值。

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved