《UniDAC 基础》 【菜头】 翻译 (之一)
UniDAC快速入門 菜頭? 譯 |
?原文是在UniDAC的安裝目錄下,我復(fù)制了一份到我的博客里:點(diǎn)我
| · | ?? 簡(jiǎn)介 ? ?? 譯者概述 |
|
| ?? 連接到數(shù)據(jù)庫(kù) ?? 查詢數(shù)據(jù) ?? 執(zhí)行查詢 ?? 修改數(shù)據(jù) ?? 執(zhí)行存儲(chǔ)過(guò)程 ?? 建立主從關(guān)系 ?? 聯(lián)合查詢 |
?? 簡(jiǎn)介
?通用數(shù)據(jù)組件(UniDAC)是一個(gè)強(qiáng)大的用于Delphi、C++Builder、Lazarus(Free Pascal)非可視、交叉數(shù)據(jù)庫(kù)數(shù)據(jù)接入組件。UniDAC組件庫(kù)是為了幫助開(kāi)發(fā)者更快更簡(jiǎn)潔的開(kāi)發(fā)交叉數(shù)據(jù)庫(kù)應(yīng)用而設(shè)計(jì)的。
UniDAC是一個(gè)可以完全替代標(biāo)準(zhǔn)數(shù)據(jù)連接的組件,是基于Borland數(shù)據(jù)庫(kù)引擎開(kāi)發(fā)的……啥啥啥……可接入Oracle, SQLServer, MySQL, InterBase, Firebird, SQLite, DB2, Microsoft Access, AdvantageDatabase Server, Adaptive Server Enterprise, DBF, NexusDB, 還有其它的數(shù)據(jù)庫(kù) (通過(guò) ODBC 提供者).
UniDAC基于從眾所周知的數(shù)據(jù)庫(kù)組件Devart開(kāi)發(fā)的,例如:ODAC, SDAC, MyDAC, IBDAC, and PgDAC.
本文為你提供一個(gè)即將使用UniDAC的概覽……啥啥啥的……
?
?譯者概述
本人原名:XXX,昵稱【菜頭】,文化程度只到X中,編程只是興趣,并一直持續(xù)了十幾年,接觸Delphi時(shí)間并不長(zhǎng),也就一年多,所以本譯文中肯定會(huì)有許多謬誤,UniDac是一款為數(shù)據(jù)庫(kù)連接查詢提供了方便快捷的設(shè)計(jì)方案的組件,可是百度了一下教程后,發(fā)現(xiàn)國(guó)語(yǔ)很少,又或者太過(guò)簡(jiǎn)易,對(duì)于英語(yǔ)不好的人(其實(shí)也包括我)來(lái)說(shuō),就像是一塊放到嘴前的肥肉(或者說(shuō)王八……)而無(wú)從下嘴,好在,UniDac在新版中已經(jīng)有了Demo示例,還有幫助文檔,不過(guò)依舊是E文……
由于手頭接了個(gè)小活,要為一所美容連鎖機(jī)構(gòu)開(kāi)發(fā)一套進(jìn)存銷系統(tǒng),設(shè)計(jì)方案幾經(jīng)篩選,淘汰了B(Basic)、C(C++)、E(易語(yǔ)言)、還有國(guó)產(chǎn)Justep的X5后,最終選擇了一直心愛(ài)的D。至于為啥淘汰那幾款……,歡迎來(lái)跟我嘴對(duì)嘴的……
呆而肥!我愛(ài)呆而肥!
以前只用D寫寫外掛或者某些插件,外掛基本自己用,所以對(duì)程序的面子要求比較少,用的都是土到掉渣的標(biāo)準(zhǔn)組件,但這次因?yàn)橐嫦蛘绞召M(fèi)的客戶,所以面子問(wèn)題就擺上了臺(tái)面……
還有哪個(gè)語(yǔ)言比D可以更快的搞出優(yōu)秀的界面?還有嗎?!
咱只用2D做出來(lái)的界面就得讓其它幾款仰望了……,更何況哥還沒(méi)放出FireMonkey(^^,其實(shí)還不會(huì)用……)
我的D基礎(chǔ)是很差的,所以要打基礎(chǔ),從翻譯開(kāi)始……
至于本譯文會(huì)不會(huì)誤人子弟……,那不是我考慮的范圍……
翻譯對(duì)我這種還要借助金山詞霸的人來(lái)說(shuō)很辛苦,所有,這段小廣告請(qǐng)各位轉(zhuǎn)載門保留吧。
菜頭.Email:='372212322@qq.com'??非【程】勿擾。
??連接到數(shù)據(jù)庫(kù)
在設(shè)計(jì)期時(shí)連接到數(shù)據(jù)庫(kù)
要使用 UniDac component 你要按以下步驟來(lái):
? 創(chuàng)建一個(gè)空的工程來(lái)使用Uni控件,從Delphi IDE的菜單中依次選擇: File | New | VCLForms Application
? 在【控件面板】中找到 【UniDAC】 頁(yè)然后拖一個(gè) TUniConnection 控件到新窗體中。
? 可以通過(guò)雙擊TuniConnection控件打開(kāi)屬性修改器,來(lái)修改它的主要屬性。
? 在Provider? 屬性的下拉框中選擇一個(gè)數(shù)據(jù)供應(yīng)源。比如,選擇如果你的數(shù)據(jù)源是Oracle數(shù)據(jù)庫(kù),那么就選擇【Oracle】。
? 輸入下面這些屬性值:UserName(用戶名),password(密碼),server(數(shù)據(jù)庫(kù)地址,IP,服務(wù)器名),DataBase(庫(kù)名),Port(端口),要注意的是,有些數(shù)據(jù)原并不依賴這些屬性。
?? 比如,Oracle你只要輸入:
????? UserName(用戶名),
????? password(密碼),
????? server(數(shù)據(jù)庫(kù)地址,IP,服務(wù)器名),
? 其中的Server(數(shù)據(jù)庫(kù)地址,IP,服務(wù)器名)是一個(gè)TNS別名,你可以在Server屬性的下拉菜單中選擇,或者手工輸入它們。(譯者注:我沒(méi)使用過(guò)Oracle所以不知道這個(gè)TNS是什么,不過(guò)相信使用Oracl的人應(yīng)該都清楚。)
?
? 點(diǎn)擊【Connect】連接按鈕,如果連接成功,主要屬性修改器會(huì)自動(dòng)關(guān)閉,可以能過(guò)再雙擊TuniConnection控件再次打開(kāi)主屬性修改器,然后選擇第二頁(yè)【Options】選項(xiàng)對(duì)話框,在這里,你可以輸入一些與數(shù)據(jù)提供者相關(guān)的特殊參數(shù)項(xiàng)。【Schema】模式參數(shù),是一個(gè)對(duì)Oracle數(shù)據(jù)庫(kù)來(lái)說(shuō)很重要的參數(shù),在本例中,我們將使用“SCOTT”模式,所以我們?cè)谶@兒輸入了“SCOTT”。
?
?
?
?
??? 在運(yùn)行時(shí)連接數(shù)據(jù)庫(kù)
下例代碼展示了,如何在運(yùn)行時(shí)設(shè)置與連接數(shù)據(jù)庫(kù):
UniConnection1: TUniConnection; ... UniConnection1.ProviderName := 'Oracle'; UniConnection1.Username := 'scott'; UniConnection1.Password := 'tiger'; UniConnection1.Server := 'ORA1020'; UniConnection1.SpecificOptions.Values['Schema'] := 'SCOTT'; UniConnection1.Open;? 每個(gè)【SpecificOptions】(特殊參數(shù))都有如下的設(shè)置格式:
<OptionName>=<Value>
你可以按以下這種方法來(lái)來(lái)增加它們:
?
UniConnection1.SpecificOptions.Add('Schema=SCOTT');
?但最好是通過(guò)Tstrings類型的【Values】屬性來(lái)設(shè)置或添加它們,因?yàn)檫@個(gè)屬性不會(huì)在已存在該同名參數(shù)時(shí)再次添加它們,而會(huì)用“=”后的新值來(lái)代替它。
But it is better to use the Values property of TStrings becausethis property does not add a new line if an option with the same name alreadyexists. Instead it replaces the text after '=' with a new value.
?
? 可以用Close方法來(lái)關(guān)閉連接:?
UniConnection1.Close;?
? 在你的工程中,你可以能過(guò)在代碼的【Uses】引用列表段添加你所使用的數(shù)據(jù)提供者的鏈接。比如,使用Oracle,你可以添加OracleUniProvider:?
uses???...,?OracleUniProvider;
?還有另一個(gè)更加方便的添加提供者方式,你可以通過(guò)控件面板中的【UniDACProviders】控件組頁(yè)面里的對(duì)應(yīng)的提供者控件來(lái)添加,選擇這一頁(yè),然后找到OracleUniProvider控件,拖放到窗體之中,IDE會(huì)自動(dòng)完成向【USES】引用列表段自動(dòng)添加提供者,如果原本沒(méi)有加這個(gè)提供者的話。
?
?? 查詢數(shù)據(jù)??? Selecting Data
TUniQuery 和TUniTable控件可以讓你來(lái)篩選數(shù)據(jù),要實(shí)現(xiàn)篩選,首先,你要放放一個(gè)TUniQuery 控件到窗體中。
要篩選數(shù)據(jù),你必需要先創(chuàng)建一個(gè)連接到數(shù)據(jù)庫(kù)的連接,你須要為大多數(shù)的控件設(shè)置Connection (連接)屬性值,如果在窗口中只有一個(gè)TUniConnection 控件,那么UniDac會(huì)自動(dòng)的給這個(gè)Connection (連接)屬性設(shè)置為這個(gè)TUniConnection 控件。
你得為TuniQuery指定SQL屬性值,雙擊TUniQuery 控件,打開(kāi)TUniQuery 控件主要屬性編輯窗口,在第一頁(yè)【SQL】中,你可以來(lái)為SQL屬性值輸入SQL查詢語(yǔ)句。
?
TUniSQL控件是不須要RecordSet就可以執(zhí)行查詢的。TUniSQL并不是TdataSet的派生類TUniQuery,TUniSQL控件是一個(gè)簡(jiǎn)單的提供最佳性能的控件。它的用法與TuniQuery一樣,你同樣可以在運(yùn)行時(shí)自定義SQL查詢與參數(shù)。
?? 要執(zhí)行查詢,你要SQL屬性分配一個(gè)值(即查詢語(yǔ)句),然后再調(diào)用執(zhí)行方法來(lái)執(zhí)行它。
?
If you connect to the SCOTT sample schema, you can enter:
?如果你連接著SCOTT示例的圖表,你可以輸入:
SELECT * FROM emp來(lái)查詢 EMP 中的表.
?
?
點(diǎn)OK按鈕來(lái)保存改變并關(guān)閉窗口。要想執(zhí)行該查詢,你可以在IDE的屬性窗口中,將Active屬性設(shè)置為True,又或者,你可以在執(zhí)行過(guò)程中通過(guò)Open方法來(lái)執(zhí)行:
UniQuery1: TUniQuery; ... UniQuery1.Connection := UniConnection1; UniQuery1.SQL.Text := 'SELECT * FROM emp'; UniQuery1.Open;先到這兒,其它不沒(méi)完成,還在搞,Word說(shuō)明文檔有十七頁(yè),到這里是第七頁(yè)。
?
總結(jié)
以上是生活随笔為你收集整理的《UniDAC 基础》 【菜头】 翻译 (之一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 常用的大数据技术有哪些?
- 下一篇: 腾讯云轻量级服务器宝塔快速部署网站