红外成像项目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

提交评论