一種dll與數(shù)據(jù)庫(kù)同步的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種DLL(Dynamic Link Library,動(dòng)態(tài)鏈 接庫(kù))與數(shù)據(jù)庫(kù)同步的方法及裝置。
【背景技術(shù)】
[0002] 在計(jì)算機(jī)技術(shù)領(lǐng)域中,DLL是一個(gè)包含可由多個(gè)程序,同時(shí)使用的代碼和數(shù)據(jù)的 庫(kù)。當(dāng)調(diào)用DLL組件時(shí),DLL組件可能需要訪問(wèn)數(shù)據(jù)庫(kù),但是,有時(shí)DLL進(jìn)行升級(jí)后,數(shù)據(jù)庫(kù)沒(méi) 有進(jìn)行對(duì)應(yīng)的升級(jí),使得在調(diào)用DLL組件時(shí),DLL組件在訪問(wèn)數(shù)據(jù)庫(kù)時(shí)出現(xiàn)異常。為了解決該 問(wèn)題,現(xiàn)有技術(shù)中,通過(guò)升級(jí)工具,分別手動(dòng)升級(jí)DLL和數(shù)據(jù)庫(kù),以使DLL與數(shù)據(jù)庫(kù)同步。通過(guò) 上述描述可見(jiàn),現(xiàn)有技術(shù)中,將DLL與數(shù)據(jù)庫(kù)同步的方法較復(fù)雜。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明提供了一種DLL與數(shù)據(jù)庫(kù)同步的方法及裝置,能夠更加簡(jiǎn)單地實(shí)現(xiàn)DLL與數(shù) 據(jù)庫(kù)的同步。
[0004] 一方面,本發(fā)明提供了一種DLL與數(shù)據(jù)庫(kù)同步的方法,包括:在DLL中預(yù)制數(shù)據(jù)庫(kù)升 級(jí)文件,還包括:
[0005] S1:確定所述DLL的當(dāng)前版本和數(shù)據(jù)庫(kù)的當(dāng)前版本;
[0006] S2:判斷所述DLL的當(dāng)前版本與所述數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配,如果不匹配,則 執(zhí)行S3;
[0007] S3:從所述DLL中獲取所述數(shù)據(jù)庫(kù)升級(jí)文件,根據(jù)所述數(shù)據(jù)庫(kù)升級(jí)文件對(duì)所述數(shù)據(jù) 庫(kù)進(jìn)行升級(jí)。
[0008] 進(jìn)一步地,所述在DLL中預(yù)制數(shù)據(jù)庫(kù)升級(jí)文件,包括:
[0009] 在所述DLL中預(yù)制所述DLL的每個(gè)版本對(duì)應(yīng)的數(shù)據(jù)庫(kù)升級(jí)文件;
[0010] 所述S3,包括:
[0011] A1:確定與所述數(shù)據(jù)庫(kù)的當(dāng)前版本相匹配的所述DLL的匹配版本;
[0012] A2:確定所述DLL的匹配版本與所述DLL的當(dāng)前版本之間的所述DLL的中間版本;
[0013] A3:從所述DLL中獲取所述DLL的每個(gè)中間版本對(duì)應(yīng)的中間數(shù)據(jù)庫(kù)升級(jí)文件,以及 所述DLL的當(dāng)前版本對(duì)應(yīng)的當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件;
[0014] A4:根據(jù)每個(gè)中間數(shù)據(jù)庫(kù)升級(jí)文件和所述當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件,對(duì)所述數(shù)據(jù)庫(kù)進(jìn) 行升級(jí)。
[0015] 進(jìn)一步地,該方法還包括:預(yù)先設(shè)置版本標(biāo)示表,所述版本標(biāo)示表中存儲(chǔ)有DLL的 版本號(hào)與數(shù)據(jù)庫(kù)的版本號(hào)的匹配關(guān)系;
[0016] 所述在所述DLL中預(yù)制所述DLL的每個(gè)版本對(duì)應(yīng)的數(shù)據(jù)庫(kù)升級(jí)文件,包括:在所述 DLL中預(yù)制所述DLL的每個(gè)版本的版本號(hào)對(duì)應(yīng)的數(shù)據(jù)庫(kù)升級(jí)文件;
[0017] 所述S1,包括:確定所述DLL的當(dāng)前版本號(hào)和數(shù)據(jù)庫(kù)的當(dāng)前版本號(hào);
[0018]所述S2,包括:根據(jù)所述版本標(biāo)示表中的所述匹配關(guān)系,判斷所述DLL的當(dāng)前版本 號(hào)與所述數(shù)據(jù)庫(kù)的當(dāng)前版本號(hào)是否匹配,如果不匹配,則執(zhí)行Al;
[0019] 所述A1,包括:
[0020] 根據(jù)所述版本標(biāo)示表中的所述匹配關(guān)系,確定與所述數(shù)據(jù)庫(kù)的當(dāng)前版本相匹配的 所述DLL的匹配版本的匹配版本號(hào);
[0021] 所述A2,包括:根據(jù)所述版本標(biāo)示表,確定所述DLL的匹配版本號(hào)與所述DLL的當(dāng)前 版本號(hào)之間的所述DLL的中間版本號(hào);
[0022] 所述A3,包括:
[0023]從所述DLL中獲取所述DLL的每個(gè)中間版本號(hào)對(duì)應(yīng)的中間數(shù)據(jù)庫(kù)升級(jí)文件,以及所 述DLL的當(dāng)前版本號(hào)對(duì)應(yīng)的當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件。
[0024]進(jìn)一步地,所述S1,包括:根據(jù)所述DLL的析構(gòu)函數(shù)確定所述DLL的當(dāng)前版本。
[0025]進(jìn)一步地,還包括:將所述數(shù)據(jù)庫(kù)升級(jí)文件作為所述DLL的資源文件。
[0026]進(jìn)一步地,所述數(shù)據(jù)庫(kù)升級(jí)文件包括:數(shù)據(jù)庫(kù)升級(jí)的SQL文件。
[0027] 進(jìn)一步地,所述S2,包括:
[0028]通過(guò)所述DLL的LOAD方法或析構(gòu)函數(shù),判斷所述DLL的當(dāng)前版本與數(shù)據(jù)庫(kù)的當(dāng)前版 本是否匹配。
[0029]另一方面,本發(fā)明提供了一種DLL與數(shù)據(jù)庫(kù)同步的裝置,包括:
[0030]預(yù)制單元,用于在DLL中預(yù)制數(shù)據(jù)庫(kù)升級(jí)文件;
[0031]確定單元,用于確定所述DLL的當(dāng)前版本和數(shù)據(jù)庫(kù)的當(dāng)前版本;
[0032]判斷單元,用于判斷所述DLL的當(dāng)前版本與所述數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配,如果 不匹配,觸發(fā)升級(jí)單元;
[0033]所述升級(jí)單元,用于從所述DLL中獲取所述數(shù)據(jù)庫(kù)升級(jí)文件,根據(jù)所述數(shù)據(jù)庫(kù)升級(jí) 文件對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行升級(jí)。
[0034]進(jìn)一步地,所述預(yù)制單元,用于在所述DLL中預(yù)制所述DLL的每個(gè)版本對(duì)應(yīng)的數(shù)據(jù) 庫(kù)升級(jí)文件;
[0035] 所述升級(jí)單元,包括:
[0036]第一確定子單元,用于確定與所述數(shù)據(jù)庫(kù)的當(dāng)前版本相匹配的所述DLL的匹配版 本;
[0037]第二確定子單元,用于確定所述DLL的匹配版本與所述DLL的當(dāng)前版本之間的所述 DLL的中間版本;
[0038]獲取子單元,用于從所述DLL中獲取所述DLL的每個(gè)中間版本對(duì)應(yīng)的中間數(shù)據(jù)庫(kù)升 級(jí)文件,以及所述DLL的當(dāng)前版本對(duì)應(yīng)的當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件;
[0039]升級(jí)子單元,用于根據(jù)每個(gè)中間數(shù)據(jù)庫(kù)升級(jí)文件和所述當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件,對(duì) 所述數(shù)據(jù)庫(kù)進(jìn)行升級(jí)。
[0040] 進(jìn)一步地,該裝置還包括:
[0041] 設(shè)置單元,用于設(shè)置版本標(biāo)示表,所述版本標(biāo)示表中存儲(chǔ)有DLL的版本號(hào)與數(shù)據(jù)庫(kù) 的版本號(hào)的匹配關(guān)系;
[0042]所述預(yù)制單元,用于在所述DLL中預(yù)制所述DLL的每個(gè)版本的版本號(hào)對(duì)應(yīng)的數(shù)據(jù)庫(kù) 升級(jí)文件;
[0043]所述確定單元,用于確定所述DLL的當(dāng)前版本號(hào)和數(shù)據(jù)庫(kù)的當(dāng)前版本號(hào);
[0044] 所述判斷單元,用于根據(jù)所述版本標(biāo)示表中的所述匹配關(guān)系,判斷所述DLL的當(dāng)前 版本號(hào)與所述數(shù)據(jù)庫(kù)的當(dāng)前版本號(hào)是否匹配,如果不匹配,則觸發(fā)所述第一確定子單元;
[0045] 所述第一確定子單元,用于根據(jù)所述版本標(biāo)示表中的所述匹配關(guān)系,確定與所述 數(shù)據(jù)庫(kù)的當(dāng)前版本相匹配的所述DLL的匹配版本的匹配版本號(hào);
[0046] 所述第二確定子單元,用于根據(jù)所述版本標(biāo)示表,確定所述DLL的匹配版本號(hào)與所 述DLL的當(dāng)前版本號(hào)之間的所述DLL的中間版本號(hào);
[0047]所述獲取子單元,用于從所述DLL中獲取所述DLL的每個(gè)中間版本號(hào)對(duì)應(yīng)的中間數(shù) 據(jù)庫(kù)升級(jí)文件,以及所述DLL的當(dāng)前版本號(hào)對(duì)應(yīng)的當(dāng)前數(shù)據(jù)庫(kù)升級(jí)文件。
[0048]進(jìn)一步地,所述確定單元,用于根據(jù)所述DLL的析構(gòu)函數(shù)確定所述DLL的當(dāng)前版本。
[0049] 進(jìn)一步地,該裝置還包括:轉(zhuǎn)換單元,用于將所述數(shù)據(jù)庫(kù)升級(jí)文件作為所述DLL的 資源文件。
[0050] 進(jìn)一步地,所述數(shù)據(jù)庫(kù)升級(jí)文件包括:數(shù)據(jù)庫(kù)升級(jí)的SQL文件。
[0051 ] 進(jìn)一步地,所述判斷單元,用于通過(guò)所述DLL的LOAD方法或析構(gòu)函數(shù),判斷所述DLL 的當(dāng)前版本與數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配。
[0052]通過(guò)本發(fā)明提供的一種DLL與數(shù)據(jù)庫(kù)同步的方法及裝置,將數(shù)據(jù)庫(kù)升級(jí)文件預(yù)制 在DLL中,通過(guò)判斷DLL的當(dāng)前版本與數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配來(lái)確定是否對(duì)數(shù)據(jù)庫(kù)升 級(jí),當(dāng)不匹配時(shí),從DLL中獲取數(shù)據(jù)庫(kù)升級(jí)文件對(duì)數(shù)據(jù)庫(kù)進(jìn)行升級(jí),使得DLL與數(shù)據(jù)庫(kù)同步, 無(wú)需通過(guò)專(zhuān)門(mén)的工具進(jìn)行升級(jí),也無(wú)需通過(guò)手動(dòng)進(jìn)行升級(jí),更加簡(jiǎn)單地實(shí)現(xiàn)了DLL與數(shù)據(jù)庫(kù) 的同步。
【附圖說(shuō)明】
[0053]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明 的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。
[0054]圖1是本發(fā)明一實(shí)施例提供的一種DLL與數(shù)據(jù)庫(kù)同步的方法的流程圖;
[0055]圖2是本發(fā)明一實(shí)施例提供的另一種DLL與數(shù)據(jù)庫(kù)同步的方法的流程圖;
[0056]圖3是本發(fā)明一實(shí)施例提供的一種DLL與數(shù)據(jù)庫(kù)同步的裝置的示意圖;
[0057]圖4是本發(fā)明一實(shí)施例提供的另一種DLL與數(shù)據(jù)庫(kù)同步的裝置的示意圖。
【具體實(shí)施方式】
[0058]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 [0059]如圖1所示,本發(fā)明實(shí)施例提供了一種DLL與數(shù)據(jù)庫(kù)同步的方法,該方法可以包括 以下步驟:
[0060] S0:在DLL中預(yù)制數(shù)據(jù)庫(kù)升級(jí)文件;
[0061 ] S1:確定所述DLL的當(dāng)前版本和數(shù)據(jù)庫(kù)的當(dāng)前版本;
[0062] S2:判斷所述DLL的當(dāng)前版本與所述數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配,如果不匹配,則 執(zhí)行S3;
[0063] S3:從所述DLL中獲取所述數(shù)據(jù)庫(kù)升級(jí)文件,根據(jù)所述數(shù)據(jù)庫(kù)升級(jí)文件對(duì)所述數(shù)據(jù) 庫(kù)進(jìn)行升級(jí)。
[0064]通過(guò)本發(fā)明實(shí)施例提供了一種DLL與數(shù)據(jù)庫(kù)同步的方法,將數(shù)據(jù)庫(kù)升級(jí)文件預(yù)制 在DLL中,通過(guò)判斷DLL的當(dāng)前版本與數(shù)據(jù)庫(kù)的當(dāng)前版本是否匹配來(lái)確定是否對(duì)數(shù)據(jù)庫(kù)升 級(jí),當(dāng)不匹配時(shí),從DLL中獲取數(shù)據(jù)庫(kù)升級(jí)文件對(duì)數(shù)據(jù)庫(kù)進(jìn)行升級(jí),使得DLL與數(shù)據(jù)庫(kù)同步, 無(wú)需通過(guò)專(zhuān)門(mén)的工具進(jìn)行升級(jí),也無(wú)需通過(guò)手動(dòng)進(jìn)行升級(jí),更加簡(jiǎn)單地實(shí)現(xiàn)了DLL與數(shù)據(jù)庫(kù) 的同步。
[0065]在一種可能的實(shí)現(xiàn)方式中,所述在DLL中預(yù)制數(shù)據(jù)庫(kù)升級(jí)文件,包括:
[0066] 在所述DLL中預(yù)制所述DLL的每個(gè)版本對(duì)應(yīng)的數(shù)據(jù)庫(kù)升級(jí)文件;
[0067] 所述S3,包括:
[0068] A1:確定與所述數(shù)據(jù)庫(kù)的當(dāng)前版本相匹配的所述DLL的匹配版本;
當(dāng)前第1頁(yè)
1 
2 
3