欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法

文檔序號(hào):6481212閱讀:221來(lái)源:國(guó)知局
專利名稱:一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及關(guān)系數(shù)據(jù)庫(kù)領(lǐng)域,特別是涉及 -種應(yīng)用程序釆用無(wú)差別方式訪問(wèn) 多種不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)的方法。
背景技術(shù)
目前,關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)是企業(yè)儲(chǔ)存及數(shù)據(jù)應(yīng)用的主流方式,流行的大型關(guān)
系型數(shù)據(jù)庫(kù)有0racle、 SQL Server、 IBM DB2、 SyBase、 Informix等,而且每種 數(shù)據(jù)庫(kù)一般存在多個(gè)正在使用的并行版本(例如Oracle 9i、 Oracle 10g)。眾多 的關(guān)系數(shù)據(jù)庫(kù)類型都遵循或支持一致的SQL語(yǔ)言標(biāo)準(zhǔn)(如ANSI/ISO的SQL99、 SQL92)。但各類數(shù)據(jù)庫(kù)基于此標(biāo)準(zhǔn)擴(kuò)展了一些非標(biāo)準(zhǔn)化的SQL,各類數(shù)據(jù)庫(kù)的數(shù) 據(jù)類型定義不統(tǒng)一,對(duì)于相同功能的實(shí)現(xiàn),各類數(shù)據(jù)庫(kù)提供的函數(shù)、系統(tǒng)命令等 存在不一致的現(xiàn)象。甚至同一類型數(shù)據(jù)庫(kù)的高、低版本之間在訪問(wèn)上也存在不一 致的現(xiàn)象(例如對(duì)XML的支持)。
對(duì)于面向企業(yè)應(yīng)用的軟件產(chǎn)品, 一般是數(shù)據(jù)密集型系統(tǒng),其數(shù)據(jù)存儲(chǔ)主要是 基于關(guān)系型數(shù)據(jù)庫(kù)。根據(jù)市場(chǎng)、客戶的需求,需要同時(shí)支持多種類型的關(guān)系型數(shù) 據(jù)庫(kù)及版本,而上述數(shù)據(jù)庫(kù)層面訪問(wèn)形式、方法上的差異,為企業(yè)應(yīng)用在數(shù)據(jù)庫(kù)
層面的開(kāi)發(fā)帶來(lái)額外的復(fù)雜性和工作量。
如果能夠屏蔽多種類型數(shù)據(jù)庫(kù)及版本的差異,對(duì)于企業(yè)應(yīng)用在數(shù)據(jù)庫(kù)層面的 開(kāi)發(fā)提供統(tǒng)一的訪問(wèn)形式和方法,將有效的降低開(kāi)發(fā)的復(fù)雜性,提高開(kāi)發(fā)效率和 質(zhì)量,而且當(dāng)需要支持一種新的關(guān)系型數(shù)據(jù)庫(kù)時(shí),對(duì)上層應(yīng)用可以透明。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法。 本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,通過(guò)分析、識(shí)別不同類型、版本關(guān)系型數(shù) 據(jù)庫(kù)的差異,針對(duì)差異進(jìn)行封裝以組件形式向外提供了一致的編程訪問(wèn)接口, 對(duì)SQL語(yǔ)句語(yǔ)法、各種數(shù)據(jù)庫(kù)函數(shù)、命令等,統(tǒng)一調(diào)用標(biāo)準(zhǔn)和書寫格式,屏蔽因 不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)造成的差異;內(nèi)部按照數(shù)據(jù)庫(kù)類型及版本進(jìn)行分別 的針對(duì)性的實(shí)現(xiàn)。在屏蔽數(shù)據(jù)庫(kù)類型、版本差異時(shí),采用編程接口和SQL語(yǔ)法兩
種方法進(jìn)行封裝。兩種方法的混合使用,既可達(dá)到屏蔽數(shù)據(jù)庫(kù)類型、版本差異的 效果,又可以使編程實(shí)現(xiàn)的復(fù)雜度降低
針對(duì)以上的問(wèn)題解決方案,木發(fā)明公開(kāi)的訪問(wèn)不同類型、版本的關(guān)系型數(shù)據(jù)庫(kù)
的統(tǒng)一方法,包括如下歩驟1. 接收獲取"數(shù)據(jù)訪問(wèn)接口"的請(qǐng)求及"數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)"參數(shù);
2. 根據(jù)"數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)"獲取相應(yīng)配置項(xiàng)定義,根據(jù)配置項(xiàng)定義判斷
3. 對(duì)應(yīng)的數(shù)據(jù)庫(kù)類型及版本,創(chuàng)建實(shí)現(xiàn)了特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象, 該對(duì)象實(shí)現(xiàn)了 "數(shù)據(jù)訪問(wèn)接口",將該對(duì)象以"數(shù)據(jù)訪問(wèn)接口"形式返M;
4. "數(shù)據(jù)訪問(wèn)接口"接收與特定數(shù)據(jù)庫(kù)類型、版本無(wú)關(guān)的數(shù)據(jù)訪問(wèn)的方法調(diào) 用請(qǐng)求及方法參數(shù);
5. "數(shù)據(jù)訪問(wèn)接口"根據(jù)特定的方法調(diào)用請(qǐng)求,將與特定數(shù)據(jù)庫(kù)類型、版本 無(wú)關(guān)的請(qǐng)求轉(zhuǎn)換為特定數(shù)據(jù)庫(kù)類型、版本可執(zhí)行的SQL語(yǔ)句。
6. 將轉(zhuǎn)換后的針對(duì)特定數(shù)據(jù)庫(kù)類型、版本的SQL語(yǔ)句發(fā)送至相應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)。
進(jìn)一步,數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程中包括如下后續(xù)執(zhí)行步驟
7. 目標(biāo)數(shù)據(jù)庫(kù)執(zhí)行所述的SQL語(yǔ)句,返回執(zhí)行結(jié)果。
對(duì)于步驟1中所述的"數(shù)據(jù)訪問(wèn)接口",是指封裝數(shù)據(jù)庫(kù)操作的統(tǒng)一編程接口, 用以屏蔽各類數(shù)據(jù)庫(kù)在編程調(diào)用方面的差異,定義了訪問(wèn)數(shù)據(jù)庫(kù)的操作標(biāo)準(zhǔn)。此 接口包含了 一組用于執(zhí)行數(shù)據(jù)庫(kù)操作的屬性和方法。
對(duì)于步驟1中所述的"數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)",是基于XML的配置文件中的配 置小節(jié)的標(biāo)識(shí),可用于唯一標(biāo)記^個(gè)"數(shù)據(jù)訪問(wèn)配置項(xiàng)"。每個(gè)"數(shù)據(jù)訪問(wèn)配 置項(xiàng)"描述的內(nèi)容包括配置項(xiàng)標(biāo)識(shí)、配置項(xiàng)名稱、數(shù)據(jù)庫(kù)類型、類型元數(shù)據(jù)、 數(shù)據(jù)庫(kù)連接信息。其中"類型元數(shù)據(jù)"用于程序動(dòng)態(tài)加載實(shí)現(xiàn)了 "數(shù)據(jù)訪問(wèn)接UI" 的特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象類型并創(chuàng)建對(duì)象的信息;其中"數(shù)據(jù)庫(kù)連接 信息"是用于創(chuàng)建"數(shù)據(jù)庫(kù)會(huì)話"的連接字符串描述。
如在微軟.NET平臺(tái)下應(yīng)用,其中類型兀數(shù)據(jù)是指采用微軟.NET平臺(tái)的反射技 術(shù),動(dòng)態(tài)加載.NET程序集和類型的描述信息,包括類型全稱、程序集名稱、版本、 文化、公鑰標(biāo)記。其中數(shù)據(jù)庫(kù)連接信息是基于微軟公司AD0.NET技術(shù)對(duì)于各種數(shù) 據(jù)庫(kù)連接串的定義,對(duì)于不同類型的數(shù)據(jù)庫(kù)具體的連接串信息不同,般包括數(shù) 據(jù)源、用戶名、密碼以及其他的可配置的連接參數(shù)。詳見(jiàn)msdn中對(duì)于各種數(shù)據(jù)庫(kù) 連接串的具體描述。以上對(duì)于微軟.NET平臺(tái)的實(shí)現(xiàn)介紹,是為了便于理解,所述 的.NET應(yīng)用并不限定本發(fā)明的保護(hù)范圍。
(htt,p://msdn. microsoft, com,/zh-cii/librarv/system. data, idbconnection (en-us, VS. 71). aspx)。
對(duì)于歩驟2中所述的"實(shí)現(xiàn)特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象",該對(duì)象實(shí) 現(xiàn)了 "數(shù)據(jù)訪問(wèn)接口",是針對(duì)特定類型、版本的數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)操作的功能實(shí) 現(xiàn)。 —
對(duì)于步驟3中所述的方法的"請(qǐng)求參數(shù)", 一般包括SQL語(yǔ)句和SQL語(yǔ)句的
5中形參的實(shí)參。
對(duì)于歩驟3、 4中所述的"與特定數(shù)據(jù)庫(kù)類型、版本無(wú)關(guān)",由兩種規(guī)范性定 義來(lái)實(shí)現(xiàn) 一種是方法的規(guī)范性定義, 一種是SQL語(yǔ)句的規(guī)范性定義。對(duì)于方法 的規(guī)范性定義,是將在不同的數(shù)據(jù)庫(kù)類型中實(shí)現(xiàn)差異較大的SQL語(yǔ)法以及函數(shù)等 采用一致的編程接口的形式進(jìn)行封裝,屏蔽其差異,在執(zhí)行時(shí)由步驟2所述的"實(shí) 現(xiàn)特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象"進(jìn)行具體的轉(zhuǎn)換,形成特定類型、版本數(shù) 據(jù)庫(kù)可執(zhí)行的SQL;對(duì)于SQL語(yǔ)句的規(guī)范性定義,主要是針對(duì)不同數(shù)據(jù)庫(kù)中SQL語(yǔ)
法的一些局部差異,采用約定好的規(guī)則字符串形式進(jìn)行封裝,屏蔽其差異,在執(zhí) 行時(shí)由步驟2所述的"實(shí)現(xiàn)特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象"采用基于"自定 義表達(dá)式"解析、替換的方法將規(guī)范化的SQL語(yǔ)句替換為具體數(shù)據(jù)庫(kù)上可執(zhí)行的 SQL語(yǔ)句。
"自定義表達(dá)式",是一種自定義的可識(shí)別、可解析的表達(dá)式形式,其表達(dá) 的語(yǔ)法為UV:]I[F:] 〈expression〉),表達(dá)式總是以"{"開(kāi)始,以"}"結(jié)束。 "V:"表示表達(dá)式為變量表達(dá)式,"F:"表示后表達(dá)式為函數(shù)表達(dá)式,默認(rèn)為變 量表達(dá)式 。
<expression>::={variant|〈function>} ,〈function〉= {function—name(argument[,... n])}。
本發(fā)明的方法與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)
在屏蔽數(shù)據(jù)庫(kù)類型、版本差異時(shí),采用編程接口和SQL語(yǔ)法兩種方法進(jìn)行封 裝。采用編程接口的方式,主要是針對(duì)SQL語(yǔ)法差異較大的情況,這種情況很難 從SQL語(yǔ)法上進(jìn)行統(tǒng)一,但采用編程接口就很容易形成一致的標(biāo)準(zhǔn);而SQL語(yǔ)法 方式,主要是針對(duì)SQL語(yǔ)句中局部的差異進(jìn)行封裝,這時(shí)SQL語(yǔ)句主體結(jié)構(gòu)是一 致的,僅僅在一些操作符、SQL函數(shù)上有差異,很容易用規(guī)則字符串來(lái)形成統(tǒng)一的 標(biāo)準(zhǔn)。兩種方法的混合使用,既可達(dá)到屏蔽數(shù)據(jù)庫(kù)類型、版本差異的效果,又可 以使編程實(shí)現(xiàn)的復(fù)雜度降低,而且相對(duì)于采用完全私有SQL語(yǔ)法定義并進(jìn)行SQL 語(yǔ)法解析翻譯的方式相比,更加輕量級(jí),在執(zhí)行效率上有明顯的優(yōu)勢(shì)。


圖1是本發(fā)明實(shí)施例一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的統(tǒng)一方法的流程圖;
具體實(shí)施例方式
參照說(shuō)明書附圖對(duì)本發(fā)明的作以下詳細(xì)地說(shuō)明。
本發(fā)明的一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法,該方法是以下將通過(guò)對(duì)本 發(fā)明的優(yōu)選實(shí)施例的詳細(xì)描述,使本發(fā)明的上述目標(biāo)、特征和優(yōu)點(diǎn)更加清晰、易 懂。為了更容易理解本方法的實(shí)施方式,以兩個(gè)示例SQL為例進(jìn)行詳細(xì)的說(shuō)明。
不例1:
SQL Server: SELECT Substring(Code, 1, 3) FROM T WHERE ID = @plOracle: SELECT SubStr (Code, 1, 3) FROM T WHERE ID 二 pl
以上是在SQL開(kāi)發(fā)中,從表T中獲取指定ID為特定變量值行中的Code字段
的前三個(gè)字符,SQL Server和Oracle數(shù)據(jù)庫(kù)的SQL差異如上所示。 采用本發(fā)明所示的統(tǒng)一封裝如下
SQL: SELECT {F:SubStr(Code, 1, 3)} FROM T WHERE ID = {0} 上述SQL在執(zhí)行時(shí),將根據(jù)配置項(xiàng)匹配為特定的數(shù)據(jù)庫(kù)執(zhí)行對(duì)象,由該執(zhí)行 對(duì)象對(duì)符合替換的文本進(jìn)行正則表達(dá)式查找,根據(jù)花括號(hào)中的內(nèi)容進(jìn)行匹配和轉(zhuǎn) 換,并替換原SQL文本中的花括號(hào)部分,最終得到在目標(biāo)數(shù)據(jù)庫(kù)上可執(zhí)行的SQL 語(yǔ)句。
示例2:
SQL Server: ALTER TABLE T ALTER COLUMN C0L1 VARCHAR(IO) Oracle: ALTER TABLE T MODIFY COL1 VARCHAR(IO)
以上是在開(kāi)發(fā)中,修改表T中的列C0L1的SQL, SQL Server和Oracle數(shù)據(jù)庫(kù) 的SQL差異如上所示。
對(duì)于差異較大的SQL語(yǔ)句,不采用SQL語(yǔ)句兼容的方式,而系統(tǒng)中提供編程 接口的方式進(jìn)行封裝
C#: void AlterColumn (string tblName, string colName, string property);
定義的編程接口中,提供一個(gè)AlterColumn方法,用于修改數(shù)據(jù)庫(kù)的字段屬 性,參數(shù)有三個(gè),分別是表名、字段名、和字段屬性。對(duì)于本例的程序調(diào)用源代 碼如下所示
C#: AlterColumn(〃T〃, 〃C0L1〃, 〃VARCHAR(10)〃);
以上的示例一與示例二分別說(shuō)明了采用SQL規(guī)范和編程接口規(guī)范兩種形式定 義數(shù)據(jù)庫(kù)訪問(wèn)標(biāo)準(zhǔn)的方法,以屏蔽不同類型、版本數(shù)據(jù)庫(kù)的訪問(wèn)差異性,對(duì)外提 供統(tǒng)一的訪問(wèn)形式。對(duì)于相同語(yǔ)義的SQL語(yǔ)句,如果在各種類型數(shù)據(jù)庫(kù)定義上的 差異僅是局部語(yǔ)法表達(dá)的差別的,則采用SQL規(guī)范化的形式,使用自定義表達(dá)式 統(tǒng)一訪問(wèn)標(biāo)準(zhǔn);對(duì)于相同語(yǔ)義的SQL語(yǔ)句,如果在各種類型數(shù)據(jù)庫(kù)定義上的差異 較大,采用SQL規(guī)范化的形式難以統(tǒng)一的,則釆用編程接口規(guī)范化的形式。
本發(fā)明描述的方法,其目標(biāo)是支持應(yīng)用程序以無(wú)差別方式訪問(wèn)多種類型的關(guān) 系型數(shù)據(jù)庫(kù),避免程序中因數(shù)據(jù)庫(kù)類型的差異而產(chǎn)生的程序分支,降低同時(shí)支持
多種類型數(shù)據(jù)庫(kù)的開(kāi)發(fā)繁瑣程度,提高數(shù)據(jù)庫(kù)開(kāi)發(fā)的效率;當(dāng)應(yīng)用程序需在不同 類型數(shù)據(jù)庫(kù)間進(jìn)行遷移時(shí),可保證應(yīng)用程序不修改程序源代碼。
優(yōu)選的,本發(fā)明描述的方法,釆用SQL語(yǔ)法規(guī)范和編程接口相結(jié)合的混合方 式形成統(tǒng)一標(biāo)準(zhǔn),是一種輕量級(jí)的封裝形式,不需要進(jìn)行SQL的語(yǔ)法、詞法分析 過(guò)程,避免了在這方面的資源(CPU、內(nèi)存等)消耗以及執(zhí)行效率的損失。
權(quán)利要求
1.一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法,其特征在于,通過(guò)分析、識(shí)別不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)的差異,針對(duì)差異進(jìn)行封裝以組件形式向外提供了一致的編程訪問(wèn)接口,對(duì)SQL語(yǔ)句語(yǔ)法、各種數(shù)據(jù)庫(kù)函數(shù)、命令,統(tǒng)一調(diào)用標(biāo)準(zhǔn)和書寫格式,屏蔽因不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)造成的差異;內(nèi)部按照數(shù)據(jù)庫(kù)類型及版本進(jìn)行分別的針對(duì)性的實(shí)現(xiàn),在屏蔽數(shù)據(jù)庫(kù)類型、版本差異時(shí),采用編程接口和SQL語(yǔ)法兩種方法進(jìn)行封裝,兩種方法混合使用,既達(dá)到屏蔽數(shù)據(jù)庫(kù)類型、版本差異的效果,又使編程實(shí)現(xiàn)的復(fù)雜度降低,具體訪問(wèn)步驟包括1)接收獲取“數(shù)據(jù)訪問(wèn)接口”的請(qǐng)求,請(qǐng)求的參數(shù)為“數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)”;2)根據(jù)“數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)”,獲取配置項(xiàng)以確定對(duì)應(yīng)的數(shù)據(jù)庫(kù)類型及版本,根據(jù)配置項(xiàng)創(chuàng)建實(shí)現(xiàn)了特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象,將該對(duì)象以“數(shù)據(jù)訪問(wèn)接口”形式返回;3)“數(shù)據(jù)訪問(wèn)接口”接收與特定數(shù)據(jù)庫(kù)類型、版本無(wú)關(guān)的數(shù)據(jù)訪問(wèn)的方法調(diào)用請(qǐng)求及方法參數(shù);4)“數(shù)據(jù)訪問(wèn)接口”根據(jù)特定的方法調(diào)用請(qǐng)求,將與特定數(shù)據(jù)庫(kù)類型、版本無(wú)關(guān)的請(qǐng)求轉(zhuǎn)換為特定數(shù)據(jù)庫(kù)類型、版本可執(zhí)行的SQL語(yǔ)句;5)將轉(zhuǎn)換后的針對(duì)特定數(shù)據(jù)庫(kù)類型、版本的SQL語(yǔ)句發(fā)送至相應(yīng)的目標(biāo)數(shù)據(jù)庫(kù);6)目標(biāo)數(shù)據(jù)庫(kù)執(zhí)行所述的SQL語(yǔ)句,返回執(zhí)行結(jié)果。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,"數(shù)據(jù)訪問(wèn)接口"封裝數(shù)據(jù)庫(kù) 操作的統(tǒng)一編程接口,用以屏蔽各類數(shù)據(jù)庫(kù)在編程調(diào)用方面的差異,定義了訪問(wèn) 數(shù)據(jù)庫(kù)的操作標(biāo)準(zhǔn)。此接口包含了一組用于執(zhí)行數(shù)據(jù)庫(kù)操作的屬性和方法。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,"數(shù)據(jù)訪問(wèn)配置項(xiàng)標(biāo)識(shí)",是 基于XML的配置文件中的配置小節(jié)的標(biāo)識(shí),可用于唯一標(biāo)記一個(gè)"數(shù)據(jù)訪問(wèn)配置 項(xiàng)",每一個(gè)"數(shù)據(jù)訪問(wèn)配置項(xiàng)"描述的內(nèi)容包括配置項(xiàng)標(biāo)識(shí)、配置項(xiàng)名稱、 數(shù)據(jù)庫(kù)類型、類型元數(shù)據(jù)、數(shù)據(jù)庫(kù)連接信息,其中"類型元數(shù)據(jù)"用于程序動(dòng)態(tài) 加載實(shí)現(xiàn)了 "數(shù)據(jù)訪問(wèn)接口"的特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象類型并創(chuàng)建對(duì) 象的信息;其屮"數(shù)據(jù)庫(kù)連接信息"是用于創(chuàng)建"數(shù)據(jù)庫(kù)會(huì)話"的連接字符串描 述。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,"與特定數(shù)據(jù)庫(kù)類型、版本無(wú) 關(guān)",由兩種規(guī)范性定義來(lái)實(shí)現(xiàn) 一種是方法的規(guī)范性走義, 一種是SQL語(yǔ)句的 規(guī)范性定義,對(duì)于方法的規(guī)范性定義,是將在不同的數(shù)據(jù)庫(kù)類型中實(shí)現(xiàn)差異較大 的SQL語(yǔ)法以及函數(shù)等采用一致的編程接口的形式進(jìn)行封裝,屏蔽其差異,在執(zhí)行時(shí),由"實(shí)現(xiàn)特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象"進(jìn)行具體的轉(zhuǎn)換,形成特定類型、版本數(shù)據(jù)庫(kù)可執(zhí)行的SQL;對(duì)于SQL語(yǔ)句的規(guī)范性定義,是針對(duì)不同數(shù)據(jù)庫(kù) 中SQL語(yǔ)法的一些局部差異,采用約定好的規(guī)則字符串形式進(jìn)行封裝,屏蔽其差 異,在執(zhí)行時(shí)由"實(shí)現(xiàn)特定類型、版本數(shù)據(jù)庫(kù)訪問(wèn)的對(duì)象"釆用基于"自定義表 達(dá)式"解析、替換的方法將規(guī)范化的SQL語(yǔ)句替換為具體數(shù)據(jù)庫(kù)上可執(zhí)行的SQL 語(yǔ)句。
5、根據(jù)權(quán)利要求4所述的方法,其特征在于,"自定義表達(dá)式",是一種自 定義的可識(shí)別、可解析的表達(dá)式形式,其表達(dá)的語(yǔ)法為UV:]I[F:] 〈expression〉h表達(dá)式總是以"r,開(kāi)始,以"}"結(jié)束。"V:"表示表達(dá)式為變 量表達(dá)式,"F:"表示后表達(dá)式為函數(shù)表達(dá)式,默認(rèn)為變量表達(dá)式。 〈expression〉 = {variant|〈function》, <function〉 ={function—name(argument[,...n])}。
全文摘要
本發(fā)明提供一種訪問(wèn)不同類型關(guān)系型數(shù)據(jù)庫(kù)的方法,該方法是通過(guò)分析、識(shí)別不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)的差異,針對(duì)差異進(jìn)行封裝以組件形式向外提供了一致的編程訪問(wèn)接口,對(duì)SQL語(yǔ)句語(yǔ)法、各種數(shù)據(jù)庫(kù)函數(shù)、命令,統(tǒng)一調(diào)用標(biāo)準(zhǔn)和書寫格式,屏蔽因不同類型、版本關(guān)系型數(shù)據(jù)庫(kù)造成的差異;內(nèi)部按照數(shù)據(jù)庫(kù)類型及版本進(jìn)行分別的針對(duì)性的實(shí)現(xiàn),在屏蔽數(shù)據(jù)庫(kù)類型、版本差異時(shí),采用編程接口和SQL語(yǔ)法兩種方法進(jìn)行封裝。兩種方法的混合使用,既可達(dá)到屏蔽數(shù)據(jù)庫(kù)類型、版本差異的效果,又可以使編程實(shí)現(xiàn)的復(fù)雜度較低,而且相對(duì)于采用完全私有SQL語(yǔ)法定義并進(jìn)行SQL語(yǔ)法解析翻譯的方式相比,更加輕量級(jí),在執(zhí)行效率上有明顯的優(yōu)勢(shì)。
文檔編號(hào)G06F17/30GK101645074SQ20091001862
公開(kāi)日2010年2月10日 申請(qǐng)日期2009年9月7日 優(yōu)先權(quán)日2009年9月7日
發(fā)明者孫立新, 趙啟杰, 鄭偉波 申請(qǐng)人:浪潮集團(tuán)山東通用軟件有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乐业县| 奈曼旗| 剑阁县| 乡城县| 永兴县| 高清| 秦安县| 大丰市| 永州市| 浦北县| 张家界市| 平湖市| 兰溪市| 禹城市| 中宁县| 富顺县| 汉源县| 长垣县| 宜宾县| 汉寿县| 香港 | 汪清县| 黄冈市| 茂名市| 桦南县| 乐昌市| 商洛市| 锡林浩特市| 博爱县| 梅河口市| 大化| 礼泉县| 浠水县| 迁西县| 于田县| 新余市| 博客| 合肥市| 灵川县| 汶上县| 九寨沟县|