熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:簡單數據庫應用的創建及MASTAPP介紹(二)[3]

2022-06-13   來源: Delphi編程 

  CustNoDouble: Double;

  CustNoInt: Integer;

  CustNoString: String;

  {在Edit中顯示字段值}

  EditText:=TableCompany;{類型相匹配不需要轉換}

  EditText:=TableCustNoAsString;{類型不匹配需要轉換}

  {將字段值賦給變量}

  CustNoDouble:=TableCustNoValue;{類型相匹配不需要轉換}

  CustNoInt:=TableCustNoAsInteger;{類型不匹配需要轉換}

  CustNoString:=TableCustNoAsString;{類型不匹配需要轉換}

   設定字段對象的顯示格式

  我們即可以在設計階段設定字段對象的顯示格式也可以在運行過程中通過程序代碼來設定字段對象的顯示格式

  例 在如圖所示的窗體中再增加一個TaxRate字段並在程序設計過程中設定它的顯示格式為%即設置TaxRate字段對象的DisplayFormat屬性為% 若TaxRate的值為那麼在網格部件中其顯示的格式為%

  在運行過程中我們通過程序代碼來設定字段Phone的顯示格式美國的電話表示形式與中國的表示形式不一樣(如美國中國( 為此我們將phone 字段的值表示成中國式的形式具體方法是在 Object Inspector 中選取Tablephone對象並為此對象的OnGetText事件編寫如下程序代碼

  TFormTablePhoneGetText(Sender:TField;

  Text:OpenString;DisplayText:Boolean)

  begin

  If DisplayText then

  begin

  Text:=TablePhoneValue;

  Delete(Text

  Delete(Text

  Insert(Text

  Insert(Text

  end;

  end;

   自定義字段以及計算字段對象的創建

  有時候為了使應用程序完成所期望的工作我們要在數據庫表現有字段的基礎上增加一些自定義的字段這些字段並不是數據庫表中實際存在的字段它們常常是根據數據庫表中的其它的字段動態地計算出來的因而它們常常被稱為計算字段

  例如我們創建一個浏覽ORDERSDB表中記錄的應用如圖所示

  浏覽ORDERSDB表中的記錄

  首先我們想在顯示OREDRESDB表的網格中增加一個自定義的字段對象完成以下步驟

  雙擊窗體中的Table打開字段編輯器Fields Editor

  在Fields Editor窗口中單擊鼠標右鍵選擇New Fields菜單項

  Delphi顯示New Fields對話框選擇Field Type列表框中的Currency 項並在Field Name文體框中輸入Balance 這樣我們自定義了一個 CurrencyField 類型的字段BalanceDelphi會自動地填入相應的字段對象名

  單擊Ok按鈕關閉New Field對話框當Fields Editor 窗口重新出現時 注意Balance已經出現在Fields列表框中

  在Fields Editor 窗口中單擊鼠標右鍵 並選擇 Add Fields 菜單項打開AddFields對話框

  從Available Fields 列表框中 按住 Ctrl 鍵並單擊鼠標左鍵選擇字段

  OrderNoCustNoSaleDateShipDataItemsTotalAmountpaid以及Balance

  單擊OK按鈕關閉Add Fields對話框得到Fields Editor窗口

  雙擊Fields Editor的控制盒關閉字段編輯器Fields Editor

  至此我們已經為Table創建了一個自定義的字段對象Balance下面我們把Balance字段設置成計算字段對象使其顯示每一個客戶的現金余額即此字段的值是由ORDERS DB表中ItemsTotal和Amountpaid字段的值計算而來的為使應用程序實現這種計算功能完成以下步驟

  在Object Inspector中選擇自定義字段對象TableBalance修改其 Calculated屬性值為True即定義Balance字段為計算字段

  在Object Inspector窗口中選擇Table部件的Event頁

  雙擊OnCalcField事件為TableOnCalcField編寫事件處理過程如下

  procedure TFormTableOnCalcFields(DataSet:TDataSet)

  begin

  TableBalanceValue:=TableItemsTotalValueTableAmountPaidValue;

  end;

  浏覽ORDERSDB 中的記錄

   查詢數據庫中的記錄

  數據庫中儲存著大量的數據信息如何充分有效地查詢其中的數據對用戶而言是至關重要的如果想查詢數據庫首先要確定要查詢的字段要麼是數據庫表中的關鍵字段要麼是輔助索引如果我們查詢的是Paradox或dBASE數據庫系統中的表這是唯一的選擇

  一般而言查詢數據庫中的記錄的方法有兩種Gotokey方法和Findkey方法兩種方法十分相似主要區別在於我們如何指定查找值這兩種方法的思想是在指定列(字段)中尋找指定的查找值如果在數據庫表中找到了這個值表中的記錄指針便指向該記錄這樣我們便查詢到了我們需要的記錄進而可以訪問找到的記錄中的各項數據

   使用GotoKey方法查找數據記錄

  使用Gotokey方法查詢數據庫中的記錄的具體步驟如下

  確保要查找的字段是關鍵字或已經為它定義了輔助索引並保證TTable部件的屬性列表中有關鍵字段名或輔助索引名

  通過調用GotoKey方法把要查找的TTable部件置成查找模式

  把查找值送進被查找的Field的查找緩沖區

  調用TTable部件的GotoKey方法並測試它的返回值判斷查找是否成功

  如果查找成功GotoKey返回一個True值並且表中的記錄指針指向找到的記錄如果查找失敗GotoKey返回False表中的記錄指針不發生變化

  在這裡要注意的是如何給Field的查找緩沖區賦值我們知道字段對象是不可見的對象它們沒有自己的名字在大多數情況下要使用TTable部件的FieldByName 方法到字段列表中查找字段對象以便為它賦值但字段緩沖區也是沒有名字的當TTable部件處於查找模式時我們只要把查找值賦給字段對象的AsString屬性就可以了AsString的作用不只是它的表面意思它是一個轉換屬性任何賦給字段對象的AsString屬性的字符串都將轉換成該字段對象應於數據庫表中的字段的數據類型當然AsString不能將查找值轉換成BLOBBytesMemo和Graphic類型的數據用戶一般也不會查找這種數據類型的字段

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25171.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.