10-1 相關系統設定與工具的應用 10-2應用軟体開發工具 Visual Basic  
10-3 應用軟体開發工具 Delphi    
   
 

Delphi 是 Borland 公司出品,是個非常成熟的分散式應用系統開發工具,不但支援 Windows 平台下所有的分散式技術,更重要是它支援 XML 標準的技術,因此允許軟体開發人員可以結合應用程式伺服器而開發出高延展性的分散式應用系統。Delphi 在資料庫應用程式開發領域中,提供包括 Database Desktop、Data Access、Data Control 與 InstallShield 等好用的元件。
 

 
 1. 建立與設定與 Oracle 的連線

執行 BDE Administrator,如下圖所示。BDE Administrator 主要是用來完成資料庫應用程開發的第一步。主要的工作是:一. 建立「資料庫驅動程式(Driver)」,二. 建立「資料庫別名(Alias)」。一般而言,同一種資料庫只要一個驅動程式即可;對同一個資料庫,我們可以建立多個資料庫別名。

首先設定 Oracle 驅動程式,點選 ORACLE 並設定 Configuration 中 DLL32 為“SQLORA8.DLL”;VENDOR INIT為“OCI.DLL”;LANGDRIVER 為“Oracle SQL WE850”;SQLPASSTHRU MODE 為“SHARED NOAUTOCOMMIT”,修改完後,按 Ctrl-A,並按“OK”以儲存修改的設定,如圖所示。

設定資料庫,點選“Database”並按右鍵並選“New”,如圖所示。

選定資料庫使用的驅動程式,在 New Database Alias 的視窗中點選剛才設定好的 Oracle 驅動程式並取名,例如:ORACLE1,如圖所示。

假設事前已利用 Net8 Easy Config 設定好了伺服器 JP8i。修改 Definition 中的 SERVER NAME,例如:JP8I,修改完後,按 並按“OK”以儲存修改的設定,然後結束 BDE Administrator,如圖所示。

再重新執行 BDE Administrator,點選剛才設定的資料庫兩下,進行連線測試,並在 Database Login 視窗中鍵入 Oracle 的使用者與密碼,如圖所示。

如果連線成功的話,會出現以下的畫面。

   
2. 利用 Delphi 設計一個簡單的表單

執行執行 Delphi,如圖所示。

執行 File→ New Application,如圖所示。

點選兩次“Data Access”資料夾中的“Data Source”與“Table”兩個元件,表單中會產生“Data Source”與“Table”兩個元件,如圖所示。

點選兩次“Data Access”資料夾中的“DBGrid”元件,表單中會產生“DBGrid”元件,如圖所示。

修改“Table”元件的屬性內容:設定 Active 屬性為 True;設定 DatabaseName 屬性為原先在 BDE Administrator 中設定的資料庫名稱,例如:ORACLE1;設定 TableName 屬性為連線使用者的表格,例如:EMP,如圖所示。

修改“DataSource”元件的屬性內容:設定 DataSet 的屬性為剛才設定的 Table 元件,例如:Table1,如圖所示。

修改 DBGrid 元件的屬性內容:設定 DataSource 的屬性為剛才設定之 DataSource 元件,例如:DataSource1,如圖所示:  登入資料庫並執行表單,如圖所示。

執行的結果如圖所示。

 

ADO(ActiveX Data Objects) 最初是由 Microsoft 所製定的,它是一組能提供應用軟體中的程式透過 OLE DB Provider 來存取資料庫中資料的元件。一般在網頁中常使用的 ASP(Active Server Pages) 中就是利用 ADO 透過 ODBC(Open Database Connectivity) 來存取各種資料庫的資料。Dephi 6 以後的版本所提供的 ADO 元件則是將整個 Microsoft ADO 元件加以封裝並以 VCL(Visual Component Library) 元件呈現,透過 ADO 元件您所開發的資料庫應用軟體完全不需要依賴 BDE(Borland Database Engine)。以下章節中我們將介紹幾種利用 ADO 元件開發應用軟體:
 

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOTable 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的表格作為 Dephi 表單的資料來源。

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOQuery 物件來建立與 Oracle 資料庫的連結,這種方法主要是利用 SQL 查詢的結果作為 Dephi 表單的資料來源。

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADODataSet 物件來建立與 Oracle 資料庫的連結,這種方法類似 VB 的 ADODC 資料來源的設定。

使用工作列中 「ADO」 標籤頁中 TADOTable 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的表格作為 Dephi 表單的資料來源。

使用工作列中 「ADO」 標籤頁中 TADOQuery 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的查詢作為 Dephi 表單的資料來源。

使用工作列中 「ADO」 標籤頁中 TADODataSet 物件來建立與 Oracle 資料庫的連結,這種方法類似 VB 的 ADODC 資料來源的設定。

   

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOTable 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的表格作為 Dephi 表單的資料來源。
 

建立新的專案。

在表單中加入一個 TADOConnection 元件,並點選 TADOConnection 元件屬性中的 ConnectionString 屬性,來開啟 ConnectionString 的對話框。選擇「Use Connection String」選項,並按下「Build」按鈕。

此時會出現「Data Link Properties」對話框,請點選「Microsoft OLE DB Provider for Oracle」,並按下「Next」按鈕。

請在「Connection」標籤頁中指定要連接的 Oracle 資料庫名稱、使用者帳號與密碼。這裡我們以使用者帳號 scott 為例。 除了直接在「Connection」標籤頁中指定使用者帳號與密碼外,也可以省略本步驟,直接在表單中 Tform 物件的 onCreate 事件處理程序中加入指定使用者帳號與密碼,程式如下:
 

procedure Tform1.FormCreate(Sender: Tobject);
var
   I: Integer;
begin
    Try
    with ADOConnection1 do //連結資料庫
       begin
          Close;
          LoginPropt:=False;
         Open(‘scott’,’tiger’);
        For I:=0 to DataSetCount-1 do
           DataSets[I].open;
      end;
   except
   on E:Exception do //例外處理

       begin
          ShowMessage(E.Message);
          Halt;
       end;
end;

設定完成後,可以利用「Test Connect」按鈕來進行測試。如果設定無誤,則系統會回覆「Test connection succeeded」。

最後按下「Data Link Properties」對話框中的「確定」按鈕,再按下原 ConnectionString 的對話框中的「OK」按鈕以完成TADOConnection 元件屬性中的 ConnectionString 屬性的設定。原ConnectionString 屬性會自動設定成「Provider = MSDAORA.1; Password=tiger; User ID=scott; Data Source=JP8i; Persist Security Info=True」。 

將工作列中 「ADO」 標籤頁中的 TADOTable 元件、 「Data Access」 標籤頁中的 TDataSource 元件與「Data Control」 標籤頁中的 TDBGrid 物件、TDBNavigator 元件加入表單中,其個元件相關設定如下表格:

 

物件

屬性名稱

屬性設定值

TADOTable

Name

ADOTable1

Connection

ADOConnection1

TableName

EMP

Active

True

TDataSource

Name

DataSource1

DataSet

ADOTable1

TDBGrid

Name

DBGrid1

DataSource

DataSource1

TDBNavigator

Name

DBNavigator1

DataSource

DataSource1


其中,TADOTable 元件屬性 TableName 設定資料來源的表格,在例子中我們以 EMP 表格為例。
 

完成後的表單如下:

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

 

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOQuery 物件來建立與 Oracle 資料庫的連結,這種方法主要是利用 SQL 查詢的結果作為 Dephi 表單的資料來源。
 

 

與前面介紹的相同,主要是設定 TADOConnection 物件與 Oracle 資料的連結。

將工作列中 「ADO」 標籤頁中的 TADOQuery 元件、 「Data Access」 標籤頁中的 TDataSource 元件與「Data Control」 標籤頁中的 TDBGrid 物件、TDBNavigator 元件加入表單中,其個元件相關設定如下表格:
 

物件

屬性名稱

屬性設定值

TADOQuery

Name

ADOQuery1

Connection

ADOConnection1

SQL

SQL指令

Active

True

TDataSource
 

Name

DataSource1

DataSet

ADOQuery1

TDBGrid
 

Name

DBGrid1

DataSource

DataSource1

TDBNavigator
 

Name

DBNavigator1

DataSource

DataSource1


其中點選 TADOQuery 元件中屬性 「SQL」,會出現 SQL 指令的對話框,我們可以輸入 SQL 指令作為資料來源。這裡我們以輸入「select empno, ename, job, sal, deptno from emp where sal > 2000」(員工薪資大於2000)為例:
 

完成後的表單如下:儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

*

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

 

使用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADODataSet 物件來建立與 Oracle 資料庫的連結,這種方法類似 VB 的 ADODC 資料來源的設定。

 

與前面介紹的相同,主要是設定 TADOConnection 物件與 Oracle 資料的連結。其中設定 TADODataSet 元件屬性中的 commandType 與 commandText 來設定資料來源。TADODataSet 元件屬性中的 commandType 可以分為:(1) cmdFile,(2) cmdStoredProc,(3) cmdTable,(4) cmdTableDirect,(5) cmdText,(6) cmdUnknown 六種。這些commandType 種類類似 VB 的 ADODC 資料來源的設定。這裡我們介紹 cmdText 與 cmdTable 兩種。

將工作列中 「ADO」 標籤頁中的 TADODataSet 元件、 「Data Access」 標籤頁中的 TDataSource 元件與「Data Control」 標籤頁中的 TDBGrid 物件、TDBNavigator 元件加入表單中,其個元件相關設定如下表格:
 

物件

屬性名稱

屬性設定值

TADODataSet

Name

ADODataSet1

Connection

ADOConnection1

CommandType

詳見下面說明

CommandText

詳見下面說明

Active

True

TdataSource
 

Name

DataSource1

DataSet

ADODataSet1

TDBGrid
 

Name

DBGrid1

DataSource

DataSource1

TDBNavigator
 

Name

DBNavigator1

DataSource

DataSource1


其中點選 TADOQuery 元件中屬性 「SQL」,會出現 SQL 指令的對話框,我們可以輸入 SQL 指令作為資料來源。這裡我們以輸入「select empno, ename, job, sal, deptno from emp where sal > 2000」(員工薪資大於2000)為例:
 


cmdTable

若是資料來源為資料庫表格,則設定 commandType 為 cmdTable 並且設定 commandText 為資料庫表格名稱。這裡我們設定 commandText 為資料庫表格 EMP。


cmdText

若是資料來源為 SQL 查詢,則設定 commandType 為 cmdText 並且設定 commandText 為 SQL 指令。點選 commandText 會進入 commandText 的編輯對話框,這時你可以輸入 SQL 指令查詢。這裡我們設定 SQL 指令為「select empno, ename, job, sal, deptno from emp where sal > 2000」(員工薪資大於2000)


cmdTable

完成後的表單如下:


cmdText

完成後的表單如下:


cmdTable

*

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。


cmdText

*

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

   

除了利用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOTable 物件來建立與 Oracle 資料庫的連結外,亦可以直接利用TADOTable 物件來建立與 Oracle 資料庫的連結。使用工作列中 「ADO」 標籤頁中 TADOTable 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的表格作為 Dephi 表單的資料來源。
 

建立新的專案。 

在表單中加入一個 TADOTable 元件,並點選 TADOTable 元件屬性中的 ConnectionString 屬性,來開啟 ConnectionString 的對話框。選擇「Use Connection String」選項,並按下「Build」按鈕。

此時會出現「Data Link Properties」對話框,請點選「Microsoft OLE DB Provider for Oracle」,並按下「Next」按鈕。
 

請在「Connection」標籤頁中指定要連接的 Oracle 資料庫名稱、使用者帳號與密碼。這裡我們以使用者帳號 scott 為例。

設定完成後,可以利用「Test Connect」按鈕來進行測試。如果設定無誤,則系統會回覆「Test connection succeeded」。

最後按下「Data Link Properties」對話框中的「確定」按鈕,再按下原 ConnectionString 的對話框中的「OK」按鈕以完成TADOTable 元件屬性中 ConnectionString 屬性的設定。原 ConnectionString 屬性會自動設定成「Provider = MSDAORA.1; Password=tiger; User ID=scott; Data Source=JP8i; Persist Security Info=True」。

將工作列中 「Data Access」 標籤頁中的 TDataSource 元件與「Data Control」 標籤頁中的 TDBGrid、物件TDBNavigator 元件加入表單中,其個元件相關設定如下表格:

   

物件

屬性名稱

屬性設定值

TADOTable

Name

ADOTable1

ConnectionString

詳見上面說明

TableName

EMP

Active

True

TDataSource
 

Name

DataSource1

DataSet

ADOTable1

TDBGrid
 

Name

DBGrid1

DataSource

DataSource1

TDBNavigator
 

Name

DBNavigator1

DataSource

DataSource1


其中,TADOTable 元件屬性 TableName 設定你資料來源的表格,在例子中我們以 EMP 表格為例。

完成後的表單如下:

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

   

除了利用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADOQuery 物件來建立與 Oracle 資料庫的連結外,亦可以直接利用TADOQuery 物件來建立與 Oracle 資料庫的連結。使用工作列中 「ADO」 標籤頁中 TADOQuery 物件來建立與 Oracle 資料庫的連結,這種方法直接利用資料庫的查詢作為 Dephi 表單的資料來源。
 

建立新的專案。

在表單中加入一個 TADOQuery 元件,並點選 TADOQuery 元件屬性中的 ConnectionString 屬性,來開啟 ConnectionString 的對話框。選擇「Use Connection String」選項,並按下「Build」按鈕。

此時會出現「Data Link Properties」對話框,請點選「Microsoft OLE DB Provider for Oracle」,並按下「Next」按鈕。
 

請在「Connection」標籤頁中指定要連接的 Oracle 資料庫名稱、使用者帳號與密碼。這裡我們以使用者帳號 scott 為例。

設定完成後,可以利用「Test Connect」按鈕來進行測試。如果設定無誤,則系統會回覆「Test connection succeeded」。
 

最後按下「Data Link Properties」對話框中的「確定」按鈕,再按下原 ConnectionString 的對話框中的「OK」按鈕以完成TADOQuery 元件屬性中的 ConnectionString 屬性的設定。原ConnectionString 屬性會自動設定成「Provider = MSDAORA.1; Password=tiger; User ID=scott; Data Source=JP8i; Persist Security Info=True」。

將工作列中 「Data Access」 標籤頁中的 TDataSource 元件與「Data Control」 標籤頁中的 TDBGrid、物件TDBNavigator 元件加入表單中,其個元件相關設定如下表格:

   

物件

屬性名稱

屬性設定值

TADOQuery

Name

ADOQuery1

ConnectionString

詳見上面說明

SQL

SQL指令

Active

True

TDataSource
 

Name

DataSource1

DataSet

ADOQuery1

TDBGrid
 

Name

DBGrid1

DataSource

DataSource1

TDBNavigator
 

Name

DBNavigator1

DataSource

DataSource1


其中點選 TADOQuery 元件中屬性 「SQL」,會出現 SQL 指令的對話框,我們可以輸入 SQL 指令作為資料來源。這裡我們以輸入「select empno, ename, job, sal, deptno from emp where sal > 1500」(員工薪資大於1500)為例:

完成後的表單如下:

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。

   

除了利用工作列中 「ADO」 標籤頁中 TADOConnection 物件與 TADODataSet 物件來建立與 Oracle 資料庫的連結外,亦可以直接利用TADODataSet 物件來建立與 Oracle 資料庫的連結。使用工作列中 「ADO」 標籤頁中 TADODataSet 物件來建立與 Oracle 資料庫的連結,這種方法類似 VB 的 ADODC 資料來源的設定。

其中設定 TADODataSet 元件屬性中的 commandType 與 commandText 來設定資料來源。TADODataSet 元件屬性中的 commandType 可以分為:(1) cmdFile,(2) cmdStoredProc,(3) cmdTable,(4) cmdTableDirect,(5) cmdText,(6) cmdUnknown 六種。這些commandType 種類類似 VB 的 ADODC 資料來源的設定。這裡我們介紹 cmdText 與 cmdTable 兩種。

 

建立新的專案。

在表單中加入一個 TADODataSet 元件,並點選 TADODataSet 元件屬性中的 ConnectionString 屬性,來開啟 ConnectionString 的對話框。選擇「Use Connection String」選項,並按下「Build」按鈕。

此時會出現「Data Link Properties」對話框,請點選「Microsoft OLE DB Provider for Oracle」,並按下「Next」按鈕。

請在「Connection」標籤頁中指定要連接的 Oracle 資料庫名稱、使用者帳號與密碼。這裡我們以使用者帳號 scott 為例。
 

設定完成後,可以利用「Test Connect」按鈕來進行測試。如果設定無誤,則系統會回覆「Test connection succeeded」。

最後按下「Data Link Properties」對話框中的「確定」按鈕,再按下原 ConnectionString 的對話框中的「OK」按鈕以完成TADODataSet 元件屬性中的 ConnectionString 屬性的設定。原ConnectionString 屬性會自動設定成「Provider = MSDAORA.1; Password=tiger; User ID=scott; Data Source=JP8i; Persist Security Info=True」。

將工作列中 「Data Access」 標籤頁中的 TDataSource 元件、 「Data Control」 標籤頁中的 TDBGrid 物件與 TDBNavigator 元件加入表單中,其個元件相關設定如下表格:

   

物件

屬性名稱

屬性設定值

TADODataSet

Name

ADODataSet1

ConnectionString

詳見上面說明

CommandType

詳見下面說明

CommandText

詳見下面說明

Active

True

TdataSource
 

Name

DataSource1

DataSet

ADODataSet1

TDBGrid
 

Name

DBGrid1

DataSource

DataSource1

TDBNavigator
 

Name

DBNavigator1

DataSource

DataSource1


其中點選 TADOQuery 元件中屬性 「SQL」,會出現 SQL 指令的對話框,我們可以輸入 SQL 指令作為資料來源。這裡我們以輸入「select empno, ename, job, sal, deptno from emp where sal > 2000」(員工薪資大於2000)為例:
 


cmdTable

若是資料來源為資料庫表格,則設定 commandType 為 cmdTable 並且設定 commandText 為資料庫表格名稱。這裡我們設定 commandText 為資料庫表格 EMP。
 


cmdText

若是資料來源為 SQL 查詢,則設定 commandType 為 cmdText 並且設定 commandText 為 SQL 指令。點選 commandText 會進入 commandText 的編輯對話框,這時你可以輸入 SQL 指令查詢。這裡我們設定 commandText 為「select empno, ename, job, sal, deptno from emp where sal > 1500」(員工薪資大於1500)


cmdTable

完成後的表單如下:


cmdText

完成後的表單如下:


cmdTable

*

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。


cmdText

*

儲存專案並按下 F9 功能鍵執行專案。專案執行後,可以利用TDBNavigator 元件來移動資料指標。