亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 035.htm

?? delphi編程
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基礎教程-->第十四章 簡單數據庫應用的創建及MASTAPP介紹(三)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基礎教程 第十四章 簡單數據庫應用的創建及MASTAPP介紹(三)">
<META NAME="description" CONTENT=" - DELPHI基礎教程 - 第十四章 簡單數據庫應用的創建及MASTAPP介紹(三)">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋體"}
.tt2 {font: 12pt/15pt "宋體"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="036.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR>
<A HREF="034.htm"><FONT style="FONT-SIZE: 9pt">前一頁</font></A><BR>

<A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目錄</font></A><BR>
<A HREF="../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首頁</font></A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">第十四章 簡單數據庫應用的創建及MASTAPP介紹(三)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p>&nbsp;&nbsp;&nbsp; 利用GotoNearest方法執行不精確查找</p>
<p>窗體中的“不精確查找”按鈕的事件處理過程代碼如下:</p>
<p>procedure TForm1.Button1Click(Sender: TObject);</p>
<p>begin</p>
<p>with table1 do</p>
<p>begin</p>
<p>IndexFieldNames:='Company';</p>
<p>setkey;</p>
<p>FieldByName('Company').AsString:=Edit1.text;</p>
<p>GotoNearest;</p>
<p>label3.caption:=FieldByName('Company').AsString;</p>
<p>end;</p>
<p>end;</p>
<p>&nbsp;&nbsp;&nbsp; 讀者可以利用 FindNearest
方法執行上面的不精確查找, 具體使用方法可以參看Findkey方法的使用。</p>
<p>在上面的例子中要設置table1的IndexFieldNames屬性為Company。</p>
<p>GotoNearest方法進行不精確查找</p>
<p align="center">14.6 修改數據庫中的記錄 </p>
<p>
&nbsp;&nbsp;&nbsp; 我們掌握了字段對象的概念和如何查找數據庫中的記錄之后,下面我便可以很方便地修改數據庫中現存的記錄了,一般來說,在程序中修改數據庫中的記錄包括下面這些步驟:</p>
<p>1、在數據庫中找到要修改的記錄,并將記錄指針移至該記錄。</p>
<p>2、調用Edit方法將與數據庫表相連的TTable部件設置成編輯狀態。</p>
<p>3、修改一個或多個字段。</p>
<p>4、調用post方法將修改后的記錄寫入數據庫。</p>
<p>
&nbsp;&nbsp;&nbsp; 以上這幾個步驟只是概述性的,具體實現時還有很多細節需要留心,我們通過一個例子來演示上面的全過程,以便讓讀者進一步地了解和掌握修改記錄的方法。</p>
<p>&nbsp;&nbsp; 例14.6
我們為四個按鈕分別編寫了事件處理過程,用來遍歷數據庫中的記錄并對每個客戶記錄的Company字段進行修改,
在程序對記錄進行更新操作時窗口中的控件都是無效的,在這個例子中我們還編寫了一個簡單的異常代碼塊用來確保在更新過程中出現異常時使控件恢復正常操作。 </p>
<p> 修改數據庫記錄</p>
<p>14.6.1 Edit方法Post方法 </p>
<p>&nbsp;&nbsp;&nbsp; 為了能讓用戶通過程序修改數據庫表中的記錄,TTable部件必須要處在編輯狀態下。在大多數情況下,數據庫表都是以瀏覽(只讀方式)方式打開的,也就是說它的每一個字段可以被讀取介不能被編輯修改。調用Edit
方法能夠將 TTable 部件置成編輯狀態, 當TTable部件處于編輯狀態后,我們才可以通過程序修改當前記錄指針所指向的記錄,但這樣修改后的記錄不會立即被寫入到磁盤上的實際數據庫表中。要想保存對記錄的修改,必須要調用Post方法,Post方法才真正將我們對記錄的修改寫入實際的數據庫表中。</p>
<p>一般來說,用來掃描整個數據庫表并修改每個記錄的某一個字段的程序如下所示:</p>
<p>with Table Do</p>
<p>begin</p>
<p>DisableControls;{在修改記錄的過程中,使其它部件無效}</p>
<p>First; {將記錄指針指向第一條記錄} </p>
<p>while not EOF do </p>
<p>begin</p>
<p>&lt;讀取記錄的一個字段值到一個變量中&gt; </p>
<p>&lt;做適當的修改&gt;</p>
<p>Edit; {將TTable部件置成編輯狀態} </p>
<p>&lt;將修改后的字段值寫回到其對應的字段&gt; </p>
<p>post; {將修改后的記錄寫回數據庫} </p>
<p>next; {修改下一條記錄} </p>
<p>end;</p>
<p>enablecontrols; {恢復其它部件的功能}</p>
<p>end;</p>
<p>&nbsp;&nbsp;&nbsp; 程序都是對TTable部件進行操作,因此使用With語句來防止錯誤的擴散是很有意義的。在這里要注意Disablecontrols方法和EnableControls方法的使用。DisableControls方法是在程序修改TTable部件中的記錄時,切斷TTable部件與數據訪問部件TDatasource
部件的聯系。否則,在對TTable中的每一修改之后,TDataSource
部件都會更新窗體中所有數據瀏覽部件的顯示內容,這樣會急劇減慢處理過程而且浪費時間。EnableControls方法是與DisableControle方法執行相反的操作,它是用來恢復TTable部件與TDatasource部件的聯系并促使所有的數據瀏覽部件更新顯示。</p>
<p>&nbsp;&nbsp;&nbsp; 調用First方法是將記錄指針移到數據庫表中的第一條記錄,
確保程序從表中的第一條記錄開始進行修改。調用Next方法是將記錄指針從當前的記錄移到下一條記錄,這樣保證了從表中的第一條記錄開始逐條記錄進行修改,直到修改完最后一條記錄。如果不調用Next方法,程序將會陷入無窮的死循環。 </p>
<p>14.6.2 實現異常保護的TRY...FINALLY語句 </p>
<p>
&nbsp;&nbsp;&nbsp; 上面的程序存在著潛在的危險,在實際應用過程中,可能因為某些原因使得對數據庫表的更新不能進行下去。如當程序試圖執行Post方法將修改后的記錄寫回磁盤時,而又因為某種原因磁盤沒有準備好,這時便出現了異常。當出現異常時,應用程序會暫停下來并且會彈出一對話框顯示有關的錯誤信息,在用戶單擊錯誤信息對話框之后,程序將繼續執行到某一個地方去,而這個地方常常不是用戶所能預料到的。
在我們的程序中, 在執行Post方法之前,窗體中所有的部件與TTable部件都已失去聯系。因此,這種異常將導致窗體中顯示的數據和數據庫無關。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object Pascal中的Try...Finally語句為我們解決上述異常問題提供了一個解決方法。在Delphi中仍然采用了這一語句用來處理異常問題。實際上,Try...Finally
語句是把兩組語句組合在一起。語句的Try部分包含了可能產生異常的程序代碼,Finally部分包含了即使發生了異常也必須執行的一條或多條語句。
在本例中, Finally 部分只包含了EnableControls方法調用這一條語句,我們將前面的代碼改寫并組合進Try...Finally
語句: </p>
<p>with Table Do</p>
<p>begin</p>
<p>DisableControls;{在修改記錄的過程中,使其它部件無效}</p>
<p>Try;</p>
<p>First; {將記錄指針指向第一條記錄} </p>
<p>while not EOF do </p>
<p>begin</p>
<p>&lt;讀取記錄的一個字段值到一個變量中&gt; </p>
<p>&lt;做適當的修改&gt;</p>
<p>Edit; {將TTable部件置成編輯狀態} </p>
<p>&lt;將修改后的字段值寫回到其對應的字段&gt; </p>
<p>post; {將修改后的記錄寫回數據庫} </p>
<p>next; {修改下一條記錄} </p>
<p>end;</p>
<p>enablecontrols;</p>
<p>Finally;{出現異常時,執行下面的程序} </p>
<p>enablecontrols; {恢復其它部件的功能}</p>
<p>end; {結束Try...Finally語句}</p>
<p>end;</p>
<p>&nbsp;&nbsp;&nbsp; 在保留字Try和Finally之間的代碼跟前面的代碼是一樣的,它們用于在記錄之間移動記錄指針并處理對記錄的修改,這一段代碼可能會出現異常,當異常發生時,我們想保證執行EnableControls,
以便窗體中各控件恢復與 TTable 部件的聯系, 因此我們必須將EnableControls語句放在Finally和結束語句End之間。</p>
<p>&nbsp;&nbsp;&nbsp; 在這里要特別注意,請讀者們不要混淆了Try...Finally語句和Try...Except
語句。如果真正想在發生異常時采取相應的處理,就要使用Try...Except語句。Try...
Finally語句只是用來處理當異常出現時,使應用程序執行Finally部分的語句,
使程序繼續執行下去。Try...Except語句是實現異常處理,Try...Finally語句是實現異常保護。</p>
<p>
&nbsp;&nbsp;&nbsp; 有了上述這些概念,我們便可以提供這個例子的一些程序代碼,它涉及了所有這些內容。</p>
<p>程序清單:修改數據庫中的記錄 </p>
<p>unit Unit26;</p>
<p>interface </p>
<p>uses</p>
<p>Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, </p>
<p>Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, DB, DBTables, Buttons; </p>
<p>type</p>
<p>TForm1 = class(TForm)</p>
<p>DataSource1: TDataSource;</p>
<p>customerTable: TTable;</p>
<p>Panel1: TPanel;</p>
<p>DBGrid1: TDBGrid;</p>
<p>Panel2: TPanel;</p>
<p>UpperCaseFirstAddBtn: TButton;</p>
<p>UpperCaseSecondAddBtn: TButton;</p>
<p>MixedCaseFirstAddBtn: TButton;</p>
<p>MixedCaseSecondAddBtn: TButton;</p>
<p>BitBtn1: TBitBtn;</p>
<p>procedure ForceCase(TargetField:String;ToUpper:Boolean);</p>
<p>procedure UpperCaseFirstAddBtnClick(Sender: TObject);</p>
<p>procedure MixedCaseFirstAddBtnClick(Sender: TObject);</p>
<p>procedure UpperCaseSecondAddBtnClick(Sender: TObject);</p>
<p>procedure MixedCaseSecondAddBtnClick(Sender: TObject);</p>
<p>procedure FormCreate(Sender: TObject);</p>
<p>private</p>
<p>{ Private declarations }</p>
<p>public</p>
<p>{ Public declarations }</p>
<p>end; </p>
<p>var</p>
<p>Form1: TForm1; </p>
<p>implementation</p>
<p>const</p>
<p>upper=true;</p>
<p>Mixed=False; </p>
<p>{$R *.DFM}</p>
<p>Function IsUpper(ch:char):Boolean;</p>
<p>begin</p>
<p>If (ch&gt;='A')and(ch&lt;='Z')then</p>
<p>IsUpper:=true</p>
<p>else</p>
<p>IsUpper:=False;</p>
<p>end;</p>
<p>procedure TForm1.ForceCase(TargetField:String;ToUpper:Boolean);</p>
<p>var</p>
<p>WorkBuffer:string;</p>
<p>i:Integer;</p>
<p>begin</p>
<p>with customerTable do</p>
<p>begin</p>
<p>DisableControls;</p>
<p>TRY</p>
<p>First; {將記錄指針移到第一條記錄處 }</p>
<p>While not EOF do</p>
<p>begin</p>
<p>WorkBuffer:=FieldByName(TargetField).AsString;</p>
<p>If ToUpper then</p>
<p>for i:=1 to Length(WorkBuffer)do</p>
<p>WorkBuffer[i]:=UpCase(WorkBuffer[i])</p>
<p>else</p>
<p>begin</p>
<p>for i:=1 to Length(WorkBuffer) do</p>
<p>If IsUpper(WorkBuffer[i]) then</p>
<p>WorkBuffer[i]:=chr(ord(WorkBuffer[i])+32);</p>
<p>WorkBuffer[1]:=UpCase(WorkBuffer[1])</p>
<p>end;</p>
<p>Edit;</p>
<p>FieldByName(TargetField).AsString:=WorkBuffer;</p>
<p>post;</p>
<p>Next;</p>
<p>end;</p>
<p>Finally</p>
<p>enableControls;</p>
<p>end;</p>
<p>end;</p>
<p>end; </p>
<p>procedure TForm1.UpperCaseFirstAddBtnClick(Sender: TObject);</p>
<p>begin</p>
<p>ForceCase('Addr1',Upper);</p>
<p>end; </p>
<p>procedure TForm1.MixedCaseFirstAddBtnClick(Sender: TObject);</p>
<p>begin</p>
<p>ForceCase('Addr1',Mixed);</p>
<p>end;</p>
<p> </p>
<p>procedure TForm1.UpperCaseSecondAddBtnClick(Sender: TObject);</p>
<p>begin</p>
<p>ForceCase('Addr2',Upper);</p>
<p>end;</p>
<p> </p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情综合网| hitomi一区二区三区精品| 国产高清亚洲一区| 在线免费视频一区二区| 久久婷婷一区二区三区| 亚洲专区一二三| 成人性生交大片免费看视频在线| 欧美色手机在线观看| 国产精品欧美久久久久无广告| 亚洲国产成人av网| 成人av免费网站| 欧美精品一区二| 日韩不卡免费视频| 欧美午夜寂寞影院| 亚洲欧美影音先锋| 国产91丝袜在线播放0| 欧美一级国产精品| 日韩中文欧美在线| 欧美日韩国产成人在线91| 亚洲四区在线观看| av欧美精品.com| 国产精品美女视频| 国产成a人无v码亚洲福利| 2023国产精华国产精品| 久久精品国产一区二区三 | 欧美一卡二卡三卡| 夜夜嗨av一区二区三区网页| 99久久婷婷国产综合精品| 日本一区二区久久| 成人久久18免费网站麻豆 | 精品欧美一区二区在线观看 | 成人av资源在线| 欧美国产精品一区二区三区| 国产精品一区二区在线播放| 久久久另类综合| 国产二区国产一区在线观看| 久久久久国产精品免费免费搜索| 韩国一区二区在线观看| 久久久久久一级片| 成人免费视频视频在线观看免费| 国产农村妇女毛片精品久久麻豆| 国产成人综合亚洲网站| 国产精品久久久久三级| 色猫猫国产区一区二在线视频| 亚洲色图欧美在线| 精品视频一区三区九区| 日韩主播视频在线| 欧美精品一区二区久久婷婷| 国产99精品视频| 玉米视频成人免费看| 欧美日韩情趣电影| 精品一区二区在线播放| 国产午夜精品理论片a级大结局| 成人丝袜18视频在线观看| 亚洲精品日韩一| 91精品国产一区二区人妖| 精品一区二区三区久久| 国产精品久久久久久久久动漫| 91国在线观看| 久久国产夜色精品鲁鲁99| 国产精品污污网站在线观看| 在线免费观看日本欧美| 另类成人小视频在线| 亚洲色图欧美在线| 日韩精品一区二| 99久久精品国产毛片| 日本欧美在线看| 亚洲va韩国va欧美va| 久久九九久精品国产免费直播| 色欧美片视频在线观看| 国产综合色精品一区二区三区| 自拍偷拍国产亚洲| 精品国产露脸精彩对白| 色国产综合视频| 久久99国产精品免费| 亚洲精品中文字幕在线观看| 日韩精品在线看片z| 91精品办公室少妇高潮对白| 韩国精品主播一区二区在线观看| 亚洲美女一区二区三区| 亚洲精品在线一区二区| 欧美色涩在线第一页| 成人性生交大合| 青青草91视频| 午夜欧美大尺度福利影院在线看| 国产肉丝袜一区二区| 欧美一区二区三区影视| 色综合天天在线| 成人一级黄色片| 麻豆91在线观看| 亚洲午夜久久久久久久久久久| 亚洲精品在线网站| 91精品国产91久久综合桃花| 91久久精品国产91性色tv| 国产99一区视频免费 | 亚洲精品菠萝久久久久久久| 久久久五月婷婷| 欧美大片一区二区三区| 91极品视觉盛宴| av毛片久久久久**hd| 国产黄人亚洲片| 极品美女销魂一区二区三区| 日本不卡视频在线| 日韩av高清在线观看| 亚洲一区在线观看免费观看电影高清| 日本一区二区视频在线| 国产亚洲一二三区| 337p日本欧洲亚洲大胆色噜噜| 日韩欧美国产综合一区| 欧美一区二区在线不卡| 91麻豆精品国产综合久久久久久| 欧美熟乱第一页| 欧美性xxxxx极品少妇| 在线中文字幕一区二区| 99视频在线精品| 99久久精品国产观看| 91小视频在线免费看| 色哟哟在线观看一区二区三区| 91视频免费观看| 色哟哟亚洲精品| 91久久线看在观草草青青| 欧美在线视频你懂得| 欧美久久久一区| 日韩欧美国产麻豆| 久久精品网站免费观看| 欧美激情中文字幕一区二区| 国产欧美日韩在线看| 国产精品超碰97尤物18| 一区二区三区美女| 亚洲h在线观看| 麻豆成人久久精品二区三区小说| 久久成人免费电影| 国产精品1区2区3区| 99在线精品观看| 欧美日韩成人一区| 精品剧情在线观看| 中文字幕不卡在线播放| 亚洲精品国久久99热| 日韩国产欧美一区二区三区| 久久99精品久久久久久| 成人免费观看视频| 欧美少妇性性性| 久久亚洲精精品中文字幕早川悠里 | 国产一区在线看| 99精品视频中文字幕| 欧美日韩亚洲另类| 久久九九全国免费| 亚洲成人av电影在线| 国产一区二区不卡在线| 色一情一乱一乱一91av| 91精品国产综合久久久蜜臀图片| 久久日韩精品一区二区五区| 亚洲人成亚洲人成在线观看图片| 亚洲小说春色综合另类电影| 精品一区二区综合| 欧美自拍丝袜亚洲| 久久综合av免费| 亚洲一区二区三区四区在线观看| 久久99久久精品| 欧美综合亚洲图片综合区| 久久精品一级爱片| 亚洲第一综合色| av网站一区二区三区| 欧美videos中文字幕| 亚洲精品日日夜夜| 国产精品1区2区| 国产精品麻豆视频| 午夜精品福利久久久| 成人av在线网| 日韩欧美一级特黄在线播放| 一区二区三区中文在线| 国产99精品国产| 欧美成人一区二区三区片免费| 成人免费小视频| 国产大陆亚洲精品国产| 欧美一区二区三区视频免费| 一区二区三区中文免费| 不卡的电影网站| 国产欧美日韩在线看| 久久精品国产久精国产爱| 欧美综合一区二区| 亚洲摸摸操操av| av毛片久久久久**hd| 中文字幕欧美国产| 国产一区二区三区在线观看免费 | 国产99久久久国产精品潘金 | 国产一区二区三区在线观看免费视频 | 日韩电影在线观看电影| 欧美最猛性xxxxx直播| 国产精品护士白丝一区av| 国产一区二区三区免费在线观看| 欧美日韩国产一区二区三区地区| 综合久久国产九一剧情麻豆| 成人午夜免费电影| 国产日韩欧美电影| 国产成人在线视频免费播放| 精品久久久影院| 精品在线观看免费| 久久美女艺术照精彩视频福利播放| 麻豆精品视频在线观看视频|