服務(wù)熱線
0755-26825352
1資料查詢問題的產(chǎn)生當(dāng)模具設(shè)計(jì)人員接到設(shè)計(jì)任務(wù)之后,首先要對(duì)零件進(jìn)行工藝性設(shè)計(jì),然后才是結(jié)構(gòu)性設(shè)計(jì)。在進(jìn)行工藝性設(shè)計(jì)和結(jié)構(gòu)性設(shè)計(jì)的過程中,設(shè)計(jì)人員不可避免地要查閱很多的設(shè)計(jì)資料,才能確定大量的工藝參數(shù)。如何方便、快速、準(zhǔn)確地查詢到所需要的設(shè)計(jì)資料,是設(shè)計(jì)人員希望解決的一個(gè)問題。在模具協(xié)同設(shè)計(jì)中,這個(gè)問題更為突出。最原始的查詢方法主要由設(shè)計(jì)人員手工完成。面對(duì)一本本厚厚的手冊(cè),就連一些經(jīng)驗(yàn)豐富的設(shè)計(jì)人員也感到不堪重負(fù)。手工查詢需要經(jīng)常性地翻閱手冊(cè),但是需要查閱的手冊(cè)不―定時(shí)時(shí)都在設(shè)計(jì)人員伸手可及的范圍內(nèi),而且通過手工查閱手冊(cè),不但效率低,還容易造成數(shù)據(jù)出錯(cuò)。 有人曾經(jīng)提出:寫一個(gè)應(yīng)用程序,然后在每個(gè)設(shè)計(jì)人員的電腦終端安裝,該應(yīng)用程序調(diào)用安裝在本地機(jī)器上的數(shù)據(jù)庫。這首先涉及到一個(gè)軟件版權(quán)的問題,其次對(duì)客戶機(jī)的硬件配置提出了更高的要求。更為重要的是,數(shù)據(jù)庫的更新需要在每個(gè)客戶端分別進(jìn)行,在模具協(xié)同設(shè)計(jì)中,不具有可操作性?! 榱藦氐捉鉀Q上述問題,本文提出利用分布式Web數(shù)據(jù)庫系統(tǒng)SQLServer2000作為后臺(tái)管理系統(tǒng),并利用界面友好的InternetExplorerBrowser作為人機(jī)交互的界面,開發(fā)一套簡(jiǎn)潔明了、高效快捷、方便易用的“模具設(shè)計(jì)資料查詢系統(tǒng)”。 2模具設(shè)計(jì)資料查詢系統(tǒng)的總體設(shè)計(jì)進(jìn)行模具設(shè)計(jì),是一個(gè)十分復(fù)雜的過程。要建好模具設(shè)計(jì)資料查詢系統(tǒng),使用戶能夠方便快捷地查詢到所需要的模具設(shè)計(jì)資料,對(duì)模具設(shè)計(jì)資料進(jìn)行明確而詳細(xì)的分類整理是很重要的。 本文將各種設(shè)計(jì)資料手冊(cè)分成沖壓模具、塑料模具和標(biāo)準(zhǔn)件等幾個(gè)大類,在各個(gè)大類里面,分別根據(jù)手冊(cè)建成數(shù)據(jù)庫,通過人機(jī)交互的方式進(jìn)行查詢。整個(gè)查詢系統(tǒng)的結(jié)構(gòu)如圖1所示。人機(jī)交互界面模塊采用目前流行的Windows風(fēng)格的圖形用戶界面(GUl)――― IE瀏覽器。整個(gè)系統(tǒng)基于Web,采用B/S三層結(jié)構(gòu),用戶首先找到需要的設(shè)計(jì)資料的類別,然后輸入查詢條件,就能通過應(yīng)用程序服務(wù)器連接到后臺(tái)數(shù)據(jù)庫,從中檢索出所需要的信息并將結(jié)果以HTML的形式反饋給用戶[1]。在這個(gè)系統(tǒng)中,資料查詢管理模塊放在應(yīng)用程序服務(wù)器上,主要由ASP程序組成,負(fù)責(zé)處理用戶輸入的各種查詢信息。它是用戶和模具設(shè)計(jì)資料庫的接口,實(shí)現(xiàn)用戶數(shù)據(jù)和資料庫數(shù)據(jù)的傳遞,提供數(shù)據(jù)檢索、出錯(cuò)處理等功能。 沖壓模具設(shè)計(jì)資料數(shù)據(jù)庫包含了沖壓工藝設(shè)計(jì)中所需的各種工藝信息。它由沖裁數(shù)據(jù)庫、彎曲數(shù)據(jù)庫、拉延數(shù)據(jù)庫、成形數(shù)據(jù)庫、材料和熱處理數(shù)據(jù)庫、沖模零部件及其技術(shù)要求數(shù)據(jù)庫、壓力機(jī)數(shù)據(jù)庫等幾個(gè)部分組成。塑料模具設(shè)計(jì)資料數(shù)據(jù)庫包含了目前最流行的注射成形塑料模設(shè)計(jì)中所需要的各種工藝信息?! ∷伤芰喜牧蠋?、塑料成型機(jī)資料庫、塑料成型工藝參數(shù)庫、注射模資料庫、壓縮模資料庫、傳遞模資料庫、擠出模資料庫、吹塑模資料庫等幾個(gè)部分組成。 模具標(biāo)準(zhǔn)件數(shù)據(jù)庫包含了在所有模具設(shè)計(jì)過程中都可能用到的一些標(biāo)準(zhǔn)零件,如彈性零件(彈簧、聚胺酯等)、連接件(螺釘、螺母、銷釘?shù)龋?、模架等等?! ?數(shù)據(jù)庫系統(tǒng)的選擇從理論上講,所有數(shù)據(jù)庫系統(tǒng)都可以作為Web數(shù)據(jù)庫系統(tǒng)的后臺(tái)支持系統(tǒng),但實(shí)際上每種數(shù)據(jù)庫都有其自身的特點(diǎn)和適用環(huán)境。普通數(shù)據(jù)庫系統(tǒng)如Access、Foxpro等沒有系統(tǒng)安全管理和數(shù)據(jù)完整性保護(hù),不太適合大型Web系統(tǒng)的開發(fā)。Web數(shù)據(jù)庫應(yīng)用中常用的數(shù)據(jù)庫管理系統(tǒng)是Oracle、DB2和SQLServer?! racle是由Oracle公司推出的基于SQL的對(duì)象―――關(guān)系型分布式數(shù)據(jù)庫管理系統(tǒng)。該分布式數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)了分布式系統(tǒng)所要求的分布透明、網(wǎng)絡(luò)透明及操作透明。其客戶服務(wù)器結(jié)構(gòu)提供四種常用特性:有效利用計(jì)算機(jī)、可擴(kuò)充性、遠(yuǎn)程數(shù)據(jù)庫存取和靈活性。但是該數(shù)據(jù)庫管理系統(tǒng)對(duì)工作站的硬件配置要求和對(duì)管理人員的能力要求均較高?! B2數(shù)據(jù)庫管理系統(tǒng)是內(nèi)嵌于IBMAS/400服務(wù)器上的,直接由硬件支持。DB2支持標(biāo)準(zhǔn)SQL語言,具有與異種數(shù)據(jù)庫相連的Gateway,因此速度快,可靠性好。但是這種數(shù)據(jù)庫依賴于IBMAS/400硬件平臺(tái),價(jià)格較貴。SQLServer是Microsoft公司推出的一種高性能的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在Windows平臺(tái)上使用最方便。使用SQLServer可以開發(fā)不同類型的應(yīng)用程序,其中包括以下各部分?! 。?)分布式數(shù)據(jù)庫應(yīng)用程序分布式事務(wù)協(xié)調(diào)器(DTC)通過兩段式提交協(xié)議可以在多SQLServer服務(wù)器之間分發(fā)事務(wù),利用存儲(chǔ)轉(zhuǎn)發(fā)服務(wù)和DB-LibraryAPI也可以設(shè)計(jì)分布式數(shù)據(jù)庫應(yīng)用程序?! 。?)數(shù)據(jù)倉庫數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)提供了一套基于OLEDB的COM對(duì)象,可以實(shí)現(xiàn)不同的OLEDB數(shù)據(jù)源之間的數(shù)據(jù)轉(zhuǎn)換操作?! 。?)Internet和Intranet應(yīng)用增強(qiáng)了的SQL ServerWebAssistant和TCP/IP網(wǎng)絡(luò)功能,可以將SQL Server數(shù)據(jù)庫中的數(shù)據(jù)發(fā)送到HTML頁面中,通過代理服務(wù)器與Internet建立安全的連接。 ?。?)管理工具SQIServer是基于SQL分布式管理對(duì)象(DMO)模型的,使用該模型編寫的管理工具能自動(dòng)創(chuàng)建和管理SQLServer中的數(shù)據(jù)庫對(duì)象?! 「爬ㄆ饋恚琒QLServer系統(tǒng)有如下優(yōu)點(diǎn),這些優(yōu)點(diǎn)使得我們?cè)诓樵兿到y(tǒng)的開發(fā)中選用SQL作為數(shù)據(jù)庫管理系統(tǒng)?! 。?)管理方便EnterpriseManager是一個(gè)基于圖形用戶界面的集成管理工具,利用它可以管理SQLServer服務(wù)器和數(shù)據(jù)庫,并能實(shí)現(xiàn)數(shù)據(jù)備份和恢復(fù)的功能?! 。?)并發(fā)控制能力強(qiáng)SQLServer是利用動(dòng)態(tài)鎖定功能防止用戶在查詢和更新并發(fā)操作時(shí)相互間發(fā)生沖突,而且動(dòng)態(tài)鎖定過程是由SQLServer自動(dòng)處理的?! 。?)編程接口豐富SQLServer提供了T― SQL、DB― Library和嵌入式SQL等開發(fā)工具,并支持ODBC和OLEDB規(guī)范?! 。?)伸縮性強(qiáng)能運(yùn)行于Win95/98、Windows NTServer或者Workstation操作系統(tǒng)上,并實(shí)現(xiàn)動(dòng)態(tài)管理,可滿足從桌面應(yīng)用到分布式應(yīng)用的各個(gè)層次需求?! 。?)充分利用BackOffice資源SQLServer能利用BackOffice提供的服務(wù)或功能,包括安全管理、時(shí)間日志、內(nèi)存管理等來增強(qiáng)自身數(shù)據(jù)庫系統(tǒng)的功能。 ?。?)多線程體系結(jié)構(gòu)SQLServer支持多線程操作,當(dāng)多用戶并發(fā)訪問的時(shí)候,系統(tǒng)產(chǎn)生的額外負(fù)擔(dān)較小,在用戶數(shù)量增加的時(shí)候,運(yùn)行速度也不會(huì)明顯下降?! 。?)對(duì)Web技術(shù)的支持使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上?! ∮捎谠摬樵兿到y(tǒng)是基于Internet的,采用的是B/S的體系結(jié)構(gòu),在Windows操作系統(tǒng)中運(yùn)行,有多個(gè)客戶端,而且對(duì)數(shù)據(jù)庫的穩(wěn)定性和安全性有較高的要求,因此在查詢系統(tǒng)的開發(fā)中選用SQLServer2000作為后臺(tái)數(shù)據(jù)庫管理系統(tǒng)?! ?數(shù)據(jù)庫設(shè)計(jì)模具設(shè)計(jì)資料數(shù)據(jù)庫設(shè)計(jì)的基本思想是:根據(jù)總體設(shè)計(jì),對(duì)模具設(shè)計(jì)資料進(jìn)行分類;然后對(duì)手冊(cè)中的各種表格進(jìn)行抽象,變成SQLServer2000數(shù)據(jù)庫中的表,把各種規(guī)則也抽象成數(shù)據(jù)庫表的形式存儲(chǔ)起來以供查詢和檢索。由于模具設(shè)計(jì)的資料涉及到的手冊(cè)非常多,數(shù)據(jù)量大,要想能夠方便快捷地查詢,還必須建立好的索引方法,采用目錄樹結(jié)構(gòu)的方式來進(jìn)行管理。所以,數(shù)據(jù)庫設(shè)計(jì)包括工藝數(shù)據(jù)表的設(shè)計(jì)和目錄數(shù)據(jù)表的設(shè)計(jì)。 4.1工藝數(shù)據(jù)表的設(shè)計(jì)用一個(gè)例子來說明把工藝數(shù)據(jù)從手冊(cè)中的表抽象成數(shù)據(jù)庫中的表的過程。選用的例子是機(jī)械(機(jī)械制造業(yè)等待行業(yè)回暖)工業(yè)出版杜《沖壓手冊(cè)》第二版中第39頁的表2―表6沖裁件孔中心距離的極限偏差表。通過抽象,在SQLServer2000數(shù)據(jù)庫中,用兩張表來表達(dá)手冊(cè)中的這一個(gè)表?! ?.2目錄數(shù)據(jù)表的設(shè)計(jì)通過五級(jí)目錄樹來對(duì)模具設(shè)計(jì)資料庫進(jìn)行管理。經(jīng)過抽象,五級(jí)目錄樹變成了的形式。字段定義手冊(cè)中的數(shù)據(jù)表編號(hào)?! ?查詢的設(shè)計(jì)與程序?qū)崿F(xiàn)模具設(shè)計(jì)的資料數(shù)據(jù)庫設(shè)計(jì)好后,實(shí)現(xiàn)動(dòng)態(tài)、交互式的查詢功能就是該子系統(tǒng)的重點(diǎn)了。這實(shí)際上是一個(gè)Web應(yīng)用程序與數(shù)據(jù)庫集成的問題。筆者使用的開發(fā)工具是ASP(ActiveServerPages)?! SP是IIS提供的一種動(dòng)態(tài)發(fā)布網(wǎng)頁技術(shù),它能將HTML頁面、腳本命令、ASP內(nèi)建對(duì)象以及ActiveX組件完美結(jié)合起來,創(chuàng)建動(dòng)態(tài)而高效的Web應(yīng)用程序。在ASP訪問數(shù)據(jù)庫的過程中,正是通過一個(gè)ActiveX組件即ADO來完成的。通過ADO,ASP可以方便地實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。 5.1ADO工作原理ADO是一個(gè)運(yùn)行于服務(wù)器端的ActiveX組件,所提供的功能是進(jìn)行數(shù)據(jù)庫訪問。運(yùn)用ADO,就可以編寫簡(jiǎn)潔而又有擴(kuò)展性的腳本,與ODBC數(shù)據(jù)源或者與OLEDB數(shù)據(jù)源進(jìn)行連接,并可以對(duì)傳統(tǒng)數(shù)據(jù)庫(如Access、SQLServer)和其他數(shù)據(jù)資源(如普通文本文件、Excel、MicorsoftIndexServer等)所提供的各種數(shù)據(jù)進(jìn)行讀取和寫入操作?! DO組件由七個(gè)對(duì)象和四個(gè)集合構(gòu)成其對(duì)象模型分為四級(jí)如所示。只包含了六個(gè)對(duì)象和三個(gè)集合,另外還有Properties集合和Property對(duì)象,他們是Connection對(duì)象、Command對(duì)象、Recordset對(duì)象和Field對(duì)象所共同具有的?! ≡贏DO組件中,最主要的三個(gè)對(duì)象是Connection對(duì)象、Command對(duì)象、和Recordset對(duì)象。通過這三個(gè)對(duì)象,在ASP腳本中就可以與數(shù)據(jù)庫建立連接,查詢、插入、修改和刪除數(shù)據(jù)庫中的數(shù)據(jù)。 5.2與數(shù)據(jù)庫建立連接在進(jìn)行數(shù)據(jù)庫訪問的時(shí)候,必須首先建立與數(shù)據(jù)庫的連接。在ASP頁面中使用ADO組件訪問數(shù)據(jù)庫的時(shí)候,有兩種訪問方式:ODBC和OLEDB。 ODBC和OLEDB都是Microsoft公司提供的訪問數(shù)據(jù)庫的編程接口。ODBC是數(shù)據(jù)庫服務(wù)器的一個(gè)標(biāo)準(zhǔn)協(xié)議,它為訪問數(shù)據(jù)庫的應(yīng)用程序提供了一種通用的語言。在安裝完ODBC驅(qū)動(dòng)程序之后,就可以在應(yīng)用程序中連接數(shù)據(jù)庫并訪問其中的數(shù)據(jù)。不過ODBC主要是針對(duì)訪問關(guān)系型數(shù)據(jù)庫而設(shè)計(jì)的,而作為新一代的Microsoft數(shù)據(jù)訪問規(guī)范,OLEDB允許訪問更多的數(shù)據(jù)源,除了一般的關(guān)系型數(shù)據(jù)庫之外,還包括非關(guān)系型數(shù)據(jù)庫、電子郵件系統(tǒng)、電子表格、文本文件等數(shù)據(jù)源?! LEDB能夠處理任何類型的數(shù)據(jù),而不考慮數(shù)據(jù)的存儲(chǔ)方法和格式。OLEDB與ODBC相比,還有一個(gè)明顯的優(yōu)越性―――基本上是OLE技術(shù)在數(shù)據(jù)庫中的運(yùn)用,是用C++語言開發(fā)的,給ODBC功能提供了一個(gè)標(biāo)準(zhǔn)的COM接口,所以O(shè)LEDB具有面向?qū)ο蟮奶匦?,這樣在OLE DB基礎(chǔ)上的ADO具有很靈活的工作方式?! ∈褂肁DO訪問數(shù)據(jù)資源的方式可以用來說明。從圖中可以看出,ADO訪問數(shù)據(jù)庫時(shí),并不是直接訪問數(shù)據(jù)資源,而是通過OLEDB作為中間件進(jìn)行訪問。OLEDB驅(qū)動(dòng)程序可以直接訪問數(shù)據(jù)資源,也可以通過ODBC間接訪問關(guān)系型數(shù)據(jù)庫?! ”静樵兿到y(tǒng)是建立在MicrosoftSQLServer數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)之上的,因此可以通過OLEDB和ODBC兩種方式進(jìn)行訪問。本文使用的是通過ODBC的無DSN連接。這種方法的好處是:Web站點(diǎn)從一臺(tái)電腦移植到另外一臺(tái)電腦的時(shí)候,不需要更改任何程序,也不需要另外建立ODBC驅(qū)動(dòng)連接?! ?.3程序?qū)崿F(xiàn)建立好數(shù)據(jù)庫的連接之后,就要用SQL語句來對(duì)數(shù)據(jù)庫進(jìn)行查詢操作了。數(shù)據(jù)庫連接和查詢程序框圖如所示。在上例中,查詢過程要分步進(jìn)行,先判斷用戶的輸入是不是在可查的范圍內(nèi),然后根據(jù)查出孔距尺寸和材料厚度各自的返回值,最后根據(jù)表3以前一步的返回值作為條件再查極限偏差。查詢過程程序圖如圖6所示?! ?小結(jié)本文主要針對(duì)模具協(xié)同設(shè)計(jì)過程中需要反復(fù)進(jìn)行設(shè)計(jì)資料查詢的問題,建立了一套基于Web的模具設(shè)計(jì)資料查詢系統(tǒng),并論述了SQLServer數(shù)據(jù)庫管理系統(tǒng)和ADO查詢機(jī)制。