紅外成像項(xiàng)目pc端軟件數(shù)據(jù)庫設(shè)計(jì)說明書_第1頁
紅外成像項(xiàng)目pc端軟件數(shù)據(jù)庫設(shè)計(jì)說明書_第2頁
紅外成像項(xiàng)目pc端軟件數(shù)據(jù)庫設(shè)計(jì)說明書_第3頁
紅外成像項(xiàng)目pc端軟件數(shù)據(jù)庫設(shè)計(jì)說明書_第4頁
紅外成像項(xiàng)目pc端軟件數(shù)據(jù)庫設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

重慶科技發(fā)展 2009-07-紅外成像項(xiàng)目PC2009-7-2009-7-增加數(shù)據(jù)庫Ado表示一種需作PC Mkiranay.exe需具備Office2003套件的ACCESS組如圖1所示,數(shù)據(jù)庫主要由5個(gè)部分組成,包括分析結(jié)果表ResultTable,設(shè)備表DeviceTableDeviceTypeTable,StationTable,主鍵NOTNOTNOTNOTNOT INDEXyzeCodeONResultTable(yzeCode) INDEXPictureCodeONResultTable(PictureCode) INDEXDeviceCodeONResultTable(DeviceCode) INDEXyzeTypeCodeONResultTable(yzeTypeCode) INDEXOperatorCodeONResultTable(OperatorCode) INDEXDateONResultTable(Date)124主鍵NOTDeviceCodeStationCode設(shè)備類型編號:主鍵NOT 主鍵NOT 主鍵NOT AdoADO(ActiveXDataObjectActive數(shù)據(jù)對象)是提供的一種面向?qū)ο?,與語言無(Connection令(Command)、記錄集(Recordset)、字段(Field)、參數(shù)(Parameter)、錯(cuò)誤(Error)、屬性(Property)、集合、.它們之間的關(guān)系如下圖:對于一個(gè)數(shù)據(jù)庫來說,我們一般先建立一個(gè)ADO連接ADO連接可以直接執(zhí)行SQL語句來數(shù)據(jù)庫但如果我們要對數(shù)據(jù)在應(yīng)用程序和數(shù)據(jù)ADOADO連接,但ADO連接一般只能對應(yīng)一個(gè)且必須對應(yīng)一個(gè)ADO連接.OpenConnectionString,BSTRUserID,BSTRPassword,longOptions);UserID和Password如果在ConnectionString已經(jīng)指明了用戶名和一般就可以不必管它們.Options(adConnectUnspecified)還是以異步方式(adAsyncConnect)進(jìn)行連接,默認(rèn)為同步.這個(gè)函數(shù)的關(guān)鍵這處在于ConnectionString參數(shù),它決定了以什么方式連接到什么數(shù)據(jù)源,例如:如果是Access數(shù)據(jù)庫,它的格式則一般為:"Provider=.Jet.OLEDB.4.0;DataSource=db.mdb";SQLServer:"Provider=SQLOLEDB.1;DataSource=sqlservername;InitialCatalog=master;UserID=sa;PWD=password";_ConnectionPtrLPCSTRstrConnect="Provider=.Jet.OLEDB.4.0;Data//創(chuàng)建ConnectionHRESULThr=if(SUCCEEDED(hr)){pConnection->Open(strConnect,"","",}SQL語句,還可以調(diào)用過程等等:Open(VARIANTSource,VARIANTActiveConnection,CursorTypeEnumCursorType,LockTypeEnumLockType,LONGOptions).ActiveConnectionConnection面所的ADO連接對象.CursorType參數(shù)指的是記錄集光標(biāo)類型,在的資料中是這樣說明它的取值2.adOpenKeyset鍵集游標(biāo)。盡管從您的記錄集不能其他用戶刪除的記錄,4.adOpenStaticadOpenStaticLockType參數(shù),用于指示在什么時(shí)候鎖定記錄:AdLockReadOnly(默認(rèn)值)AdLockPessimistic(逐個(gè))AdLockOptimistic開放式鎖定(逐個(gè))UpdateAdLockBatchOptimistic(與立即更新模式相adCmdTextstrSQLSQLadCmdTableADOSQLstrSQLadCmdTableDirectstrSQLadCmdStoredProc指示strSQL為過程.adCmdUnknown指示strSQL參數(shù)中令類型為未adCmdFilestrSQL)Recordset.adAsyncExecutestrSQL.adAsyncFetchInitialFetchSizeadAsyncFetchNonBlockingSQLadCmdTextLPCSTRstrSQL="select*from_RecordsetPtrpRecordset;_variant_t((IDispatch*)pConnection,true),AdLockOptimistic,ADO中記錄集中指定字段的值一般有兩種方法:FieldsPtrpFields->Item[long(index)]-index.GetFields()函數(shù)返回的是記錄集對象的字段集pRecordset-pRecordset-它們都將返回一個(gè)_variant_t類型的值,推薦使用后法.intncol=rset.GetFieldsCount();while(!rset.IsEOF()){for(inti=0;i<ncol;{rset.GetValueString(value,}}一個(gè)記錄集通常包含多個(gè)字段,通過記錄,我們可以得到很多有用的信息,get_FieldsFieldsPtrRecordset-longlIndex=FieldPtrpf=pFields-FieldPtrpf=pFields-get_ActualSize(long*pl) get_Attributes(long get_DefinedSize(long*pl)4,長整型為get_Name(BSTR*pbstr) get_Type(DataTypeEnum*pDataType)get_Value(VARIANT*pvar)//字段的值class{///ConnectionvirtualBOOLSetConnectTimeOut(longlTime);BOOLIsOpen();_ConnectionPtrErrorsPtr strConnect:連接字符串,包含連接信息lOptions:可選。決定該方法是在連接建立之后(異步)還是連接常 說adConnectUnspecified(默認(rèn)) 異步方式打開連接。Ado pleteBOOLConnect(LPCTSTRstrConnect,longlOptions= Disconnect()關(guān)閉與數(shù)據(jù)源的連接Remarks:使用Close方法可關(guān)閉Connection對象以便釋放所有關(guān)聯(lián)的系統(tǒng)資Release方法。BOOLBOOL - -RollbackTrans-取消當(dāng)前事務(wù)中所作的任何更改并結(jié)束事務(wù)。它也可能啟動(dòng)BeginTransCommitTransRollbackTrans結(jié)對于支持嵌套事務(wù)的數(shù)據(jù)庫來說,在已打開的事務(wù)中調(diào)用BeginTrans方法1表示已打開頂層事務(wù)(即事務(wù)不被另一個(gè)嵌套),返回值為2表示已打開第二層事務(wù)(嵌套在頂層事務(wù)中的事務(wù))CommitTransRollbackTrans只影響打開的事務(wù);在處理任何更事務(wù)之前必須關(guān)閉或回卷當(dāng)前事務(wù)。CommitTrans方法將保存連接上打開的事務(wù)中所做的更改并結(jié)束事務(wù)。調(diào)用RollbackTrans方法還原打開事務(wù)中所做的更改并結(jié)束事務(wù)。在未打開事務(wù)時(shí)調(diào)用其中任何法都將錯(cuò)誤。ConnectionAttributesCommitTransRollbackTransAttributesmitRetainingCommitTrans調(diào)用后會(huì)自動(dòng)啟動(dòng)新事務(wù)。如果Attributes屬性設(shè)置為adXactAbortRetaining,數(shù)據(jù)庫在調(diào)用RollbackTrans之后將自動(dòng)啟動(dòng)新事務(wù)。longBeginTrans();BOOLRollbackTrans();BOOLCommitTrans(); adSchemaCheckConstraints adSchemaColumnPrivileges <無 returns:Recordset對象Recordset將以只讀、靜態(tài)以及表中的列等信息,上述數(shù)據(jù)參考,視具體的數(shù)據(jù)源可能會(huì)有不同 Remarks:ADO對象的操作都可以產(chǎn)生一個(gè)或多個(gè)提供者錯(cuò)誤。產(chǎn)生錯(cuò)誤時(shí),可以將一個(gè)或多個(gè)Error對象置于Connection對象的Errors集合ADOErrorsErrorsErrorADO錯(cuò)誤。ADO錯(cuò)誤ADOErrorsClear方式可手工清除Errors集合。ErrorsError對象集合描述響應(yīng)單個(gè)語句時(shí)產(chǎn)生的所有錯(cuò)誤。列舉Errors集合中指定錯(cuò)誤可使錯(cuò)誤處理例程更精確地確定產(chǎn)生錯(cuò)誤的原ErrorsError對象顯示的警告,RecordsetResync、UpdateBatch或CancelBatch方法,Connection的Open方法或者設(shè)置Recordset對象上的Filter屬性前,請調(diào)用Errors集合上的Clear方法。這樣您就可以閱讀Errors集合的Count屬性以測試返回的警告。CString Remarks:關(guān)閉連接并釋放connectionconnectionBOOL class{CAdoRecordSet(CAdoConnection*pConnection);virtual~CAdoRecordSet(); Name:Open 計(jì)算Command對象的變量名,SQL語句,表名,過程調(diào)用或持久Recordset文件名. 可選.CursorTypeEnum值,確定打開Recordset時(shí)應(yīng)常 說 常 說 adLockPessimistic-通常通過在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄.adLockOptimistic開放式鎖定-只在調(diào)用Update方法時(shí)才鎖定記錄.adLockBatchOptimistic-用于批更新模式(與立即更新模式 可選.長整型值,strSQL參數(shù)的類型可為下列常 說 strSQL為命令文本,SQL語句 ADOSQLstrSQL中命名的表中返adCmdTableDirect指示所作的更改在strSQL中命名的表中返回所有行. 指示strSQL為過程. 指示strSQL參數(shù)中令類型為未知 strSQL中命名的文件中恢復(fù)保留(保存的) InitialFetchSizeadAsyncFetchNonBlocking指示主要線程在提取期間從未堵塞.如果所請求HRESULTOpen(LPCTSTRstrSQL,longlOption=adCmdText,Remarks:CloseRecordset對象以便釋放所有關(guān)聯(lián)的系統(tǒng)資源.關(guān)閉對象并非將它從內(nèi)存中刪除,可以更改它的屬性設(shè)置并且在此后再次打開.要將對象從內(nèi)存中完全刪除,可將對象變量設(shè)置為Nothing.CloseRecordset對象的同時(shí),將釋放關(guān)聯(lián)的數(shù)據(jù)和可能已經(jīng)通過該特定Recordset對象對數(shù)據(jù)進(jìn)行的獨(dú)立.隨后可調(diào)用Open方法重Recordset.Recordset對象關(guān)閉后,調(diào)如果正在立即更新模式下進(jìn)行編輯,Close方法將產(chǎn)生錯(cuò)誤,應(yīng)首先UpdateCancelUpdat方法.Recordset對象,則UpdateBatch調(diào)用以來所做的修改將全部丟失.BOOLBOOLIsEOF();BOOLIsBOF(); GetState對所有可應(yīng)用對象,說明其對象狀態(tài)是打開或是關(guān)閉.對執(zhí)行Recordset對象,說明當(dāng)前的對象狀態(tài)是連接、執(zhí)行或是獲取returns:返回下列常量之一的長整型值. adStateConnecting指示Recordset對象正在連接. 指示Recordset對象正在執(zhí)行命令. 指示Recordset對象的行正在被. 可以隨時(shí)使用State屬性確定指定對象的當(dāng)前狀態(tài).該屬性是只讀的.Recordset對象的State屬性可以是組合值.例如,如果正在執(zhí)行語句,adStateOpenadStateExecuting的組合值.long returns:返回下列一個(gè)或多個(gè)RecordStatusEnum值之和. 由于記錄掛起的插入,因此未被保存. adRecConcurrencyViolation由于開放式并發(fā)在使用中,記錄未被保存. 由于用戶完整性約束,記錄未被保存. 由于與打開的對象,記錄未被保存. 由于記錄基本數(shù)據(jù)庫的結(jié)構(gòu),因此未被保存. Remarks:使用Status屬性查看在批更新中被修改的記錄有哪些更改被掛起.也可使用Status屬性查看大量操作時(shí)失敗記錄的狀態(tài).例如,調(diào)用RecordsetResync、UpdateBatchCancelBatch方法,或者設(shè)置Recordset對象的Filter屬性為書簽數(shù)組.使用該屬性,可檢查指定記錄long longlongGetFieldsCount();CStringCStringGetFieldName(longlIndex);

returns:OLEDB常 說 OR以指示該數(shù)據(jù)是那種類型的安全數(shù)組(DBTYPE_ARRAY)。 8(DBTYPE_I8) (DBTYPE_BYTES) (DBTYPE_BOOL) OR以指示該數(shù)據(jù)是其他類型數(shù)據(jù)的指針(DBTYPE_BYREF)。 以空結(jié)尾的字符串(Unicode)(DBTYPE_BSTR)。 字符串值(DBTYPE_STR)。 貨幣值(DBTYPE_CY)。貨幣數(shù)字的小數(shù)點(diǎn)位置固定、小數(shù)810,000的帶符 日期值(DBTYPE_DATE)。日期按雙精度型數(shù)值來保存,數(shù)18991230開始的日期數(shù)。小數(shù)部分是 日期值(yyyymmdd)(DBTYPE_DBDATE)。 時(shí)間值(hhmmss)(DBTYPE_DBTIME)。 (yyyymmddhhmmss加10數(shù) 具有固定精度和范圍的精確數(shù)字值 (DBTYPE_R8) (DBTYPE_EMPTY) 32-位錯(cuò)誤代碼(DBTYPE_ERROR)。 全局唯一的標(biāo)識符(GUID)(DBTYPE_GUID)。 OLE對象上Idispatch接口的指針(DBTYPE_IDISPATCH)。 4字節(jié)的帶符號整型(DBTYPE_I4)。 對象 接口的指 具有固定精度和范圍的精確數(shù)字值 單精度浮點(diǎn)值(DBTYPE_R4)。 2字節(jié)帶符號整型(DBTYPE_I2)。 1字節(jié)帶符號整型(DBTYPE_I1)。 8字節(jié)不帶符號整型(DBTYPE_UI8)。 4字節(jié)不帶符號整型(DBTYPE_UI4)。adUnsignedSmallInt2字節(jié)不帶符號整型(DBTYPE_UI2)。adUnsignedTinyInt1字節(jié)不帶符號整型(DBTYPE_UI1)。 用戶定義的變量(DBTYPE_UDT)。 OR結(jié)構(gòu)(OLEDB定義)(DBTYPE_VECTOR) Unicode Unicode(DBTYPE_WSTR)DWORDGetFieldType(longlIndex);DWORDGetFieldType(LPCTSTRstrfield);returns:對于Field對象,AttributesFieldAttributeEnum值的和。 adFldUnknownUpdatable 指示該字段接受Null值。 指示可以從該字段Null值。 AppendChunkGetChunk adFldCacheDeferred指示提供者緩存了字段值,并已完成隨后對緩存的Remarks:FieldlongGetFieldAttributes(longreturns:返回某個(gè)字段定義的長度(按字節(jié)數(shù))Remarks:DefinedSizeFieldlongGetFieldDefineSize(long returns:BLOB數(shù)據(jù)預(yù)留空間,在此情況下默認(rèn)值為0。Remarks:ActualSizeField對象值的實(shí)際長度.字段,ActualSizeADOField對象值的實(shí)際長度,ActualSize屬性將返回adUnknown。如以下范例所示,ActualSize和DefinedSizeadVarChar類型且最大長度為50個(gè)字符的Field對象將返回50DefinedSizeActualSize屬性值是當(dāng)前記longGetFieldActualSize(long RecordsetFieldFields集合. FieldRecordset集中的一列.Fields*GetFields();FieldPtrGetField(longlIndex);const_RecordsetPtr&Remarks:添加新的.先AddNew(),然后用PutCollect()設(shè)置每列的值,Update()更新數(shù)據(jù)庫.BOOL Update方法前對當(dāng)前記錄或新記錄所作的任何更改Remarks:使用CancelUpdate方法可取消對當(dāng)前記錄所作的任何更改或放棄新添加的記錄.Update方法后將無法撤消對當(dāng)前記錄或新記錄所做的更改,除非更改是可以用RollbackTrans方法回卷的事務(wù)的一部分,或者是可以用CancelBatch方法取消的批更新的一部分.CancelUpdate方法時(shí)添加新記錄,AddNew之前的當(dāng)前如果尚未更改當(dāng)前記錄或添加新記錄,CancelUpdate方法將產(chǎn)生錯(cuò)誤BOOL CancelBatch取消掛起的批更新 AffectEnum值, AdAffectCurrent僅取消當(dāng)前記錄的掛起更新AdAffectGroupFilter屬性設(shè)置的記錄取消掛起更新.使用該選項(xiàng)時(shí),Filter屬性設(shè)置為合法的預(yù) 默認(rèn)值.取消Recordset對象中所有記錄的掛起更新,Filter屬性設(shè)置所隱藏的任何記錄NameDelete AffectEnum值,Delete方法所影響的記錄數(shù)常 說 Filter屬性設(shè)置的記錄.要使用該選項(xiàng),必須將Filter屬性設(shè)置為有效的預(yù)定義常量之一. adAffectAllChapters刪除所有子集記錄.MoveFirstRecordse中的第一個(gè)記錄.MoveLastRecordset中的最后一個(gè)記錄.MoveNext方法將當(dāng)前記錄向前移動(dòng)一個(gè)記錄(向Recordset的底部).如果MoveNext方法,則ADO將當(dāng)前記錄設(shè)置到Recordset(EOFTrue)的尾記錄之后.EOFTrue時(shí)試圖向前移動(dòng)Recordset對象必須支持書簽或向后游標(biāo)移動(dòng);否則方法調(diào)用將產(chǎn)生錯(cuò)誤MovePrevious方法,ADO將當(dāng)前記錄設(shè)置在Recordset(BOFTrue)的首記錄之前.BOF屬性為True時(shí)向后移動(dòng)將產(chǎn)生錯(cuò)誤.Recordset對象不支持書簽或向后游標(biāo)移動(dòng),MovePrevious方法將CacheSize屬性創(chuàng)建記錄緩存,通過Move方法支持向后游標(biāo)移動(dòng).由于RecordsetMoveFirst方法;這樣做可使提供者重新執(zhí)行生成Recordset對象令.BOOLMoveFirst();BOOLMovePrevious();BOOLMoveNext();BOOL Recordset

常 說 BOOLMove(longlRecords,longStart=BOOLBOOLPutCollect(longindex,const_variant_t&value);BOOLPutCollect(longindex,constLPCSTR&value);BOOLPutCollect(longindex,constdouble&value);BOOLPutCollect(longindex,constfloat&value);BOOLPutCollect(longindex,constlong&value);BOOLPutCollect(longindex,constint&value);BOOLPutCollect(longindex,constshort&value);BOOLPutCollect(longindex,constBYTE&value);BOOLPutCollect(LPCSTRstrFieldName,_variant_t&value);BOOLPutCollect(LPCSTRstrFieldName,constLPCSTR&value);BOOLPutCollect(LPCSTRstrFieldName,constdouble&value);BOOLPutCollect(LPCSTRstrFieldName,constfloat&value);BOOLPutCollect(LPCSTRstrFieldName,constlong&value);BOOLPutCollect(LPCSTRstrFieldName,constint&val

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論