一、ODBC
ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用 SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。
二、OLE DB
1.? Object Linking and Embedding,對象連接與嵌入,簡稱OLE技術(shù)。OLE不僅是桌面應(yīng)用程序集成,而且還定義和實(shí)現(xiàn)了一種允許應(yīng)用程序作為軟件“對象”(數(shù)據(jù)集合和操作數(shù)據(jù)的函數(shù))彼此進(jìn)行“連接”的機(jī)制,這種連接機(jī)制和協(xié)議稱為部件對象模型(Component Object Model),簡稱COM。OLE可以用來創(chuàng)建復(fù)合文檔,復(fù)合文檔包含了創(chuàng)建于不同源應(yīng)用程序,有著不同類型的數(shù)據(jù),因此它可以把文字、聲音、圖像、表格等組合在一起。
對象鏈接和嵌入。在客戶應(yīng)用程序間傳輸和共享信息的一組綜合標(biāo)準(zhǔn)。允許創(chuàng)建帶有指向應(yīng)用程序的鏈接的混合文檔以使用戶修改時(shí)不必在應(yīng)用程序間切換的協(xié)議。 OLE基于組件對象模型(COM) 并允許開發(fā)可在多個(gè)應(yīng)用程序間互操作的可復(fù)用即插即用對象。該協(xié)議已廣泛用于商業(yè)上,在商業(yè)中電子表格、字處理程序、財(cái)務(wù)軟件包和其他應(yīng)用程序可以通過客戶/服務(wù)器體系共享和鏈接單獨(dú)的信息
2.? OLE DB(OLEDB)是微軟的戰(zhàn)略性的通向不同的數(shù)據(jù)源的低級應(yīng)用程序接口。OLE DB不僅包括微軟資助的標(biāo)準(zhǔn)數(shù)據(jù)接口開放數(shù)據(jù)庫連通性(ODBC)的結(jié)構(gòu)化問題語言(SQL)能力,還具有面向其他非SQL數(shù)據(jù)類型的通路。作為微軟的組件對象模型(COM)的一種設(shè)計(jì),OLE DB是一組讀寫數(shù)據(jù)的方法(在過去可能被稱為渠道)。OLD DB中的對象主要包括數(shù)據(jù)源對象、階段對象、命令對象和行組對象。使用OLE DB的應(yīng)用程序會用到如下的請求序列: 初始化OLE 連接到數(shù)據(jù)源發(fā)出命令 處理結(jié)果 釋放數(shù)據(jù)源對象并停止初始化OLE
OLE DB標(biāo)準(zhǔn)中定義的新概念----OLE DB將傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)劃分為多個(gè)邏輯組件,這些組件之間相對獨(dú)立又相互通信。這種組件模型中的各個(gè)部分被冠以不同的名稱:數(shù)據(jù)提供者(Data Provider)。提供數(shù)據(jù)存儲的軟件組件,小到普通的文本文件、大到主機(jī)上的復(fù)雜數(shù)據(jù)庫,或者電子郵件存儲,都是數(shù)據(jù)提供者的例子。有的文檔把這些軟件組件的開發(fā)商也稱為數(shù)據(jù)提供者。
我們要開啟如Access 數(shù)據(jù)庫中的數(shù)據(jù),必須用ADO.NET 透過OLE DB 來開啟。ADO.NET 利用OLE DB 來取得數(shù)據(jù),這是因?yàn)镺LE DB 了解如何和許多種數(shù)據(jù)源作溝通,所以對OLE DB有相當(dāng)程度的了解是很重要的。
三、ADO
微軟公司的ADO (ActiveX Data Objects) 是一個(gè)用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLE DB的一個(gè)中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實(shí)現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接。訪問數(shù)據(jù)庫的時(shí)候,關(guān)于SQL的知識不是必要的,但是特定數(shù)據(jù)庫支持的SQL命令仍可以通過ADO中的命令對象來執(zhí)行。
ADO被設(shè)計(jì)來繼承微軟早期的數(shù)據(jù)訪問對象層,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。ADO在1996年冬被發(fā)布。
ADO是VB6推薦操作數(shù)據(jù)庫的方式。
四、區(qū)別和關(guān)系
ODBC最先出來,是用來連接oracle、sql server、access等數(shù)據(jù)庫的一種接口標(biāo)準(zhǔn)(后來隨著各廠商的擴(kuò)充,也就都不標(biāo)準(zhǔn)了),各數(shù)據(jù)庫提供實(shí)現(xiàn)ODBC的“驅(qū)動程序”。ODBC的本意是“ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫”,其實(shí)都是扯淡,因?yàn)楦鲾?shù)據(jù)庫對標(biāo)準(zhǔn)SQL都做了大量的擴(kuò)充,除非你只使用標(biāo)準(zhǔn)的SQL,不然“統(tǒng)一”根本談不上。
OLE DB是微軟“發(fā)明”的,用來淘汰ODBC的,OLE DB不光可以連接各種數(shù)據(jù)庫,還可以連接exchange、活動目錄、甚至操作系統(tǒng)文件目錄等各種數(shù)據(jù)庫源(也需要分別使用不同的“驅(qū)動程序”)
ADO也是微軟的,是用來淘汰早起微軟的RDO、DAO的(ADO可以做RDO、DAO能做的所有事),ADO在上層,通過下面的ODBC或者OLE DB來訪問數(shù)據(jù)源(注意不是數(shù)據(jù)庫,因?yàn)榭稍L問范圍包括活動目錄等各種數(shù)據(jù))。不過微軟目前的ODBC實(shí)際是通過OLE DB訪問數(shù)據(jù)源的。
層次關(guān)系:
應(yīng)用程序 -> ADO -> ODBC -> OLE DB -> 數(shù)據(jù)源
或者
應(yīng)用程序 -> ADO -> OLE DB -> 數(shù)據(jù)源
其實(shí)這些都東西可以理解為是和驅(qū)動差不多。
五、OLE DB vs ODBC
1. OLE DB 與 ODBC 都是一個(gè)數(shù)據(jù)庫連接的公共接口,它們屏蔽了各種數(shù)據(jù)庫的連接協(xié)議,使編程人員遵從 OLD DB / ODBC接口,就可以訪問各種數(shù)據(jù)源了。
2. ODBC 比 OLE DB 使用更加廣泛,因?yàn)?ODBC 出現(xiàn)的要早。
3. OLE DB 可以使用 ODBC 的數(shù)據(jù)驅(qū)動程序。也就是 OLE DB 可以通過 ODBC 訪問數(shù)據(jù) ODBC數(shù)據(jù)源。在這個(gè)過程中 ODBC 充當(dāng)了中轉(zhuǎn)的作用,它的運(yùn)行機(jī)制如下。首先,應(yīng)用程序使用 OLE DB 提供程序,但是這個(gè)提供程序里面包含了與ODBC轉(zhuǎn)換的內(nèi)容。這樣,從ODBC源讀取的數(shù)據(jù)經(jīng)過轉(zhuǎn)換程序,轉(zhuǎn)換為OLE DB可以訪問的數(shù)據(jù)源。這樣就實(shí)現(xiàn)了 OLE DB 訪問 ODBC 的數(shù)據(jù)源。
當(dāng)然 OLE DB 也可以不通過 ODBC 訪問,前提是該數(shù)據(jù)源要有OLE DB接口。這種OLE DB 提供程稱為本機(jī)OLE DB提供程序。
4. 在 Windows 操作系統(tǒng)中,有兩個(gè)工具分別用于創(chuàng)建 ODBC / OLE DB 數(shù)據(jù)源
ODBC 數(shù)據(jù)源:在 "控制面板"中可以找到ODBC 數(shù)據(jù)源工具
OLE DB 數(shù)據(jù)源:這個(gè)工具通常不能打開, 要通過程序來調(diào)才能調(diào)出來。它的名字叫"數(shù)據(jù)鏈接屬性"。
5. SQL Server 自帶了 SQL Server / Oracle 的 OLEDB驅(qū)動程序。
6. OLE DB 比 ODBC 速度要快。
posted @
2007-08-26 22:55 Jcat 閱讀(1534) |
評論 (0) |
編輯 收藏
學(xué)一個(gè)優(yōu)秀的技術(shù),泡一個(gè)優(yōu)秀的論壇,一步步走來。
Java: cjsdn, blogjava
?? |
Oracle: cnoug
?? |
BusinessObjects: BOB
posted @
2007-08-14 13:53 Jcat 閱讀(266) |
評論 (0) |
編輯 收藏
答辯終于結(jié)束了,結(jié)果是敷衍的(就給10分鐘講PPT,根本講不完,水過去了),過程是勞人的(太痛苦了,形式比內(nèi)容重要,材料比論文重要)。
隨著答辯的結(jié)束,我也要告別Java了(至少近期沒有做Java的打算了),正式轉(zhuǎn)入BI業(yè)。
posted @
2007-06-30 14:10 Jcat 閱讀(370) |
評論 (4) |
編輯 收藏
錢多事少離家近,位高權(quán)重責(zé)任輕;
睡覺睡到自然醒,數(shù)錢數(shù)到手抽筋。
到時(shí)候我就租兩套1500的房子,門對門,
一套自己住,一套白給民工住
我租筒子樓的一層,四間都是我的,公用的廁所廚房成我自己的。
最近租房,北京的房子實(shí)在太貴了,發(fā)泄一下。
posted @
2007-06-22 00:19 Jcat 閱讀(316) |
評論 (0) |
編輯 收藏
?????????????

posted @
2007-05-30 00:44 Jcat 閱讀(372) |
評論 (3) |
編輯 收藏
---String---
equals in Stringpublic?boolean?equals(Object?anObject)?{
????if?(this?==?anObject)?{
????????return?true;
????}
????if?(anObject?instanceof?String)?{
????????String?anotherString?=?(String)anObject;
????????int?n?=?count;
????????if?(n?==?anotherString.count)?{
????????char?v1[]?=?value;
????????char?v2[]?=?anotherString.value;
????????int?i?=?offset;
????????int?j?=?anotherString.offset;
????????while?(n--?!=?0)?{
????????????if?(v1[i++]?!=?v2[j++])
????????????return?false;
????????}
????????return?true;
????????}
????}
????return?false;
????}
equals in Object???public?boolean?equals(Object?obj)?{
????return?(this?==?obj);
????}
????System.out.println(new?String("aa").equals(new?String("aa")));?//true
????System.out.println(new?String("aa")?==?new?String("aa"));??????//false
????System.out.println("aa".equals("aa"));?????????????????????????//true
????System.out.println("aa"?==?"aa");??????????????????????????????//true
posted @
2007-05-23 22:35 Jcat 閱讀(331) |
評論 (0) |
編輯 收藏
JAVA_HOME
ANT_HOME
CATALINA_HOME
GROOVY_HOME
GRAILS_HOME
classpath=
.
(%JAVA_HOME%\jre\lib is not required)Path=
%JAVA_HOME%\bin;
%ANT_HOME%\bin;%CATALINA_HOME%\bin;%GROOVY_HOME%\bin;
%GRAILS_HOME%\bin
Note: if you add %GROOVY_HOME%\embeddable\groovy-all-1.0.jar to classpath Grails can't work correctly.
posted @
2007-05-23 21:39 Jcat 閱讀(366) |
評論 (0) |
編輯 收藏
??? 你說我是貓,或許我是貓。貓咪很寂寥,在漆黑的夜里,它需要一束溫暖的火苗。不止飛蛾會撲火,你可知道,為了驅(qū)逐黑暗的冰冷,寧愿選擇烈火的燃燒。我怕火,但更怕冷,我怕冷,但更怕溫暖突然抽離。上天許我,如不能一世的溫暖,就一生的冰冷吧!絕望的一只貓。
???
你說我是貓,或許我是貓。貓咪喜歡甜膩,在安詳?shù)奶炜障拢肺稖剀凹?xì)膩。不是奢侈的甘美,而是回憶的苦澀,你可知道,一種心情一種淚,嬌艷的芙蓉愁苦的
心。不要說貓咪挑食,只是它厭食,厭惡百般蕭索的味道,不要說貓咪偏食,只是它眷戀,它執(zhí)著那沾染鮮血卻又難以割舍的尖刀。貓咪說,血,甜的。
???
你說我是貓,或許我是貓。貓咪喜歡撒嬌,在愛的環(huán)繞下,翻騰著猶疑的身軀。不是天性,而為確定,只為確定珍愛的長度。不是本能而是希冀,絕望地期望延伸被愛的感覺。不要說貓咪膩人,它只是悲哀地期望地而又不能確定著愛。
???
你說我是貓,或許我是貓。貓咪很驕傲,冷然的雙眸審視世間的慘淡,輕盈的身形飄過歡喜哀愁。在風(fēng)的角落,沒有注視的目光,貓咪扯落冷酷的面具,流淌著積攢
的淚水。不愛就不愛,誰在渴望你的關(guān)愛。心底,一個(gè)聲音,“不愛我了,沒關(guān)系。悄悄地走掉罷,別來辭行,驕傲不是堅(jiān)強(qiáng)。”
???
??? 你說我是貓,或許我是貓......
posted @
2007-05-23 11:47 Jcat 閱讀(287) |
評論 (0) |
編輯 收藏
什么時(shí)候,你有整整一天沒有上網(wǎng)了?是昨天、上周、還是上個(gè)月?
我經(jīng)常無意識地走向計(jì)算機(jī),打開計(jì)算機(jī),然后掛在網(wǎng)絡(luò)上好幾個(gè)小時(shí),這一切舉動不需經(jīng)過大腦思考,自動得就像夢游一樣。這不是我一個(gè)人的夢游,這是集體的夢游,我們都已經(jīng)如同蒼蠅被困在網(wǎng)中。
就連性愛都可以在網(wǎng)絡(luò)上解決...有了網(wǎng)絡(luò),干嘛這么麻煩?在無數(shù)的色情網(wǎng)站和聊天室,你可以輕易地找到和你一樣饑渴的對象,透過網(wǎng)絡(luò)攝影機(jī),你隨時(shí)可以在計(jì)算機(jī)前面寬衣解帶。久而久之,你發(fā)現(xiàn),你的性幻想對象居然是計(jì)算機(jī)屏幕。沒了屏幕框,一切變得索然無味,你連性欲都沒了。
網(wǎng)絡(luò)成癮癥:
? 強(qiáng)迫性、非自愿地使用網(wǎng)絡(luò)
? 對人際交往失去興趣(個(gè)人補(bǔ)充:這里的人際交往指的是人與人的交往,而不是msn與msn的交往)
? 被在線及時(shí)活動占據(jù)大部分生活的時(shí)間
? 不能自拔
? 而最容易上癮的是教育程度有限的中年婦女
?
(1、2我都占了,如果網(wǎng)速好3也很有可能)
以上摘抄自蔡學(xué)鏞先生的同名文章我的目標(biāo):
? 每周少上一天網(wǎng)(這一天完全不上網(wǎng))
? 每月少開一天計(jì)算機(jī)(這一天完全不開計(jì)算機(jī))
? 多運(yùn)動(右手食指除外)
大貓如是說:
??? Money, house, material, ... are all zeros,
??? Life, health is the 1 in front of the zeros.
???? 00000000000000000 is noththing!
??? 100000000000000000 becomes something!!!
posted @
2007-05-15 23:38 Jcat 閱讀(397) |
評論 (1) |
編輯 收藏
Q
國內(nèi)IT界兩個(gè)怪現(xiàn)象:
1.年紀(jì)大了(其實(shí)還不到30),不能再編程了。
2.女孩子不適合搞技術(shù)。
為什么會這樣?國外恐怕不是這樣的吧。是不是國人太浮躁了?
A
1.如果這行業(yè)很賺錢,就是到60歲也會做下去。
2.如果這行業(yè)很賺錢,就是人妖也會適合。
總之,經(jīng)濟(jì)規(guī)律。 與國別無關(guān)。
一段有趣的對話,摘錄于此
posted @
2007-05-13 22:23 Jcat 閱讀(278) |
評論 (0) |
編輯 收藏