版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)控銑削加工工藝參數(shù)庫的設計</p><p><b> 2012年6月</b></p><p> 學 院機電工程</p><p> 專 業(yè)機械設計制造及其自動化</p><p> 班 級</p><p> 學 號</p><p&g
2、t; 姓 名</p><p> 指導教師</p><p> 負責教師</p><p><b> 摘 要</b></p><p> 本文以Visual C++6.0作為開發(fā)工具,以Access建立銑削加工工藝參數(shù)數(shù)據(jù)庫,應用MFC進行ODBC編程,實現(xiàn)對機床參數(shù)信息的增加、修改、刪除以及查詢操作。所編寫的應用程
3、序具有檢索迅速、查找方便、可靠性高、存儲量大、保密性好、成本低等優(yōu)點。憑借這些優(yōu)點能夠直觀的了解機床的參數(shù),方便對機床的維修和護理,極大地提高機床參數(shù)信息管理的效率,實現(xiàn)了參數(shù)科學化、正規(guī)化的管理。</p><p> 關鍵詞:ODBC ;MFC;Access</p><p> The Design of Technological Parameters Database which P
4、rocessed by Numerically-Controlled Milling</p><p><b> Abstract</b></p><p> This system that manages the technology parameters of milling process has been developed with Visual C++6
5、.0.Through the database access technology based on ODBC with MFC,the parameters can be increased,modified,removed and queried.This system virtues of searching quickly,lookup conveniently,high reliability,large storage,co
6、nfidentiality, long longevity and low cost. These advantages to bars intuitive understanding of machine tools of parameters,easy to machine maintenance and nursing,greatly imp</p><p> Keywords: ODBC MFC A
7、ccess</p><p><b> 目錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1 課題由來1</p><p> 1.2 數(shù)據(jù)庫管理系統(tǒng)國內外發(fā)展綜述2</p><p> 1.2.1 國外發(fā)展狀況2</p&
8、gt;<p> 1.2.2 我國發(fā)展狀況2</p><p> 1.3 目前存在的問題及發(fā)展方向3</p><p> 1.4 研究內容8</p><p> 1.5 經濟運營分析9</p><p> 2 整體方案設計10</p><p> 2.1 系統(tǒng)框圖10</p>
9、<p> 2.2 數(shù)據(jù)庫設計12</p><p> 2.2.1 建立銑削數(shù)據(jù)庫的目的12</p><p> 2.2.2 銑削數(shù)據(jù)庫加工工藝參數(shù)的來源及內容12</p><p> 2.3 銑削加工工藝參數(shù)分析13</p><p> 2.4 基于VC的數(shù)據(jù)庫訪問設計13</p><p> 2
10、.4.1 ODBC訪問技術的優(yōu)點13</p><p> 2.4.2 ODBC(Open Database Connectivity)簡介14</p><p> 2.4.3 VC++中使用ODBC的方法15</p><p> 3 程序設計17</p><p> 3.1 程序設計總流程圖17</p><p&
11、gt; 3.2 Access數(shù)據(jù)庫的建立17</p><p> 3.3 ODBC數(shù)據(jù)源的建立19</p><p> 3.3.1 ODBC管理器20</p><p> 3.3.2 開放數(shù)據(jù)庫連接20</p><p> 3.4 數(shù)據(jù)源的連接21</p><p> 3.4.1 ODBC應用程序接口21
12、</p><p> 3.4.2 ODBC應用編程22</p><p> 3.5 SQL語句的直接執(zhí)行25</p><p> 3.5.1 使用SQLGetDiagRec和SQLGetDiagField25</p><p> 3.5.2 應用ODBC API建立應用程序26</p><p&
13、gt; 3.5.3 分配ODBC環(huán)境26</p><p> 3.5.4 分配連接句柄26</p><p> 3.5.5 連接數(shù)據(jù)源27</p><p> 3.5.6 SQL語句編程32</p><p> 4 結果與分析35</p><p><b&g
14、t; 5 結論43</b></p><p> 6 參考文獻44</p><p><b> 致 謝46</b></p><p> 附 錄 MFC ODBC程序代碼47</p><p><b> 1 緒 論</b></p><p><
15、;b> 1.1 課題由來</b></p><p> 本設計是利用計算機來開發(fā)一種管理軟件。主要應用對象便是銑削加工工藝參數(shù)庫的建立(數(shù)控機床參數(shù)庫的建立)。Visual C++為數(shù)據(jù)庫開發(fā)提供了多種多樣的技術支持。用戶可供選擇的數(shù)據(jù)庫訪問技術包括ODBC、MFC ODBC、DAO、OLE DB、ADO等。 </p><p> 銑削數(shù)據(jù)是衡量銑削技術水平高低的一個基本
16、量值。采用合理的銑削數(shù)據(jù),可以充分發(fā)揮銑削機床和銑削刀具的功能,尤其對于各種自動化加工機床、數(shù)控機床和加工中心來說,自動化加工的輔助時間已大大縮短,這樣,在有效的加工時間內充分利用合理的或優(yōu)化的銑削數(shù)據(jù),對提高整個加工系統(tǒng)的經濟效益更為重要。銑削數(shù)據(jù)傳統(tǒng)上通常依據(jù)銑削手冊、生產實踐資料或銑削試驗來確定。銑削手冊上的數(shù)據(jù)來源最廣泛,條理性一般較強,但針對性和準確性較差,通過查閱銑削手冊來獲得數(shù)據(jù),在信息量和方法的先進性上都非常不足;生產實
17、踐資料對具體應用企業(yè)而言,針對性較強,但數(shù)據(jù)太分散,缺乏規(guī)律性;通過銑削試驗獲得的數(shù)據(jù),最有針對性,但受試驗條件等多方面的限制,數(shù)據(jù)量極為有限,而 </p><p> 且試驗條件與生產現(xiàn)場條件往往差別較大。</p><p> 隨著科學技術的發(fā)展,計算機在銑削加工中的應用日益增多,國內外已利用計算機來籌建銑削數(shù)據(jù)庫,將銑削加工中需用的數(shù)據(jù)和信息,按一定規(guī)律儲存在計算機中,可以根
18、據(jù)需要調用、打印,也可以隨時進行修改和增刪。銑削數(shù)據(jù)庫的內容應包括銑削用量推薦值,根據(jù)加工條件,在不同的銑削深度-進給量組合下,推薦不同壽命刀具下的銑削速度,并計算功率消耗。除此之外,還應列入工件與刀具材料的牌號、成分、性能與機床的型號、性能參數(shù)等。由于計算機儲存數(shù)據(jù)高度密集,占空間小,便于修改、增刪,所以,凡是銑削加工所需的數(shù)據(jù),甚至 </p><p> 銑削實驗的曲線圖形
19、及回歸公式(如Taylor公式、銑削力經驗公式等)、數(shù)學模型等均可儲存在數(shù)據(jù)庫中。</p><p> 1.2 數(shù)據(jù)庫管理系統(tǒng)國內外發(fā)展綜述</p><p> 自第一個切削數(shù)據(jù)庫誕生以來,世界各工業(yè)發(fā)達國家大都開發(fā)了各自的金屬切削數(shù)據(jù)庫。據(jù)不完全統(tǒng)計,迄今已有德國、美國、瑞典、英國、日本、挪威、比利時和匈牙利等12個國家建立了30多個金屬切削數(shù)據(jù)庫,提供各種形式的信息服務。對世界各國切削
20、數(shù)據(jù)庫所作的調查情況(見表)表明,目前切削數(shù)據(jù)庫中的數(shù)據(jù)來源于實驗室、生產車間及文獻,主要應用于車削、切削、銑削及磨削。</p><p> 1.2.1 國外發(fā)展狀況</p><p> 在已建立的切削數(shù)據(jù)庫中,當屬CUTDATA與INFOS最為著名。1964年,美國金屬切削聯(lián)合研究公司和美國空軍材料實驗所聯(lián)合建立了美國空軍加工性數(shù)據(jù)中心(AFMDC)。該中心開發(fā)的CUTDATA切削數(shù)據(jù)
21、庫,是世界上第一個金屬切削數(shù)據(jù)庫,該數(shù)據(jù)庫包含大量的切削試驗數(shù)據(jù),并且經過多次更新,比較全面、可靠,可以為3750種以上的工件材料,22種加工方式及12種刀具材料提供切削參數(shù)。德國1971年建立了切削數(shù)據(jù)情報中心 (INFOS)。該中心存儲的材料可加工性信息達二百多萬個單數(shù)據(jù),成為世界上存儲信息最多、軟件系統(tǒng)最完整和數(shù)據(jù)服務能力最強的切削數(shù)據(jù)庫之一。</p><p> 1.2.2 我國發(fā)展狀況</p>
22、;<p> 我國建立的切削數(shù)據(jù)庫是從20世紀80年代開始的。目前,國內有成都工具研究所、南京航空航天大學、北京理工大學、西北工業(yè)大學、上海工業(yè)大學、山東大學、哈爾濱理工大學和天津大學等單位,在切削數(shù)據(jù)庫方面開展了一些研究工作。</p><p> 成都工具研究所在1987年建成了我國第一個試驗性切削數(shù)據(jù)庫TRN10,又于1988年從當時的聯(lián)邦德國引進了INFOS切削數(shù)據(jù)庫軟件 (在國內運行后,被稱
23、為ATRN90),并加以改進,向國內推出其修訂版的ATRN90E。隨后又繼續(xù)開發(fā)并推出了切削數(shù)據(jù)庫軟件CTRN90V1.0。 CTRN90與原版INFOS比較,它改進、擴展了系統(tǒng),增強了功能,增添了中國數(shù)據(jù),應用了“可加工性材料組——切削材料副”的概念,實現(xiàn)了軟件的漢語化和英語化。它在漢化的VAX/CVMS操作系統(tǒng)環(huán)境中運行,用戶界面為人切對話方式,采用多層菜單驅動。軟件本身規(guī)模約為8MB,帶有11個專用子程序庫。采用了國內的切床、刀具
24、和試驗數(shù)據(jù),同時也包含了部分國外數(shù)據(jù)。1991年推出了CTRN90V2.0,1992年又推出了CTRN90V3.0。在上述基礎上,1998年開發(fā)了在Windows環(huán)境下運行的數(shù)據(jù)庫軟件。</p><p> 南京航空航天大學是研究金屬切削數(shù)據(jù)庫比較早的高校,早在1986年,南航的張幼楨教授就對建立金屬切削數(shù)據(jù)庫的若干問題進行了探討,許洪昌等對金屬切削數(shù)據(jù)庫又進行了更深一步的研究,近年來,著重研究切削數(shù)據(jù)的優(yōu)化和專
25、家系統(tǒng)技術在切削數(shù)據(jù)庫中的應用。1988年,開發(fā)了一個專用切削數(shù)據(jù)庫軟件系統(tǒng)NAIMDS,1991年進一步開發(fā)了KBMDBS切削數(shù)據(jù)庫系統(tǒng)。</p><p> 北京理工大學建立了一個主要面向硬質合金刀具材料和涂層刀具生產廠家的切削數(shù)據(jù)庫系統(tǒng)。根據(jù)切削數(shù)據(jù)的不同來源和特點,將其分為三大類:即濃縮型切削數(shù)據(jù)、離散型切削數(shù)據(jù)和資料型切削數(shù)據(jù)。北京理工大學對切削試驗曲線在切削數(shù)據(jù)庫中的存儲與繪制進行了研究,并在此基礎上
26、實現(xiàn)了刀具磨損、刀具壽命、斷屑和切削力等六種試驗曲線的存儲和繪制,使金屬切削數(shù)據(jù)庫在功能上不僅能夠存儲數(shù)據(jù),而且也能處理曲線。這對于豐富切削數(shù)據(jù)庫的內容,擴大切削數(shù)據(jù)庫的范圍,以及工程數(shù)據(jù)庫的建立都有積極的意義。</p><p> 除了各國均建立自己的切削數(shù)據(jù)庫外,國際學術機構也開展了切削數(shù)據(jù)庫的研究開發(fā)工作,如于1995年成立的國際生產工程學會(CIRP)切削加工模型研究小組,從事切削加工預報模型的研究,為機
27、械制造業(yè)提供切削參數(shù),自1998年開始邀請世界著名研究機構加盟其切削數(shù)據(jù)庫的研究與建立。</p><p> 1.3 目前存在的問題及發(fā)展方向</p><p> 建立切削數(shù)據(jù)庫的根本目的是為生產實際服務,但已建立的切削數(shù)據(jù)庫及工藝數(shù)據(jù)庫,付諸實用的還不多,分析其原因是多方面的:企業(yè)對切削數(shù)據(jù)庫的重視不夠;數(shù)據(jù)的信息量還不夠多,且尚未解決與CAPP、CAM等系統(tǒng)的聯(lián)接問題;關鍵的問題是現(xiàn)有
28、切削數(shù)據(jù)庫本身還存在一些問題,首先是切削數(shù)據(jù)的可靠性,由于數(shù)據(jù)的來源較多,有來自工廠的數(shù)據(jù)、實驗室的數(shù)據(jù),還有來自各種手冊上的數(shù)據(jù),這些數(shù)據(jù)應經過嚴格的分析、處理和評估,否則,其應用效果必然不佳。同時,還有計算機軟件的問題,軟件功能的強弱對數(shù)據(jù)庫中數(shù)據(jù)作用的發(fā)揮至關重要。為了進一步促進切削數(shù)據(jù)庫的應用,切削數(shù)據(jù)庫正在向集成化、智能化、實用化和網絡化方向發(fā)展。</p><p><b> ?。?)集成化&l
29、t;/b></p><p> 企業(yè)為了方便和準確地查詢本企業(yè)的制造資源,需要建立制造資源數(shù)據(jù)庫,它一般包括工藝基本定義和分類、機床設備、刀具、工藝裝備、毛坯種類、材料牌號、材料規(guī)格、工藝規(guī)則庫、工藝簡圖庫、工藝參數(shù)庫(切削參數(shù)、設備參數(shù)、工時定額表)和典型工藝庫等。切削數(shù)據(jù)庫與CAPP、CAD/CAM和 CIMS等聯(lián)機,作為制造數(shù)據(jù)庫的一部分,為這些自動化制造系統(tǒng)提供合理的切削加工數(shù)據(jù),由切削數(shù)據(jù)中心向加
30、工信息中心乃至生產信息中心發(fā)展,對加工過程中的規(guī)律、規(guī)則、數(shù)據(jù)和技術進行采集、評價、存儲、處理及應用。因此,切削數(shù)據(jù)庫對NC機床、加工中心及CAD、CAM、CAPP、CIMS等而言,是基礎數(shù)據(jù)的提供者,是CAM、CAPP、GT等先進技術的基礎。沒有數(shù)據(jù)庫的支持,就沒有真正的計算機集成制造系統(tǒng),所以集成化是切削數(shù)據(jù)庫發(fā)展的必然趨勢。</p><p> 意大利比薩大學開發(fā)的用于選擇刀具的COATS系統(tǒng),實現(xiàn)了與CA
31、PP系統(tǒng)的聯(lián)結,其輸入數(shù)據(jù)來自CAPP的其他子系統(tǒng)。一些計算機輔助設計與制造軟件開發(fā)商開發(fā)了一些切削數(shù)據(jù)庫模塊,如UGCAM中包含了一個功能強大的切削數(shù)據(jù)庫,通過數(shù)據(jù)庫的查詢,可以定義工件材料、刀具材料、刀具尺寸參數(shù)以及切削方法等,并通過數(shù)據(jù)庫的運算,獲得主軸轉速和進給速度的數(shù)據(jù)。UG CAM數(shù)據(jù)庫由五個子庫組成:工件材料庫、刀具材料庫、刀具尺寸參數(shù)庫、切削方法庫和切削速度庫。UGCAM數(shù)據(jù)庫的結構如圖1所示。刀具材料分為五類:高速鋼、
32、無涂層整體硬質合金、無涂層可轉位硬質合金、涂層可轉位硬質合金及涂層高速鋼。切削方法分為四類:立切、開槽、面切和側切。刀具類型有:立切刀、面切刀、T形切刀、鼓形切刀、UG5參數(shù)切刀、UG7參數(shù)切刀和UG10參數(shù)切刀。工件材料類型有:碳素鋼、合金鋼、高速鋼、不銹鋼、工具鋼、鋁合金和銅合金。其他CAD/CAM軟件,如Pro/E、MasterCAM、Cimatron等,也都開發(fā)了各自的切削數(shù)據(jù)庫模塊。</p><p>&
33、lt;b> (2)智能化</b></p><p> 傳統(tǒng)開發(fā)的切削數(shù)據(jù)庫和刀具管理系統(tǒng)所提供的數(shù)據(jù),大多只是“靜態(tài)”的原始數(shù)據(jù),比較具體、確定,從根本上來說,只能算作電子手冊,對于生產現(xiàn)場出現(xiàn)的種類繁多的加工方式、性能千變萬化的工件材料和刀具材料,僅靠“靜態(tài)”數(shù)據(jù)庫往往難以解決。目前,切削數(shù)據(jù)庫正朝著智能化方向發(fā)展,利用人工智能的方法來建立切削數(shù)據(jù)庫,使其具有“動態(tài)”特性。由于數(shù)據(jù)庫管理系統(tǒng)
34、不能從存儲的數(shù)據(jù)中進行邏輯推理或作啟發(fā)性判斷,因而存儲數(shù)據(jù)的價值得不到充分發(fā)揮,而人工智能的優(yōu)勢卻可以解決這一難題。把人工智能與切削數(shù)據(jù)庫結合起來,可以解決切削數(shù)據(jù)庫中一些難以解決的問題。智能化是20世紀80年代以來切削數(shù)據(jù)庫研究的重點,也是切削數(shù)據(jù)庫今后的發(fā)展方向。</p><p> 智能化就是將切削專家的經驗,切削加工的某些一般規(guī)則與特殊規(guī)律存儲在計算機中,實現(xiàn)運行與決策。很多切削技術及其專家的經驗很難用嚴
35、格的數(shù)學模型表達,如果將數(shù)據(jù)庫與人工智能技術結合,則是解決這類問題的最好方法。</p><p> 專家系統(tǒng)由知識庫、推理機和人機界面三部分組成,其中最關鍵的部分是知識庫和推理機。COATS系統(tǒng)的知識表示采用了產生式規(guī)則。為了避免推理過程中出現(xiàn)多條規(guī)則同時滿足的不確定情況,給每條規(guī)則賦予一定的權重。刀具參數(shù)的選擇主要依靠知識庫中的規(guī)則及其權重,通過一定的算法運算來得到。 COATS系統(tǒng)大約有300條規(guī)則,用PRO
36、LOG語言寫成。賓夕法尼亞州立大學開發(fā)的切削加工參數(shù)選擇專家系統(tǒng)ESMDS的推理方式為正向推理,系統(tǒng)的開發(fā)語言為FORTRAN77。加拿大溫莎大學開發(fā)了基于零件特征的機床和刀具選擇專家系統(tǒng),該系統(tǒng)用專家系統(tǒng)開發(fā)工具EXSYS開發(fā),知識表示采用產生式規(guī)則(共122條),推理方式為逆向推理。南斯拉夫開發(fā)了產生式規(guī)則和矩陣方法表示知識的刀具自動選擇專家系統(tǒng)。國家“863”計劃資助北京理工大學開發(fā)的CIMS 環(huán)境下的切削數(shù)據(jù)庫和專家系統(tǒng)(BYJ
37、C-CIMS-MDES),將切削數(shù)據(jù)庫和專家系統(tǒng)服務多種功能加以集成,把專家系統(tǒng)中知識庫的設計與數(shù)據(jù)庫相結合,取得了較好的效果。</p><p> 專家系統(tǒng)采用規(guī)則匹配推理,適于容易找到因果關系的領域,切削加工中的有些現(xiàn)象卻很難用規(guī)律性的知識和因果關系來描述,規(guī)則匹配推理也需解決規(guī)則沖突問題。此外,還有利用人工神經網絡、模糊算法、基因遺傳算法等,用于切削數(shù)據(jù)的計算推理,英國開發(fā)了基于實例推理的智能磨削參數(shù)選擇系
38、統(tǒng),山東大學正在開發(fā)基于實例推理的刀具材料與切削參數(shù)選擇的高速切削數(shù)據(jù)庫。</p><p> 根據(jù)人工智能學說,智能系統(tǒng)的智能越高,系統(tǒng)開發(fā)的成本就越大,所以,智能化切削數(shù)據(jù)庫的開發(fā)研究,應充分利用目前智能技術和信息科學等領域已有的科研成果,綜合人與計算機的各自特點,從而開發(fā)出新型的智能切削數(shù)據(jù)庫,以滿足企業(yè)對切削數(shù)據(jù)合理使用的要求。</p><p><b> (3)實用化&
39、lt;/b></p><p> 通用切削數(shù)據(jù)庫提供針對不同機床、不同切削方法、不同刀具材料的切削工藝參數(shù),能夠根據(jù)不同的加工條件,提供優(yōu)化的刀具角度、切削速度、進給量等切削用量和切削液等一系列切削參數(shù)。但是,建立通用切削數(shù)據(jù)庫是一項巨大的工程,要耗費大量的人力、物力和資金。作為一個公司、一個行業(yè)范圍來說,它用到的刀具、工件材料是有限的,基本切削數(shù)據(jù)可以通過資料獲得并經實踐檢驗。因此,建立一個公司自己的數(shù)據(jù)
40、庫是有必要的,并且不會太困難。</p><p> 許多刀具生產商和研究機構開發(fā)了計算機刀具數(shù)據(jù)管理(Tool Data Management,TDM)系統(tǒng),如德國Walter公司的TDMeasy軟件,向用戶推薦該公司的各類刀具加工不同工件材料時的切削參數(shù)。 Walter公司的TDM刀具管理軟件具有縮短計劃時間、使調整時間和工序間斷時間降至最低、減少刀具種類、促進刀具標準化、減少刀具庫存,以及對刀具訂貨進行控制的
41、功能等。SandvikCoromant公司開發(fā)的AutoTAS刀具管理軟件,有11個集成模塊。軟件可為該公司提供3000多種刀具的 CAD模型(幾何尺寸、檢測、裝配),可自動選擇該公司樣本與電子樣本中的刀具使用,提供各種刀具的庫存位置、成本、供應商、切削性能、刀具壽命及要加工工件的信息。AutoTAS刀具管理軟件還提供刀具庫存管理、購買、統(tǒng)計分析,報表,刀具室計劃與質量控制等功能。</p><p> Kenna
42、metal公司也開發(fā)了自己的刀具管理軟件KATMS與ToolBoss。Datos計算機公司推出的刀具供應軟件收錄有30多種刀具,并提供大量的信息,本身計算出的或獲取的切削數(shù)據(jù)可以集成在軟件內。Mapal公司推出的全球刀具管理系統(tǒng)可為用戶提供正確的刀具品種和數(shù)量,可為用戶建立服務部,負責刀具的重磨、調整、發(fā)放等業(yè)務,幫助用戶分析、評價加工過程等。Gunther公司和Seco公司的刀具電子樣本可幫助用戶正確選擇和使用切削刀具。EMUGE F
43、RANKEN公司的刀具電子樣本可計算和分析加工成本,還可對多功能刀具(如鉆-切螺紋刀具)提供編程指南和G代碼的運行程序。</p><p> 德國CIM公司研制了金屬切削刀具的電子信息系統(tǒng)(在CDROM盤上,一般稱為CIMSOURCE),包括世界17個主要刀具公司生產的 115000種以上的刀具數(shù)據(jù)。CIMSOURCE系統(tǒng)對刀具用戶的服務,包括為刀具用戶提供標準化圖形、優(yōu)化控制刀具業(yè)務和優(yōu)化組織大批或成批的刀具供
44、應。CIMSOURCE系統(tǒng)的電子目錄可幫助用戶了解世界刀具市場推出的品種繁多的產品,并可獲得較深入的信息,以便進一步用來準備具體的加工工藝過程。刀具供應商采用CIMSOURCE系統(tǒng),可保證做到:精確、按時地將刀具提供給用戶;因供應的刀具是以電子產品形式的,故價格最佳:可擴大市場和便于用戶進入全球性貿易網絡。</p><p> 國內許多研究機構和企業(yè)對刀具管理系統(tǒng)進行了研究開發(fā),如國家“863”計劃資助清華大學開
45、發(fā)的面向CIMS的計算機輔助刀具管理系統(tǒng),濟南輕騎發(fā)動機廠開發(fā)的適合自己企業(yè)的計算機刀具管理系統(tǒng)等。西北工業(yè)大學還開發(fā)了14種常用鈦合金的切削數(shù)據(jù)庫。上海工業(yè)大學建立了一個適合石油行業(yè)的切削數(shù)據(jù)庫。航空工業(yè)部進行了航空金屬材料切削數(shù)據(jù)庫的籌建工作。哈爾濱理工大學開發(fā)了PCBN 刀具切削數(shù)據(jù)庫。山東大學正在籌建高速切削數(shù)據(jù)庫和陶瓷刀具切削數(shù)據(jù)庫及模具切削加工數(shù)據(jù)庫。天津大學與汽車廠家合作,建立了一個針對汽車廠家使用的金屬切削數(shù)據(jù)庫。上海交
46、通大學建立了旋轉刀具/切削數(shù)據(jù)庫。</p><p><b> ?。?)網絡化</b></p><p> 迅速發(fā)展的Internet技術,給切削數(shù)據(jù)庫應用領域帶來了新的活力,網絡化強調數(shù)據(jù)交換和資源共享,將是未來切削數(shù)據(jù)庫技術發(fā)展的主要趨勢。</p><p> 目前,世界著名刀具制造公司紛紛開設了自己的網站,通過訪問這些網站,用戶可以了解該公
47、司的概貌、目前的生產科研情況、新產品目錄、特點、報價和出版物等,有的還可以提供切削參數(shù),有的可以下載軟件,如下載刀具制造的標準程序和刀具選擇軟件,以及刀具CAD圖紙等。如Guhring公司在網上提供免費的刀具管理軟件。CIMSOURCE也已納入Internet,并以對話方式工作,將全世界的用戶聯(lián)系起來,不斷獲取關于切削刀具的信息。 CIMSOURCE可幫助解決下列刀具制造和使用問題:切削刀具的選擇、切削加工工藝、提供信息網絡內的訂單、刀
48、具的圖形信息、刀具的生產和刀具的出口數(shù)據(jù)。 </p><p> 切削數(shù)據(jù)庫在向著集成化、智能化、實用化和網絡化方向發(fā)展的同時,一方面需要進行信息模型、數(shù)據(jù)模型、開發(fā)設計理論與模式等方面的基礎性研究;另一方面還應進行切削數(shù)據(jù)的標準化工作,切削數(shù)據(jù)的標準化是切削數(shù)據(jù)庫技術推廣應用和穩(wěn)定發(fā)展的保障。</p><p><b> 1.4 研究內容</b></p>
49、<p> 切削數(shù)據(jù)庫的建立包括結構設計和應用軟件設計。切削數(shù)據(jù)庫結構設計包括切削數(shù)據(jù)的采集、處理和評價,切削數(shù)據(jù)的建立,切削數(shù)據(jù)的優(yōu)化,切削數(shù)據(jù)的輸出和信息服務等功能。根據(jù)評價后切削數(shù)據(jù)的特征,可建立離散型切削數(shù)據(jù)庫或濃縮型切削數(shù)據(jù)庫。</p><p> 離散型切削數(shù)據(jù)庫的數(shù)據(jù)量十分龐大,涉及到切削方式、工件材料、刀具材料及其幾何參數(shù)與結構、切削參數(shù)、切削液和機床等許多因素,以存儲檢索的方式管理
50、該類數(shù)據(jù)。在數(shù)據(jù)庫概念結構設計中,首先建立切削數(shù)據(jù)的(實體—關系)模型,然后進行邏輯結構設計和物理結構設計。離散型切削數(shù)據(jù)庫中與切削數(shù)據(jù)有關的影響因素一般用代碼表示,切削數(shù)據(jù)庫里的關鍵字由影響切削數(shù)據(jù)選擇的各代碼疊加而成。因此,各種切削方式的關鍵字是不相同的,必須分別建立其相應的子庫,這就是切削數(shù)據(jù)庫的分庫技術。各子庫既要考慮它能在總控程序下運行,又要保證它能獨立運行,它采用模塊式結構建立。數(shù)據(jù)庫內部各影響因素的表之間應建立參照完整性,
51、父表與子表之間具有約束關系,對表進行修改(記錄的插入、更新或刪除)時,計算機自動對相應的表進行操作,免去重復操作和由此可能引起的錯誤。</p><p> 濃縮型切削數(shù)據(jù)庫用于存儲和管理各種切削數(shù)學模型的算式及其系數(shù)和指數(shù)、產生這些數(shù)學模型的切削加工條件等。</p><p> 切削數(shù)據(jù)庫的應用管理程序應能滿足切削數(shù)據(jù)的輸入、更新、刪除、檢索和輸出等基本要求。目前,多采用窗口菜單顯示技術,
52、同時在程序編制中采用循環(huán)嵌套,使系統(tǒng)具有相當?shù)娜蒎e和改錯功能。為防止切削數(shù)據(jù)庫系統(tǒng)被其他人員隨便檢索和修改,保證數(shù)據(jù)庫的安全性,可對其訪問進行控制及用戶認證,只有輸入正確的用戶名及密碼才可擁有數(shù)據(jù)庫的使用權。</p><p> 1.5 經濟運營分析</p><p> 切削數(shù)據(jù)庫的建立帶來的經濟效益是非??捎^的。在CUTDATA建庫的初期,就為工業(yè)部門節(jié)約了1.6億美元。INFOS可使單
53、件生產時間下降10%,生產成本下降10%。SWS經300多家企業(yè)應用,平均每年可節(jié)約工時15%~40%。據(jù)CIRP對切削數(shù)據(jù)庫經濟效益的調查表明,切削數(shù)據(jù)庫可使加工成本下降10%以上。</p><p><b> 2 整體方案設計</b></p><p><b> 2.1 系統(tǒng)框圖</b></p><p> 本系統(tǒng)主
54、要用于管理銑削加工工藝參數(shù)。利用小型數(shù)據(jù)庫管理軟件Access建立銑削加工工藝參數(shù)數(shù)據(jù)庫。采用基于ODBC的數(shù)據(jù)訪問技術,在VC++6.0環(huán)境下開發(fā)專門的人機交互界面,方便用戶對所建立的工藝參數(shù)進行存儲和訪問。</p><p> 本軟件的功能是可以對銑削加工工藝參數(shù)庫的數(shù)據(jù)進行添加、修改、刪除、查詢,方便對數(shù)控機床的參數(shù)管理,通過本軟件可以對一些數(shù)據(jù)進行海量的管理。在我設計的系統(tǒng)中用戶可以直觀而方便的對數(shù)據(jù)管理
55、。當數(shù)據(jù)既多又復雜的情況下,通過本軟件可以很輕松的對數(shù)據(jù)進行一些操作。</p><p> 在計算機應用方面,本系統(tǒng)絕對的是簡單又方便的參數(shù)處理系統(tǒng),它可以存儲海量的數(shù)據(jù),再加上強大的系統(tǒng)功能,可以快捷的查詢到想要得到的數(shù)據(jù)。本設計系統(tǒng)的操作界面簡明,可以很方便的對數(shù)據(jù)進行管理操作。</p><p> 圖2.1 系統(tǒng)框圖</p><p><b>
56、2.2 數(shù)據(jù)庫設計</b></p><p> 2.2.1 建立銑削數(shù)據(jù)庫的目的</p><p> 隨著數(shù)控機床的發(fā)展,它在加工行業(yè)中起著越來越重要的作用。但是其切削參數(shù)的選擇主要依賴于操作人員的素質和經驗,這使得數(shù)控機床不能在合理的銑削參數(shù)下運行。因此,有必要對銑削參數(shù)數(shù)據(jù)庫進行研究,為這些生產中的關鍵設備配備合理的加工參數(shù)。</p><p> 2
57、.2.2 銑削數(shù)據(jù)庫加工工藝參數(shù)的來源及內容</p><p> 銑削數(shù)據(jù)庫中的數(shù)據(jù)主要有以下3個來源:</p><p> 生產經驗數(shù)據(jù):車間生產經驗數(shù)據(jù)來源于本單位技術人員和操作工人的經驗積累,比較符合生產實際,但不一定最優(yōu),且比較離散,收集較難;</p><p> 實驗數(shù)據(jù):實驗數(shù)據(jù)針對具體生產條件而專門設計的試驗獲得的,經過教學處理后,系統(tǒng)性比較好,但采集
58、難度大;</p><p> 資料手冊數(shù)據(jù):資料手冊數(shù)據(jù)是多年眾多生產經驗數(shù)據(jù)的提煉,比較豐富和系統(tǒng),采集起來比較容易,可靠性中等。</p><p> 我設計的銑削數(shù)據(jù)庫內容有:</p><p> (1) 進給量庫:高速鋼端銑刀、圓柱銑刀和盤銑刀加工時的進給量(半精銑)、高速鋼端銑刀、圓柱銑刀和盤銑刀加工時的進給量(粗、銑)、高速鋼立銑刀、角銑刀、半圓銑刀、切
59、槽銑刀和切斷銑刀加工鋼時的進給量、高速鋼立銑刀在鋼料上銑槽時的進給量、硬質合金立銑刀加工平面和凸臺時的進給量、硬質合金面銑刀、圓柱銑刀和圓盤銑刀加工平面和凸臺時的進給量(粗銑)、硬質合金面銑刀、圓柱銑刀和圓盤銑刀加工平面和凸臺時的進給量(精銑)。</p><p> ?。?) 切削用量庫: YG6硬質合金端銑刀銑削灰鑄鐵的切削用量、YT15硬質合金端銑刀銑削碳鋼、鉻鋼和鎳鉻鋼的切削用量、高速鋼細齒圓柱銑刀銑削鋼料
60、時的切削用量、高速鋼細齒圓柱銑刀銑削灰鑄鐵時的切削用量、高速鋼鑲齒圓柱銑刀銑削鋼料時的切削用量、高速鋼鑲齒圓柱銑刀銑削灰鑄鐵時的切削用量、金剛石端銑刀端銑平面的切削用量、涂層硬質合金銑刀的切削用量等。</p><p> 2.3 銑削加工工藝參數(shù)分析 </p><p> ?。?)影響銑削速度的參數(shù)</p><p> 選擇你所要加工的材料,例如結構碳鋼、鉻鋼、鎳鉻鋼
61、等。由于銑削深度和進給量越大,銑削速度越小,所以要選擇合適的銑削速度和進給量,就會得到對應的銑削速度。</p><p> ?。?)影響進給量的參數(shù)</p><p> 選擇加工的材料,由于刀桿越寬,刀桿越長,進給量越小。此外,進給量還受到工件直徑、切削深度的影響。所以要輸入這些參數(shù),就會得到對應的進給量。所以我再用Access設計表時,根據(jù)不同的材料,輸入對應的參數(shù),就完成了。</p
62、><p> 2.4 基于VC的數(shù)據(jù)庫訪問設計</p><p> 2.4.1 ODBC訪問技術的優(yōu)點</p><p> 訪問數(shù)據(jù)庫的方式有很多種,如ODBC、DAO、OLE DB 和ADO等,其中ODBC是被廣泛采用的用于數(shù)據(jù)庫訪問的應用程序編制接口。對于數(shù)據(jù)庫API,它以X/Open和ISO/IEC的Call-Lelel Interface(CLI)規(guī)范為基礎,并
63、使用結構化查詢語言(SQL)作為其數(shù)據(jù)庫訪問語言。ODBC是為最大的互用性而設計的,即一個用相同的源代碼能夠訪問不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS),數(shù)據(jù)庫應用程序在ODBC接口中調用函數(shù),ODBC接口在驅動程序的針對數(shù)據(jù)庫的模塊中實現(xiàn)。ODBC也是為了給訪問關系數(shù)據(jù)庫的客戶端應用程序訪問數(shù)據(jù)庫時提供一個統(tǒng)一的接口。所以,對于不同的數(shù)據(jù)庫,ODBC提供了一套統(tǒng)一的API。應用程序就可以用所提供的API 來訪問任何提供了ODBC驅動程序的數(shù)據(jù)
64、庫。由于ODBC已經成為了一種標準,所以,一般說來,目前使用的所有的關系數(shù)據(jù)庫都提供了ODBC驅動程序,這使得ODBC的應用范圍非常廣泛,基本上可以用于所有的關系數(shù)據(jù)庫。</p><p> 因此,本課題選用ODBC訪問Access數(shù)據(jù)庫,只需是把Access數(shù)據(jù)庫的部分信息存入數(shù)據(jù)庫,然后就可以進行相應的數(shù)據(jù)庫操縱功能,如記錄的增加、刪除、修改、查詢等。</p><p> 2.4.2
65、ODBC(Open Database Connectivity)簡介</p><p> ODBC是客戶應用程序訪問關系數(shù)據(jù)庫時提供的一個統(tǒng)一的接口。對于不同的數(shù)據(jù)庫,ODBC提供了一套統(tǒng)一的API,使應用程序可以應用所提供的API來訪問任何提供了ODBC驅動程序的數(shù)據(jù)庫。而且ODBC已經成為一種標準,所以目前所有的關系數(shù)據(jù)庫都提供了ODBC驅動程序,這使ODBC的應用非常廣泛,基本上可以用于所有的關系數(shù)據(jù)庫。例
66、如,可以用ODBC使用FoxPro 、Access 、SQL Server Oracle等不同的數(shù)據(jù)庫,而使用這些數(shù)據(jù)庫的方法是完全一致的 。ODBC為進行數(shù)據(jù)庫應用程序設計提供了極大的方便,只要一種數(shù)據(jù)庫體系支持ODBC,我們就可以采用ODBC使用統(tǒng)一的方法來實現(xiàn)對這個數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫的存取和查詢等操作,而不必知道這個數(shù)據(jù)庫系統(tǒng)本身的存取方式和操作語言。由于ODBC是一種底層的訪問技術,因此ODBC API可以客戶應用程序從底層設置
67、和控制數(shù)據(jù)庫,完成一些高層數(shù)據(jù)庫技術無法完成的功能。一個完整的ODBC由下列幾個部件組成:</p><p> ?。?)應用程序(Application)。</p><p> ODBC管理器(Administrator)。該程序位于Windows 95控制面板(Control Panel)的32位ODBC內,其主要任務是管理安裝的ODBC驅動程序和管理數(shù)據(jù)源。</
68、p><p> 驅動程序管理器(Driver Manager)。驅動程序管理器包含在ODBC32.DLL中,對用戶是透明的。其任務是管理ODBC驅動程序,是ODBC中最重要的部件。</p><p> (2)ODBC API。</p><p> ?。?)ODBC 驅動程序。是一些DLL,提供了ODBC和數(shù)據(jù)庫之間的接口。</p>
69、<p> ?。?)數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實際上是一種數(shù)據(jù)連接的抽象。ODBC結構圖如下:</p><p> 圖2.4 ODBC結構圖</p><p> 2.4.3 VC++中使用ODBC的方法</p><p> ODBC的程序設計是通過一組API函數(shù)來實現(xiàn)的。在VC++的MFC應用程序中,可以直接利用這些API來組織
70、數(shù)據(jù)庫應用程序的設計。直接利用ODBC的API函數(shù)進行程序的開發(fā)工作相對比較復雜和難學。為了更方便地利開發(fā)數(shù)據(jù)庫應用程序,在MFC中有封裝了幾個進行數(shù)據(jù)庫操作的MFC類,在這些類中將一些ODBC的API函數(shù)封裝在一起,可以完成一些具體的操作功能,應用這些MFC類可以更快更容易地完成數(shù)據(jù)庫應用程序的設計。</p><p> 這兩種開發(fā)數(shù)據(jù)庫應用程序的方法個有利弊,直接利用ODBC的API函數(shù)進行數(shù)據(jù)庫應用程序設計
71、比較復雜,但可以靈活地實現(xiàn)各種功能;而使用MFC中的類進行數(shù)據(jù)庫應用程序設計比較簡單易學,但能夠實現(xiàn)的功能固定在框架內,不能夠靈活地組織框架外的各種功能。采用哪種方法來完成數(shù)據(jù)庫應用程序的設計,主要針對具體的情況,對于實現(xiàn)一些固定數(shù)據(jù)庫結構、固定功能的數(shù)據(jù)庫應用程序設計時,應用MFC類具有較大的優(yōu)勢;而對于需要對數(shù)據(jù)庫進行更多的控制,需要動態(tài)創(chuàng)建或維護數(shù)據(jù)庫應用程序設計時,采用ODBC的API函數(shù)去組織應用程序的設計更加合適。</
72、p><p><b> 3 程序設計</b></p><p> 3.1 程序設計總流程圖</p><p> 用Access建立數(shù)據(jù)庫并用ODBC與數(shù)據(jù)源相連接,把文件中的數(shù)據(jù)導入數(shù)據(jù)庫,編程實現(xiàn)管理員及用戶的權限限制,編程實現(xiàn)數(shù)據(jù)庫的增加、刪除、查詢、更新等操作, 其程序框圖如下:</p><p> 圖 3.1 本設
73、計的總體框架流程圖</p><p> 3.2 Access數(shù)據(jù)庫的建立</p><p> 在用Visual C++ 產生一個數(shù)據(jù)庫應用之前,需要首先創(chuàng)建一個數(shù)據(jù)源,即為創(chuàng)建的數(shù)據(jù)庫應用程序組織要管理的數(shù)據(jù)庫,里面存放著數(shù)控切削參數(shù)的詳細信息。然后打開Microsoft Access 軟件先建立了一個Access的數(shù)據(jù)庫acad.mdb,在數(shù)據(jù)庫中有一個數(shù)據(jù)表,具體操作步驟請參考Acce
74、ss相關書籍。</p><p> 本畢設首先創(chuàng)建了進給量數(shù)據(jù)庫,包括高速鋼端銑刀、圓柱銑刀和盤銑刀加工時的進給量(半精銑)、高速鋼端銑刀、圓柱銑刀和盤銑刀加工時的進給量(粗、銑)、高速鋼立銑刀、角銑刀、半圓銑刀、切槽銑刀和切斷銑刀加工鋼時的進給量、高速鋼立銑刀在鋼料上銑槽時的進給量、硬質合金立銑刀加工平面和凸臺時的進給量、硬質合金面銑刀、圓柱銑刀和圓盤銑刀加工平面和凸臺時的進給量(粗銑)、硬質合金面銑刀、圓柱銑
75、刀和圓盤銑刀加工平面和凸臺時的進給量(精銑)數(shù)據(jù)庫如下圖:</p><p> 圖3.3 進給量庫</p><p> 然后創(chuàng)建了切削用量庫,切削用量庫包括YG6硬質合金端銑刀銑削灰鑄鐵的切削用量、YT15硬質合金端銑刀銑削碳鋼、鉻鋼和鎳鉻鋼的切削用量、高速鋼細齒圓柱銑刀銑削鋼料時的切削用量、高速鋼細齒圓柱銑刀銑削灰鑄鐵時的切削用量、高速鋼鑲齒圓柱銑刀銑削鋼料時的切削用量、高速鋼鑲齒圓柱
76、銑刀銑削灰鑄鐵時的切削用量、金剛石端銑刀端銑平面的切削用量、涂層硬質合金銑刀的切削用量等。</p><p> 圖3.4 切削用量庫</p><p> 3.3 ODBC數(shù)據(jù)源的建立</p><p> 在VC++中利用ODBC進行數(shù)據(jù)庫應用程序設計時,需要首先創(chuàng)建ODBC數(shù)據(jù)庫引擎來連接要管理的數(shù)據(jù)庫,ODBC作為一個開放的標準數(shù)據(jù)庫應用接口,可以與所有支持ODB
77、C的數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫建立聯(lián)系來存取和使用這些數(shù)據(jù)庫,這個聯(lián)系是通過創(chuàng)建一個連接這些數(shù)據(jù)庫的ODBC數(shù)據(jù)源來實現(xiàn)的。</p><p> 以下是創(chuàng)建Access的ODBC數(shù)據(jù)源的步驟:</p><p> (1)在Windows X下運行開始——>控制面板——>管理工具,在管理工具里找到“數(shù)據(jù)源ODBC”圖標項,雙擊該圖標,在進入的操作界面中選擇“用戶DSN”標簽。在“用戶數(shù)據(jù)
78、源”列表框中列出的是已經創(chuàng)建的ODBC數(shù)據(jù)源。</p><p> (2)如果要創(chuàng)建新的數(shù)據(jù)源,就選擇“添加”按鈕,彈出創(chuàng)“建新數(shù)據(jù)源”對話框。在這個界面中,需要選擇操作引擎,為了創(chuàng)建連接Access數(shù)據(jù)庫的ODBC數(shù)據(jù)源,需要在列表中選擇“Microsoft Access Driver(.mdb)”選項,按“完成”按鈕,則進入了ODBC Microsoft Access安裝對話框。</p><
79、;p> (3)在ODBC Microsoft Access安裝對話框界面上,在數(shù)據(jù)源中輸入要安裝的數(shù)據(jù)源的名稱,也可以按“選擇”按鈕,從之前建立的Access數(shù)據(jù)庫acad.mdb所在的文件夾中進行選取。然后輸入數(shù)據(jù)庫名稱,最后按“確定”退出對話框。此時Access數(shù)據(jù)庫就與ODBC連接上了。</p><p> 3.3.1 ODBC管理器</p><p> 可以應用AppWiz
80、ard來建立一個ODBC(數(shù)控機床參數(shù)庫)的應用程序框架,也可以直接使用ODBC來進行數(shù)據(jù)庫編程,這時,應包括頭文件afxdb.h。</p><p> 應用ODBC編程兩個最重要的類是CDatabase和CRecordSet,但在應用程序中,不應直接使用CRecordSet類,而必須從CRecordSet類產生一個導出類,并添加相應于數(shù)據(jù)庫表中字段的成員變量。隨后,重載CRecordset類的成員函數(shù)DoFie
81、ldExchange,該函數(shù)通過使用RFX函數(shù)完成數(shù)據(jù)庫字段與記錄集域數(shù)據(jù)成員變量的數(shù)據(jù)交換,RFX函數(shù)同對話框數(shù)據(jù)交換(DDX)機制相類似,負責完成數(shù)據(jù)庫與成員變量間的數(shù)據(jù)交換。</p><p> 3.3.2 開放數(shù)據(jù)庫連接</p><p> 在CRecordSet類中定義了一個成員變量m_pDatabase:</p><p> CDatabase *m_p
82、Database;</p><p> 它是指向對象數(shù)據(jù)庫類的指針。如果在CRecordSet類對象調用Open()函數(shù)之前,將一個已經打開的CDatabase類對象指針傳給m_pDatabase,就能共享相同的CDatabase類對象。如:</p><p> CDatabase m_db;</p><p> m_ db.Open(_T("Super
83、_ES")); // 建立ODBC連接</p><p> m_ Set.GetRecordCount.m_pDatabase=&m_db; </p><p> m_ Set.MoveFirst.m_pDatabse=&m_db; </p><p><b> 或者:</b></p><p>
84、 CDatabase db;</p><p> db.Open(“Database”); //建立ODBC連接</p><p> CRecordSet m_Set(&db); //構造記錄集對象,使數(shù)據(jù)庫指向db</p><p> 3.4 數(shù)據(jù)源的連接</p><p> 3.4.1 ODBC應用程序
85、接口</p><p> ODBC API是一組標準的ODBC函數(shù)庫,除了一般的數(shù)據(jù)庫操作函數(shù)外,還包括一組函數(shù)(如SQLExec或SQLExecdirect)能夠內嵌標準SQL查詢語句。SQL(Structured Query Language結構化查詢語言)是一種存取關系型數(shù)據(jù)庫的標準語言,能夠定義、查詢、修改和控制數(shù)據(jù),簡單的語句能夠作用于整個數(shù)據(jù)表格,具有很強的功能。 同Wi
86、ndows 3.1 SDK中API類似,ODBC API也是基于句柄(handle)進行操作的。API函數(shù)按功能可分為以下幾類:</p><p> (1) 數(shù)據(jù)源連接函數(shù),設置/獲取有關信息的函數(shù);</p><p> (2) 準備/提交執(zhí)行SQL查詢語句的函數(shù)和獲得數(shù)據(jù)的函數(shù);</p><p> (3) 終止函數(shù)和異常處理函數(shù)。&
87、lt;/p><p> 上述函數(shù)的順序也表示了進行數(shù)據(jù)庫操作的一般順序。兩個問題需要特別說明,一是數(shù)據(jù)類型問題:數(shù)據(jù)源中的數(shù)據(jù)所具有的數(shù)據(jù)類型稱為SQL數(shù)據(jù)類型,這些數(shù)據(jù)類型在其數(shù)據(jù)源中可能比較特殊,不一定和ODBC SQL數(shù)據(jù)類型存儲方式一致,驅動程序把這些數(shù)據(jù)類型同ODBC SQL數(shù)據(jù)類型進行相互轉換,每一個ODBC SQL數(shù)據(jù)類型都相當于一個ODBC C語言數(shù)據(jù)類型;二是
88、函數(shù)的調用級別問題,并不是每一個ODBC驅動程序都支持所有的ODBC API函數(shù)調用,在應用程序中,可以調用有關函數(shù)獲取驅動程序以支持層次方面的信息。</p><p> 3.4.2 ODBC應用編程 </p><p> 在Visual C++中,MFC (Microsoft Foundation Class基本類庫)是經過對Window
89、s應用程序中各個部件進行類的抽象而建立的一組預定義的類,如窗口基類(CWnd)、各種窗口派生類等等,這些類在應用程序中可直接使用,不需要重新定義。在MFC中,也為ODBC預定義了幾個類,其中主要的是數(shù)據(jù)庫類(CDatabase)和記錄集合類(CRecoredset)。這兩個類既有聯(lián)系又有區(qū)別,在應用程序中,可以分別使用,也可以同時使用,每一類也可以同時存在多個對象。CDatabase的每一個對象代表了一個數(shù)據(jù)源的連接,CRecordse
90、t的每一個對象代表了從一 個數(shù)據(jù)表中按預定的查詢條件獲得的記錄的集合,一般說來,前者適宜于對數(shù)據(jù)源下的某個數(shù)據(jù)表格進行整體操作,后者用于對所選的記錄集合進行處理。</p><p> 同Windows類與SDK API 函數(shù)的關系一樣,CDatabase類與ODBC API函數(shù)也有類似的關系,但CDatabase類中并不包含所有的ODBC API函數(shù),大部分操作功能仍須直接
91、調用ODBC API函數(shù),如目錄功能函數(shù),用于獲得數(shù)據(jù)源下的數(shù)據(jù)表格信息,如表格名,字段名等。</p><p> 在應用編程時,一般使用CDatabase和CRecordset的派生類。假設派生類分別為CUserdb和CUserset,而在應用類CUserClass中,使用了一個CUserdb對象(m_db)和一個Cuserset對象(m_recset)。</p><p>
92、(1) m_db連接數(shù)據(jù)源</p><p> m_db在完成定義構造后,要調用CDatabase打開(Open)函數(shù)以進行數(shù)據(jù)源的實際連接: m_db.Open(lpszDSN, bExclusive, bReadOnly, lpszConnect); 打開函數(shù)需要輸入四個參數(shù)。lpszDSN:要連接的數(shù)據(jù)源的名字,如果lpszDSN=NULL且lpszConnect中也沒有指明數(shù)
93、據(jù)源名,則該調用會自動出現(xiàn)一個對話框列出所有可用的數(shù)據(jù)源(名),讓用戶選擇。bExclusive:只支持“假”(False)值,表示為共享(share)方式連接。因此,應用程序在運行前,一定要裝入share.exe或在Windows的system.ini中裝入vshare.386。ReadOnly:指明數(shù)據(jù)源操作方式是“只讀”還是可以修改。lpszConnect: 指明連接字符串,包括數(shù)據(jù)源名、用戶標識碼、口令等信息。該字符串
94、必須以“ODBC;”開頭,表示該連接是與一個ODBC數(shù)據(jù)源的連接(考慮以后版本支持非ODBC數(shù)據(jù)源)。m_db打開后,其指針可以傳給m_recset作為其數(shù)據(jù)源。m_db關閉后,將關閉所有CRecordset對它的連接,m_db也可</p><p> ?。?) m_db操作數(shù)據(jù)</p><p> 數(shù)據(jù)源打開后,即可對數(shù)據(jù)庫文件中的數(shù)據(jù)表格進行操作,操作以調用SQL語句方式進行,可直接通過
95、ODBC API函數(shù),或者CDatabase類成員函數(shù)ExecuteSQL。數(shù)據(jù)表名在SQL語句中指定,如下語句則在所在的數(shù)據(jù)源中的clerk表中插入一個記錄,記錄的name字段值為"chen"。</p><p> m_db.ExecuteSQL("insert into clerk(name) value(’chen’)"); &
96、lt;/p><p> ?。?) m-recset連接數(shù)據(jù)</p><p> m-recset在構造時,可傳入一個CDatabase對象指針,作為m_recset的數(shù)據(jù)源,當為NULL時,必須重載CRecordset的函數(shù)GetDefaultConnect,以提供數(shù)據(jù)源連接字符串(相當于m_db.Open中的lpszConnect)。如下則表示連接名為COMPANY的數(shù)據(jù)源(當傳入了合法的CD
97、atabase對象指針時,該函數(shù)將不被調用)。</p><p> CString CUserset::GetDefaultConnect()</p><p><b> {</b></p><p> return"ODBC;DSN=COMPANY;";</p><p><b>
98、 }</b></p><p> ?。?) m_recset選取記錄和字段</p><p> m_recset在調用打開函數(shù)時,即獲得了符合條件的一組記錄,條件語句在Open函數(shù)中的lpszSQL中給出,如果lpszSQL為NULL,則必須重載CRecordset的函數(shù)以提供該語句。該語句是一個SELECT語句,帶或不帶where和order by子句(如果不帶,w
99、here和Order by的條件也可在CRecordset的兩個預定義成員變量m_strFilter和m_strSort中給出)。lpszSQL也可以只是一個數(shù)據(jù)表名(table_name),也可以是對內嵌在數(shù)據(jù)庫文件中的查詢程序的調用語句。所選擇的一系列字段名,在成員函數(shù)DoFieldExchange中由一系列RFX-函數(shù)指定。RFX-(Record Field Exchange)函數(shù),使字段和成員變量一
100、一建立類型對應關系。另外,m-strFilter中也可以帶變量參數(shù)(用"?"表示,如"fieldl>=? AND field2<=?"),參數(shù)與成員變量的對應關系也在DoFieldExchange中由RFX-函數(shù)指定(串中的"?"將被參數(shù)變量值逐一替換)。</p><p> void CUserset::DoF
101、ieldExchange(CFieldExchange* pFX)</p><p><b> {</b></p><p> pFX->SetFieldType(CFieldExchange::outputColumn);</p><p> /*以下為字段連接 */ </p><p> R
102、FX-???(pFX,"field1",m_var1);</p><p> RFX-???(pFX,"field2",m_var2);</p><p> RFX-???(pFX,"fieldn",m_varn);</p><p> pFX->SetFieldType(CFieldExchange
103、::param);</p><p> /*以下為參數(shù)連接*/</p><p> RFX-???(pFX,field1,m_param1);</p><p> RFX-???(pFX,field2,m_param2);</p><p><b> }</b></p><p> 其中,???為
104、ODBC SQL數(shù)據(jù)類型名,如RFX_Double,RFX_Text等。</p><p> 綜合上述,選取記錄和字段實際是由下列語句完成:</p><p> SELECT rfx-field-list FROM table-name[WHERE m-strFilter][ORDER BY m-strSort] 字段變
105、量和參數(shù)變量的個數(shù)一定要在調用打開函數(shù)前(如構造函數(shù)中)準確地賦值給成員變量m_nFields和m_nParams。m_recset在打開后的任何時候調用Requery()函數(shù),將根據(jù)新的查詢條件(例如修改了參數(shù)變量值)重新選取記錄。</p><p> ?。?)m_recset操作數(shù)據(jù)</p><p> 記錄集合生成后,其當前記錄的各字段值被保存在前述的各字段變量中,如果調用CRecor
106、的滾動(scroll)函數(shù),如MoveFirst(),MoveNext(),MovePrev(),MoveLast()等,字段變量的值將自動跟隨“當前”記錄的位置的變化而變化。IsBOF(),IsEOF()用于判別是否移動到記錄的頭或尾。</p><p> 數(shù)據(jù)操作主要包括刪除(Delete),添加(AddNew)和更改(Edit),一般流程為:</p><p> if(m_recse
107、t.CanUpdate()) /*是否允許修改*/</p><p><b> {</b></p><p> if (m_db.CanTransact()) /*是否支持“批”處理*/</p><p><b> {</b></p><p> m_db.BeginT
108、rans();</p><p> m_recset.AddNew();</p><p> /* 修改字段變量值 */</p><p><b> . . . </b></p><p> m_recset.Update();</p><p> m_db
109、.CommitTrans();</p><p> if(catch error)</p><p> m_db.RollBack();</p><p><b> }</b></p><p><b> }</b></p><p> 對于AddNew和Edit,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文(設計)底板數(shù)控銑削加工
- 數(shù)控銑削加工及機床維修畢業(yè)論文
- 畢業(yè)論文--數(shù)控銑削加工及機床維修
- 數(shù)控銑床銑削編程畢業(yè)論文
- 典型零件的數(shù)控銑削加工工藝及編程畢業(yè)論文
- 數(shù)控銑削加工工藝及編程畢業(yè)設計
- 畢業(yè)設計-數(shù)控銑削加工工藝設計與編程加工
- 畢業(yè)設計-----數(shù)控銑削加工工藝設計與編程加工
- 數(shù)控銑削加工工藝基礎
- 底板數(shù)控銑削加工畢業(yè)設計
- 銑床畢業(yè)設計--數(shù)控銑削工藝設計
- 畢業(yè)設計---數(shù)控銑削編程與加工設計
- 機械制造畢業(yè)論文---典型零件的數(shù)控銑削加工
- 機械制造畢業(yè)論文:典型零件的數(shù)控銑削加工
- 數(shù)控銑削加工工藝及編程.doc
- 畢業(yè)設計(論文)-數(shù)控銑床加工工藝設計
- 數(shù)控銑削畢業(yè)設計
- 數(shù)控銑削加工工藝及編程.doc
- 高精度復雜曲面的數(shù)控銑削加工工藝參數(shù)的優(yōu)化.pdf
- 數(shù)控加工工藝設計畢業(yè)論文
評論
0/150
提交評論