紅外成像項目pc端軟件數據庫設計說明書_第1頁
紅外成像項目pc端軟件數據庫設計說明書_第2頁
紅外成像項目pc端軟件數據庫設計說明書_第3頁
紅外成像項目pc端軟件數據庫設計說明書_第4頁
紅外成像項目pc端軟件數據庫設計說明書_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

returns:OLEDB常 說 OR以指示該數據是那種類型的安全數組(DBTYPE_ARRAY)。 8(DBTYPE_I8) (DBTYPE_BYTES) (DBTYPE_BOOL) OR以指示該數據是其他類型數據的指針(DBTYPE_BYREF)。 以空結尾的字符串(Unicode)(DBTYPE_BSTR)。 字符串值(DBTYPE_STR)。 貨幣值(DBTYPE_CY)。貨幣數字的小數點位置固定、小數810,000的帶符 日期值(DBTYPE_DATE)。日期按雙精度型數值來保存,數18991230開始的日期數。小數部分是 日期值(yyyymmdd)(DBTYPE_DBDATE)。 時間值(hhmmss)(DBTYPE_DBTIME)。 (yyyymmddhhmmss加10數 具有固定精度和范圍的精確數字值 (DBTYPE_R8) (DBTYPE_EMPTY) 32-位錯誤代碼(DBTYPE_ERROR)。 全局唯一的標識符(GUID)(DBTYPE_GUID)。 OLE對象上Idispatch接口的指針(DBTYPE_IDISPATCH)。 4字節的帶符號整型(DBTYPE_I4)。 對象 接口的指 具有固定精度和范圍的精確數字值 單精度浮點值(DBTYPE_R4)。 2字節帶符號整型(DBTYPE_I2)。 1字節帶符號整型(DBTYPE_I1)。 8字節不帶符號整型(DBTYPE_UI8)。 4字節不帶符號整型(DBTYPE_UI4)。adUnsignedSmallInt2字節不帶符號整型(DBTYPE_UI2)。adUnsignedTinyInt1字節不帶符號整型(DBTYPE_UI1)。 用戶定義的變量(DBTYPE_UDT)。 OR結構(OLEDB定義)(DBTYPE_VECTOR) Unicode Unicode(DBTYPE_WSTR)DWORDGetFieldType(longlIndex);DWORDGetFieldType(LPCTSTRstrfield);returns:對于Field對象,AttributesFieldAttributeEnum值的和。 adFldUnknownUpdatable 指示該字段接受Null值。 指示可以從該字段Null值。 AppendChunkGetChunk adFldCacheDeferred指示提供者緩存了字段值,并已完成隨后對緩存的Remarks:FieldlongGetFieldAttributes(longreturns:返回某個字段定義的長度(按字節數)Remarks:DefinedSizeFieldlongGetFieldDefineSize(long returns:BLOB數據預留空間,在此情況下默認值為0。Remarks:ActualSizeField對象值的實際長度.字段,ActualSizeADOField對象值的實際長度,ActualSize屬性將返回adUnknown。如以下范例所示,ActualSize和DefinedSizeadVarChar類型且最大長度為50個字符的Field對象將返回50DefinedSizeActualSize屬性值是當前記longGetFieldActualSize(long RecordsetFieldFields集合. FieldRecordset集中的一列.Fields*GetFields();FieldPtrGetField(longlIndex);const_RecordsetPtr&Remarks:添加新的.先AddNew(),然后用PutCollect()設置每列的值,Update()更新數據庫.BOOL Update方法前對當前記錄或新記錄所作的任何更改Remarks:使用CancelUpdate方法可取消對當前記錄所作的任何更改或放棄新添加的記錄.Update方法后將無法撤消對當前記錄或新記錄所做的更改,除非更改是可以用RollbackTrans方法回卷的事務的一部分,或者是可以用CancelBatch方法取消的批更新的一部分.CancelUpdate方法時添加新記錄,AddNew之前的當前如果尚未更改當前記錄或添加新記錄,CancelUpdate方法將產生錯誤BOOL CancelBatch取消掛起的批更新 AffectEnum值, AdAffectCurrent僅取消當前記錄的掛起更新AdAffectGroupFilter屬性設置的記錄取消掛起更新.使用該選項時,Filter屬性設置為合法的預 默認值.取消Recordset對象中所有記錄的掛起更新,Filter屬性設置所隱藏的任何記錄NameDelete AffectEnum值,Delete方法所影響的記錄數常 說 Filter屬性設置的記錄.要使用該選項,必須將Filter屬性設置為有效的預定義常量之一. adAffectAllChapters刪除所有子集記錄.MoveFirstRecordse中的第一個記錄.MoveLastRecordset中的最后一個記錄.MoveNext方法將當前記錄向前移動一個記錄(向Recordset的底部).如果MoveNext方法,則ADO將當前記錄設置到Recordset(EOFTrue)的尾記錄之后.EOFTrue時試圖向前移動Recordset對象必須支持書簽或向后游標移動;否則方法調用將產生錯誤MovePrevious方法,ADO將當前記錄設置在Recordset(BOFTrue)的首記錄之前.BOF屬性為True時向后移動將產生錯誤.Recordset對象不支持書簽或向后游標移動,MovePrevious方法將CacheSize屬性創建記錄緩存,通過Move方法支持向后游標移動.由于RecordsetMoveFirst方法;這樣做可使提供者重新執行生成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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論