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

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

?? 041.htm

?? delphi編程
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<p>③通過調用TQuery部件的Open方法或ExecSQl方法執行 SQL 命令。 Open
方法只執行Select命令,ExecSQL方法還可以執行其它的SQL命令。Open方法和ExecSQL
方法的區別我們在后面的章節里會進一步地加以討論的。</p>
<p>如果使用動態SQL語句,首先調用prepare方法,給動態SQL語句中的參數賦值,
然后再調用Open方法或ExecSQL方法。調用propare 方法并不是必須的,
但是對于要多次執行TQuery部件中SQL屬性中的動態SQL語句,調用Prepare可以大大提高TQuery部件執行SQL語句的性能。 </p>
<p>17.2.2 在TQuery部件中編寫簡單的SQL查詢命令 </p>
<p>在這一節里我們將學習如何使用TQuery部件編寫簡單的SQL查詢命令,并在Delphi
應用程序中實現SQL查詢。</p>
<p>例如,如果我們想查詢出表Customer.DB中客戶的編號和公司名稱,
我們按下列步驟來實現:</p>
<p>①在應用窗體中放置一個TQuery部件、一個TDataSource部件一個TDataGrid部件,并將它們連接起來 </p>
<p>②設置窗體TQuery 部件Query1的DatabaseName屬性值為DBDEMOS</p>
<p>③雙擊Object Inspector窗口中Query1的SQL 屬性, Delphi 將顯示 String List
Editor窗口。</p>
<p>④在圖17.3中的窗口中輸入SQL語句:</p>
<p>Select CustNo,Company From Custormer;</p>
<p>⑤單擊OK按鈕,關閉String List Editor窗口。</p>
<p>⑥設置Query的Open屬性為True。</p>
<p>17.3 SQL語言編程概述 </p>
<p>在Delphi應用程序中的SQL命令語句是包含在TQuery部件的SQL屬性中,TQuery部件的SQL屬性是TString類型的,也就是說SQL屬性值是一個字符串列表,
這個字符串列表非常類似于一個字符串類型的數組,有關TString類型的信息請參看聯機幫助。
在前一節里我們介紹了TQuery部件可以執行兩種SQL語句:</p>
<p>● 靜態SQL語句</p>
<p>● 動態SQL語句 </p>
<p>靜態SQL語句在程序設計時便已固定下來,它不包含任何參數和變量,
例如下面的語句便是一條靜態SQL語句: </p>
<p>Select * From Cusromer Where CustNo = 1234; </p>
<p>而動態SQL語句,也被稱作參數化的語句,在其中間包含著表示字段名或表名的參數,例如下面的語句是一條動態SQL語句: </p>
<p>Select * From Customer Where CustNo =: Number;</p>
<p> </p>
<p>其中的變量Number便是一個參數變量,它由一個冒號引導,在程序運行過程中,必須要為該參數賦值,該條SQL語句才能正確執行,
每次運行應用程序時可以為該參數變量賦予不同的值。</p>
<p> </p>
<p>17.3.1 SQL命令文本的編寫</p>
<p> </p>
<p>1. 使用String List Editor編寫</p>
<p>我們要為TQuery部件的SQL屬性設置SQL命令文本時,可以在應用窗體中選擇TQuery部件且雙擊Object
Inspector窗口中的SQL屬性,這樣便打開了String List Editor
窗口,在該窗口中我們便可以編寫各種SQL命令,如圖17.3所示。</p>
<p>在編寫完適當的SQL語句之后,選擇 OK 按鈕便可以將編輯器中的 SQL
命令文裝入到TQuery部件的SQL屬性中,選擇SAVE按鈕可以將編寫好的SQL命令保存到一個文件中供以后編程時使用。我們在編寫SQL命令文本時還可以選擇Load按鈕從一個
SQL 命令文件中調入SQL命令。在程序運行過程中,要想設置TQuery部件的SQL屬性,必須首先調用Close方法,關閉TQuery部件,然后再調用Clear方法清除SQL屬性中現存的SQL命令語句,
最后再調用Add方法為SQL屬性設置新的SQL命令語句。例如:</p>
<p> </p>
<p>Query1.Close {關閉Query1)</p>
<p>Query1.SQL.Clear {清除SQL屬性中的SQL命令語句}</p>
<p>Query1.SQL.Add('Select * From Country');</p>
<p>Query1.SQL.Add('Where Name =&quot;ARGENTINA&quot; ');</p>
<p> </p>
<p>在為TQuery部件設置SQL屬性時調用Close方法總是很安全的,如果TQuery部件已經被關閉了,調用Close方法時不會產生任何影響。在應用程序中為SQL屬性設置新的SQL
命令語句時,必須要調用Clear方法以清除SQL屬性中現存的SQL命令語句,如果不調用Clear方法,便調用Add方法向SQL屬性中設置SQL命令語句,那么新設置的SQL命令語句會追加在現存SQL命令語句后面,
在程序運行時常常會出現出乎意料的查詢結果甚至程序無法運行下去。</p>
<p>在這里要特別注意的,一般情況下TQuery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設置成多條SQL語句。當然有些數據庫服務器也支持在TQuery部件的SQL屬性中設置多條SQL語句,只要數據庫服務器允許這樣,我們在編程時可以為
SQL 屬性設置多條SQL語句。</p>
<p>2. 使用Visual Query Builder編寫</p>
<p>客戶/服務器版本的Delphi還包含一個可視化的查詢構造器Visual Query
Builder ,用這個可視化的工具我們只能編寫Select語句。在應用程序窗體中選擇TQuery部件后,單擊鼠標右鍵,彈出一個彈出式菜單,從中選擇Run
Visual Query Builder后便會彈出一對話框提示你選擇要訪問的數據庫,選擇想要訪問的數據庫之后選擇OK按鈕,緊接著會出現一個彈出式對話框提示你選擇要查詢的數據庫表,一次可以選擇多個數據庫表,若要選擇多個數據庫表,每選擇一個表之后單擊Add按鈕,接著選擇另一個表,
選擇完要查詢的表之后單擊Close按鈕,這樣,可視化的查詢構造器中將會顯示出用戶選擇的數據庫表。  </p>
<p>有關如何使用可視化的查詢構造器Visual Query Builder
請參看聯機幫助信息, 在Visual Query Builder中構造完一個查詢并退出Visual
Query Builder時,其中的SQL 命令語句會自動地寫入相應的TQuery部件的SQL屬性。 </p>
<p>17.3.2 SQL程序的執行 </p>
<p>在為TQuery部件設置完SQL屬性的屬性值之后,也即編寫好適當的SQL程序之后,可以有多種方式來執行SQL程序。</p>
<p>在設計過程中,設置完TQuery部件的SQL屬性之后將其Active屬性的值置為True,
這樣便可以執行SQL屬性中的SQL程序,如果應用中有與TQuery部件相連的數據瀏覽部件(
如TDDGrid TDBEdit等)那么在這些數據瀏覽部件中會顯示SQL程序的執行結果。</p>
<p>在應用程序運行過程中,通過程序調用TQuery部件的Open方法或ExecSQL
方法可以執行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。
大家在程序設計過程中一定要注意。Open方法只能用來執行SQL語言的查詢語句(Select命令),
并返回一個查詢結果集,而ExecSQL方法還可以用來執行其它常用的SQL語句(如Insert、UPDATE、
DELETE等命令)例如:</p>
<p> </p>
<p>Query1.Open (這樣會返回一個查詢結果集)</p>
<p> </p>
<p>如果調用Open方法,而沒有查詢結果時,會出錯。此時應該調用ExecSQL
方法來代替Open方法。如:</p>
<p> </p>
<p>Query1.ExecSQL (沒有返回結果)</p>
<p> </p>
<p>當然在設計應用程序時,程序設計人員是無法確定TQuery部件中的SQL
語句是否會返回一個查詢結果的。對于這種情況應當用Try…Except模塊來設計程序。在
Try 部分調用Open方法,而在Except部分調用ExceSQL方法,這樣才能保證程序的正確運行。</p>
<p>例如:</p>
<p> </p>
<p>Try</p>
<p>Query1.Open</p>
<p>Except</p>
<p>Query1.ExecSQL</p>
<p>End</p>
<p> </p>
<p>在應用程序中使用TQuery部件時,還可以設置它的UniDirectional屬性為True,這樣會加快檢索數據庫表的速度,
但是這樣只能往一個方向移動記錄指針, 在缺省情況下,UniDirectional屬性的值為False。</p>
<p> </p>
<p>17.3.3 通過TQuery部件如何獲得活動的數據</p>
<p> </p>
<p>我們在前面的章節里介紹TTable部件時,我們知道通過TTable部件從數據庫中獲得的數據都是活動的,也就是說用戶可以直接通過數據瀏覽部件對這些數據進行編輯修改。而通過TQuery部件可以獲得兩種類型的數據:</p>
<p>● “活動”的數據</p>
<p>這種數據就跟通過TTable部件獲得的數據一樣,用戶可以通過數據瀏覽部件來編
輯修改這些數據,并且當調用Post方法或當焦點離開當前的數據瀏覽部件時,用戶對數據的修改自動地被寫回到數據庫中,詳細情況請參看第四章“數據瀏覽部件的應用及編程”。</p>
<p>● 非活動的數據(只讀數據)</p>
<p>用戶通過數據瀏覽部件是不能修改其中的數據。在缺省情況下,通過TQuery部件
獲得的查詢結果數據是只讀數據,要想獲得“活動”的數據,在應用程序中必須要設置TQuery部件的RequestLive屬性值為True,然而并不是在任何情況下(通過設置RequestLive的屬值True)都可以獲得“活動”的數據的,要想獲得“活動”的數據,除了將TQuery部件的RequestLive屬性為True外,BDE要能夠返回“活動”的數據,相應的SQL命令語句還要滿足附錄C中的語法規則和下列的約束條件:</p>
<p>TQuery部件獲得“活動”的查詢結果數據的約束條件:</p>
<p> </p>
<p>當查詢Paradox或dBASE數據庫中的表:</p>
<p>● 查詢只能涉及到一個單獨的表</p>
<p>● SQL語句中不能包含ORDER BY命令</p>
<p>● SQL語句中不能含聚集運算符SUM或AVG</p>
<p>● 在Select后的字段列表中不能有計算字段</p>
<p>● 在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:
Like,&gt;,&lt;,&gt;=,&lt;=,各比較運算之間可以有并和交運算:AND和OR。</p>
<p> </p>
<p>當通過SQL語句查詢數據庫服務器中的數據庫表:</p>
<p>● 查詢只能涉及到一個單獨的表</p>
<p>● SQL語句中不能包含ORDER BY命令</p>
<p>● SQL語句中不能含聚集運算符SUM或AVG運算</p>
<p> </p>
<p>另外,如果是查詢Sybase數據庫中的表,那么被查詢的表中只能有一個索引。</p>
<p>如果在應用程序中要求TQuery部件返回一個“活動”的查詢結果數據集,但是SQL
命令語句不滿足上述約束條件時,對于本地數據庫的SQL查詢,BDE只能返回只讀的數據集。對于數據庫服務器中的SQL查詢,只能返回錯誤的代碼。當TQuery
部件返回一個“活動”的查詢結果數據集時,它的CanModify屬性的值會被設置成True。</p>
<p> </p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级黄| 视频一区免费在线观看| 日韩成人一区二区三区在线观看| 美国欧美日韩国产在线播放| www.亚洲色图.com| 久久午夜免费电影| 日韩成人精品视频| 99re6这里只有精品视频在线观看| 日韩欧美精品在线视频| 亚洲一区免费观看| 91麻豆精东视频| 中文欧美字幕免费| 国产美女在线精品| 亚洲精品一区二区三区在线观看| 亚洲一区二区三区在线看| 99久久99久久免费精品蜜臀| 久久久噜噜噜久噜久久综合| 日韩av不卡一区二区| 欧洲精品在线观看| 亚洲精品亚洲人成人网 | 韩国毛片一区二区三区| 欧美肥妇毛茸茸| 五月综合激情网| 欧美做爰猛烈大尺度电影无法无天| 欧美国产精品中文字幕| 粗大黑人巨茎大战欧美成人| 国产亚洲一本大道中文在线| 国产乱码精品一区二区三区五月婷| 日韩欧美一级精品久久| 久久精品国产在热久久| 欧美三级欧美一级| 1000精品久久久久久久久| 成人黄色在线看| 亚洲私人影院在线观看| 97精品电影院| 亚洲一区二区在线免费观看视频| 色噜噜狠狠成人网p站| 亚洲一区二区不卡免费| 欧美影视一区二区三区| 日韩精品一级二级| 精品国产亚洲在线| 国产成人精品网址| 亚洲欧美综合色| 91福利社在线观看| 日本午夜一本久久久综合| 欧美成va人片在线观看| 成人精品鲁一区一区二区| 最新国产成人在线观看| 欧美午夜不卡在线观看免费| 婷婷久久综合九色综合伊人色| 日韩三级高清在线| 成人黄色综合网站| 视频一区国产视频| 国产日韩欧美综合在线| 欧美专区日韩专区| 久久er99热精品一区二区| 久久先锋影音av鲁色资源网| 91片在线免费观看| 蜜臀va亚洲va欧美va天堂| 国产日韩欧美高清在线| 在线观看av不卡| 久久国产夜色精品鲁鲁99| 国产精品乱人伦一区二区| 欧美午夜电影一区| 国产成人免费xxxxxxxx| 亚洲一区二区五区| 久久久久国产精品麻豆ai换脸 | 免费高清不卡av| 国产精品久久二区二区| 欧美精品一级二级| 成人精品免费网站| 青草av.久久免费一区| 国产精品视频一二三区 | 国内成人免费视频| 亚洲精品美国一| 国产欧美一区二区精品仙草咪| 欧美日韩一区成人| www.日韩在线| 激情图片小说一区| 亚洲va韩国va欧美va精品| 欧美激情一区二区三区不卡| 欧美久久高跟鞋激| 91麻豆精品秘密| 国产suv精品一区二区883| 日韩av在线免费观看不卡| 亚洲人成网站影音先锋播放| 欧美精品一区二区三区蜜桃视频| 91视频免费看| 成人丝袜18视频在线观看| 久久国产麻豆精品| 五月婷婷另类国产| 亚洲自拍都市欧美小说| 国产精品国产精品国产专区不蜜 | 欧美精品在线视频| 欧美最新大片在线看| av中文字幕一区| 国产盗摄一区二区| 韩国理伦片一区二区三区在线播放| 天堂影院一区二区| 亚洲免费观看高清在线观看| 国产精品视频yy9299一区| 国产三级三级三级精品8ⅰ区| 日韩午夜小视频| 日韩欧美精品在线| 日韩美女一区二区三区| 日韩一区二区三区免费看| 69久久夜色精品国产69蝌蚪网| 日本福利一区二区| 在线影院国内精品| 在线一区二区三区做爰视频网站| www.久久精品| 99热这里都是精品| 91福利国产精品| 欧美色图在线观看| 欧美日韩精品电影| 欧美一区二区三区免费观看视频| 69p69国产精品| 欧美不卡123| 国产亚洲女人久久久久毛片| 国产视频在线观看一区二区三区| 国产欧美日韩麻豆91| 国产精品美女www爽爽爽| 自拍偷拍亚洲综合| 婷婷开心久久网| 韩日欧美一区二区三区| 高清不卡一区二区在线| va亚洲va日韩不卡在线观看| 91视频精品在这里| 欧美一区二区三区四区在线观看| 欧美丰满一区二区免费视频| 欧美一区二区福利视频| 久久久www免费人成精品| 中文字幕一区二区三中文字幕| 亚洲男人天堂av| 另类小说色综合网站| 国产一区二区在线免费观看| 成人av免费网站| 欧美日本不卡视频| 国产亚洲一区二区三区| 一区二区国产视频| 黑人巨大精品欧美黑白配亚洲| 成人av高清在线| 欧美精品 日韩| 日本一区二区动态图| 亚洲一区二区偷拍精品| 国模无码大尺度一区二区三区| 成人黄色电影在线 | 色综合色综合色综合| 欧美日韩一区二区在线观看视频| 欧美一级一区二区| 亚洲免费高清视频在线| 激情欧美日韩一区二区| 欧美这里有精品| 国产喷白浆一区二区三区| 亚洲高清久久久| 大白屁股一区二区视频| 91精品国产黑色紧身裤美女| 国产情人综合久久777777| 偷拍一区二区三区四区| 成人av电影免费在线播放| 日韩欧美久久一区| 亚洲一区二区三区美女| 岛国精品在线观看| 日韩亚洲欧美中文三级| 亚洲激情五月婷婷| 国产麻豆午夜三级精品| 欧美日韩国产小视频| 国产精品久久久久久久久动漫| 久久超级碰视频| 欧美军同video69gay| 亚洲欧洲三级电影| 国产suv一区二区三区88区| 日韩美女一区二区三区四区| 夜夜夜精品看看| 91在线丨porny丨国产| 国产午夜精品久久久久久免费视| 日韩高清在线观看| 欧美老人xxxx18| 一区二区三区欧美日韩| www.亚洲免费av| 国产精品欧美综合在线| 国产一本一道久久香蕉| 日韩精品一区二区三区视频| 午夜天堂影视香蕉久久| 91久久精品一区二区三区| 国产精品国产三级国产普通话99| 国精产品一区一区三区mba桃花| 4438x成人网最大色成网站| 午夜伊人狠狠久久| 精品视频资源站| 亚洲成人av在线电影| 欧美怡红院视频| 亚洲成人精品影院| 欧美日韩三级一区二区| 偷拍日韩校园综合在线| 欧美一区二区精品| 美女精品一区二区| 精品国产91久久久久久久妲己| 久草中文综合在线| 久久人人97超碰com|