黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書(shū)資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

2011計(jì)算機(jī)等考Delphi:數(shù)據(jù)庫(kù)創(chuàng)建及MASTAPP介紹

本章主要介紹用Delphi開(kāi)發(fā)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用程序的一般方法和步驟,首先讓讀者對(duì)Delphi強(qiáng)勁的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具有一個(gè)直觀的印象,然后在此基礎(chǔ)上進(jìn)行復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)。

  14.6.2 實(shí)現(xiàn)異常保護(hù)的TRY...FINALLY語(yǔ)句

  上面的程序存在著潛在的危險(xiǎn),在實(shí)際應(yīng)用過(guò)程中,可能因?yàn)槟承┰蚴沟脤?duì)數(shù)據(jù)庫(kù)表的更新不能進(jìn)行下去。如當(dāng)程序試圖執(zhí)行Post方法將修改后的記錄寫(xiě)回磁盤(pán)時(shí),而又因?yàn)槟撤N原因磁盤(pán)沒(méi)有準(zhǔn)備好,這時(shí)便出現(xiàn)了異常。當(dāng)出現(xiàn)異常時(shí),應(yīng)用程序會(huì)暫停下來(lái)并且會(huì)彈出一對(duì)話框顯示有關(guān)的錯(cuò)誤信息,在用戶單擊錯(cuò)誤信息對(duì)話框之后,程序?qū)⒗^續(xù)執(zhí)行到某一個(gè)地方去,而這個(gè)地方常常不是用戶所能預(yù)料到的。在我們的程序中, 在執(zhí)行Post方法之前,窗體中所有的部件與TTable部件都已失去聯(lián)系。因此,這種異常將導(dǎo)致窗體中顯示的數(shù)據(jù)和數(shù)據(jù)庫(kù)無(wú)關(guān)。

  Object Pascal中的Try...Finally語(yǔ)句為我們解決上述異常問(wèn)題提供了一個(gè)解決方法。在Delphi中仍然采用了這一語(yǔ)句用來(lái)處理異常問(wèn)題。實(shí)際上,Try...Finally 語(yǔ)句是把兩組語(yǔ)句組合在一起。語(yǔ)句的Try部分包含了可能產(chǎn)生異常的程序代碼,F(xiàn)inally部分包含了即使發(fā)生了異常也必須執(zhí)行的一條或多條語(yǔ)句。在本例中, Finally 部分只包含了EnableControls方法調(diào)用這一條語(yǔ)句,我們將前面的代碼改寫(xiě)并組合進(jìn)Try...Finally 語(yǔ)句:

  with Table Do

  begin

  DisableControls;{在修改記錄的過(guò)程中,使其它部件無(wú)效}

  Try;

  First; {將記錄指針指向第一條記錄}

  while not EOF do

  begin

  <讀取記錄的一個(gè)字段值到一個(gè)變量中>

  <做適當(dāng)?shù)男薷?gt;

  Edit; {將TTable部件置成編輯狀態(tài)}

  <將修改后的字段值寫(xiě)回到其對(duì)應(yīng)的字段>

  post; {將修改后的記錄寫(xiě)回?cái)?shù)據(jù)庫(kù)}

  next; {修改下一條記錄}

  end;

  enablecontrols;

  Finally;{出現(xiàn)異常時(shí),執(zhí)行下面的程序}

  enablecontrols; {恢復(fù)其它部件的功能}

  end; {結(jié)束Try...Finally語(yǔ)句}

  end;

  在保留字Try和Finally之間的代碼跟前面的代碼是一樣的,它們用于在記錄之間移動(dòng)記錄指針并處理對(duì)記錄的修改,這一段代碼可能會(huì)出現(xiàn)異常,當(dāng)異常發(fā)生時(shí),我們想保證執(zhí)行EnableControls,以便窗體中各控件恢復(fù)與 TTable 部件的聯(lián)系, 因此我們必須將EnableControls語(yǔ)句放在Finally和結(jié)束語(yǔ)句End之間。

  在這里要特別注意,請(qǐng)讀者們不要混淆了Try...Finally語(yǔ)句和Try...Except 語(yǔ)句。如果真正想在發(fā)生異常時(shí)采取相應(yīng)的處理,就要使用Try...Except語(yǔ)句。Try... Finally語(yǔ)句只是用來(lái)處理當(dāng)異常出現(xiàn)時(shí),使應(yīng)用程序執(zhí)行Finally部分的語(yǔ)句,使程序繼續(xù)執(zhí)行下去。Try...Except語(yǔ)句是實(shí)現(xiàn)異常處理,Try...Finally語(yǔ)句是實(shí)現(xiàn)異常保護(hù)。

  有了上述這些概念,我們便可以提供這個(gè)例子的一些程序代碼,它涉及了所有這些內(nèi)容。

  程序清單:修改數(shù)據(jù)庫(kù)中的記錄

  unit Unit26;

  interface

  uses

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

  Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, DB, DBTables, Buttons;

  type

  TForm1 = class(TForm)

  DataSource1: TDataSource;

  customerTable: TTable;

  Panel1: TPanel;

  DBGrid1: TDBGrid;

  Panel2: TPanel;

  UpperCaseFirstAddBtn: TButton;

  UpperCaseSecondAddBtn: TButton;

  MixedCaseFirstAddBtn: TButton;

  MixedCaseSecondAddBtn: TButton;

  BitBtn1: TBitBtn;

  procedure ForceCase(TargetField:String;ToUpper:Boolean);

  procedure UpperCaseFirstAddBtnClick(Sender: TObject);

  procedure MixedCaseFirstAddBtnClick(Sender: TObject);

  procedure UpperCaseSecondAddBtnClick(Sender: TObject);

  procedure MixedCaseSecondAddBtnClick(Sender: TObject);

  procedure FormCreate(Sender: TObject);

  private

  { Private declarations }

  public

  { Public declarations }

  end;

  var

  Form1: TForm1;

  implementation

  const

  upper=true;

  Mixed=False;

  {$R *.DFM}

  Function IsUpper(ch:char):Boolean;

  begin

  If (ch>='A')and(ch<='Z')then

  IsUpper:=true

  else

  IsUpper:=False;

  end;

  procedure TForm1.ForceCase(TargetField:String;ToUpper:Boolean);

  var

  WorkBuffer:string;

  i:Integer;

  begin

  with customerTable do

  begin

  DisableControls;

  TRY

  First; {將記錄指針移到第一條記錄處 }

  While not EOF do

  begin

  WorkBuffer:=FieldByName(TargetField).AsString;

  If ToUpper then

  for i:=1 to Length(WorkBuffer)do

  WorkBuffer[i]:=UpCase(WorkBuffer[i])

  else

  begin

  for i:=1 to Length(WorkBuffer) do

  If IsUpper(WorkBuffer[i]) then

  WorkBuffer[i]:=chr(ord(WorkBuffer[i])+32);

  WorkBuffer[1]:=UpCase(WorkBuffer[1])

  end;

  Edit;

  FieldByName(TargetField).AsString:=WorkBuffer;

  post;

  Next;

  end;

  Finally

  enableControls;

  end;

  end;

  end;

  procedure TForm1.UpperCaseFirstAddBtnClick(Sender: TObject);

  begin

  ForceCase('Addr1',Upper);

  end;

  procedure TForm1.MixedCaseFirstAddBtnClick(Sender: TObject);

  begin

  ForceCase('Addr1',Mixed);

  end;

  procedure TForm1.UpperCaseSecondAddBtnClick(Sender: TObject);

  begin

  ForceCase('Addr2',Upper);

  end;

  procedure TForm1.MixedCaseSecondAddBtnClick(Sender: TObject);

  begin

  ForceCase('Addr2',Mixed);

  end;

  procedure TForm1.FormCreate(Sender: TObject);

  begin

  customerTable.open;

  end;

  end.

  相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題
       預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
       2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及入口
       2010年9月計(jì)算機(jī)等考成績(jī)查詢短信免費(fèi)提醒開(kāi)通
文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
主站蜘蛛池模板: 亚洲欧美另类自拍第一页 | 目韩一区二区三区系列片丶 | 高清福利视频 | 一级影院| 成人福利在线视频免费观看 | 成人午夜影视全部免费看 | 6080欧美a大片一级 | 日韩免费视频播播 | 九九精品在线播放 | 黄色三级免费 | 依欧美视频 | 欧美在线一级视频 | 国产精品日韩欧美一区二区三区 | 欧美性猛交xxxxx免费看 | 欧美成网 | 国产午夜精品片一区二区三区 | 欧洲真实呦女网站 | 狠狠插综合网 | 日色网站 | 亚洲影视一区二区 | 青青草国拍 | 亚洲天堂视频在线免费观看 | 91视频大全| 欧美精品免费xxxxx视频 | 一级免费a| 奇米一二区 | 污污香蕉视频 | 欧美巨大另类极品video | 小明www永久免费播放平台 | 日韩欧美综合在线 | 久久91久久91精品免费观看 | 久久精品成人欧美大片免费 | 最新在线鲁丝片eeuss第1页 | 一个人看www在线是免费 | 国产一级做a爱免费观看 | 日韩亚洲综合精品国产 | 700av第一福利在线导航 | 乱系列中文字幕在线视频 | 高清午夜毛片 | 羞羞视频免费网站含羞草 | igao网|