謝玉鳳,董文浩
(四川省冶金地質(zhì)勘查局測繪工程大隊,四川 成都 610212)
DB包是輕型的數(shù)據(jù)庫sqlite3的文件格式,因此其本質(zhì)是數(shù)據(jù)庫文件。表1所示為標準的數(shù)據(jù)庫表段結(jié)構(gòu)。從表1中可以很直觀地發(fā)現(xiàn)CCJZ、BCJZ和TYSDJZ表中字段相同或者類似。例如【CCJZ】表中的TBYBH與【BCJZ】表中的TBYBH就是字段完全相同的,【CCJZ】表中的TBYBH和【BCJZ】表中的TBYBH與【TYSDJZ】表中的JCBH就是屬于類似的字段。由于DB包數(shù)據(jù)庫中三期DB【FJ】表差異不大,本文不再詳細說明。
表1 三期DB包主要表段數(shù)據(jù)結(jié)構(gòu)
經(jīng)過筆者的研究與實踐,發(fā)現(xiàn)【CCJZ】表、【BCJZ】表和TYSDJZ】表中存在如表2所示的對照結(jié)構(gòu)。原理如此,但要達到最終目的,就要使用第三方工具中的通用的SQL語言去完成相應(yīng)操作。
表2 CCJZ表、BCJZ表和TYSDJZ表中主要字段對照表
SQLite Expert Professional是一款可視化SQLite數(shù)據(jù)庫管理工具,SQLite Expert允許用戶在SQLite 服務(wù)器上執(zhí)行創(chuàng)建、編輯、復(fù)制、提取等操作。它包括一個可視化查詢生成器,一個SQL編輯與語法突出和代碼自動完成,強大的table和view 設(shè)計與導(dǎo)入導(dǎo)出功能。其中執(zhí)行SQL查詢就是本文所講述的實現(xiàn)的最重要的過程,即SQLite Expert允許用戶輕松執(zhí)行SQL腳本并在網(wǎng)格中或文本中顯示結(jié)果,也可以通過附加數(shù)據(jù)庫的方式直接寫入查詢到的結(jié)果到目標數(shù)據(jù)庫中。本文使用該軟件中執(zhí)行SQL查詢的功能完成數(shù)據(jù)庫之間的表格合并或者拆分步驟。
三調(diào)DB包拆分或者合并的應(yīng)用過程如圖1所示。該技術(shù)主要包含初次舉證(CCJZ)DB包、補充舉證(BCJZ)DB包和統(tǒng)一時點舉證(TYSDJZ)DB包,使用SQLite Expert軟件分步把CCJZ和BCJZ的舉證資料添加到TYSDJZ的DB包中和把這三者的數(shù)據(jù)量很大的DB包按照鄉(xiāng)鎮(zhèn)或者其他約束條件拆分成其他獨立的小DB包。其中合并和拆分使用的技術(shù)原理一樣。大致應(yīng)用過程如下:①準備好標準結(jié)構(gòu)的結(jié)果DB包(拆分或者合并);②附加需要要合并或者要拆分的DB數(shù)據(jù)(BCJZ、CCJZ或者TYSDJZ);③分別選擇CCJZ、FJ和BCJZ、FJ以及TYSDJZ、FJ(拆分);④執(zhí)行SQL代碼合并或者拆分;⑤分離數(shù)據(jù)庫。
圖1 三調(diào)DB包拆分或者合并的應(yīng)用過程
本文主要通過 insert into SQL查詢語句,將查詢到滿足相關(guān)字段的記錄插入到目標數(shù)據(jù)庫中。三期DB包中主要涉及到的就只有兩個表需要進行代碼操作,CCJZ、BCJZ和TYSDJZ進行代碼操作以及FJ表需要代碼操作。其中代碼實例如下。
1)TYSDJZ表。
insert into TYSDJZ(JCBH,XZQDM,XMC,JCMJ,XZB,YZB,BGDL,BZ,JZRY,TBFW) SELECT BYBH,XZQDM,XMC,TBMJ,XZB,YZB,WYRDDL,BZ,JZRY,TBFW FROM需要提取數(shù)據(jù)庫.BCJZ 或者需要提取數(shù)據(jù)庫.CCJZ
2)FJ表。
insert into FJ(F_ID,TCBM,TBYBH,XZQDM,JKBSM,FJMC,LYSB,FJLX,FJ,TakeOffLon,TakeOffLat,TakeOffRelHeight,TakeOffAltitude,PSSJ,PSJD,PSGD,PSFYJ,PSAltitude,PSRY,Longitude,Latitude,XZB,YZB,metaRecord,JYM) select F_ID,TCBM,TBYBH,XZQDM,JKBSM,FJMC,LYSB,FJLX,FJ,TakeOffLon,TakeOffLat,TakeOffRelHeight,TakeOffAltitude,PSSJ,PSJD,PSGD,PSFYJ,PSAltitude,PSRY,Longitude,Latitude,XZB,YZB,metaRecord,JYM from需要提取數(shù)據(jù)庫.FJ
在實際測繪項目生產(chǎn)過程中,需要用發(fā)現(xiàn)的眼光在身邊熟悉的軟件中找到項目面臨的難題的解決方案。筆者剛開始沒有使用SQL查詢語句,使用純手工的方式去復(fù)制粘貼記錄,發(fā)現(xiàn)DB包數(shù)據(jù)量大了后,不僅會操作很慢易卡機,而且操作多條記錄的準確性也難以保障。筆者本來準備花個一兩天時間使用其他編程語言去開發(fā)一個小工具完成相關(guān)操作,但是如果沒有相應(yīng)的代碼積累,開發(fā)小工具的難度很大。因此,筆者使用SQLite Expert軟件中用簡便的SQL查詢語句代碼完成復(fù)雜的操作,研究了SQL查詢語句和對應(yīng)表的字段結(jié)構(gòu)后進行實踐,發(fā)現(xiàn)完全可以使用SQLite Expert軟件解決項目面臨的問題,而不用花大量的時間去做編碼工作,此方法可供類似情況參考。
[ID:010226]