飘飘悠悠 发表于 2015-1-16 22:21:50

MSSQL教程之ADO三年夜工具具体教程[属性、办法、事务...

既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。Connection工具

属性

属性称号数据范例和用处
Attributes可读写Long范例,经由过程两个常数之和指定是不是利用保存事件(retainningtransactions)。常数adXactCommitRetaining暗示挪用CommitTrans办法时启动一个新事件;常数adXactAbortRetaning暗示挪用RollbackTrans办法时启动一个新事件。默许值为0,暗示不利用保存事件。
CommandTimeout可读写Long范例,指定中断某个相干Command工具的Execute挪用之前必需守候的工夫。默许值为30秒。
ConnectionString可读写String范例,供应数据供应者或服务供应者翻开到数据源的毗连所必要的特定信息
ConnectionTimeout可读写Long范例,指定中断一个失利的Connection.Open办法挪用之前必需守候的工夫,默许值为15秒。
CursorLocation可读写Long范例,断定是利用客户端(adUseClient)游标引擎,仍是利用服务器端(adUseServer)游标引擎。默许值是adUseServer。
DefaultDatabase可读写String范例,假如ConnectString中未指定命据库称号,就利用这里所指定的称号,对SQLServer而言,其值一般是pubs
IsolationLevel可读写Long范例,指定和其他并发事件交互时的举动或事件。见IsolationLevel常数
ModeLong范例,指定对Connection的读写权限。见Mode常数
Provider可读写String范例,假如ConnectionString中未指定OLEDB数据或服务供应者的称号,就利用这时候指定的称号。默许值是MSDASQL(MicrosoftOLEDBProviderforODBC)。
State可读写Long范例,指定毗连是处于翻开形态,仍是处于封闭形态或两头形态。见State常数
Version只读String范例,前往ADO版本号。

注重:下面所列出的年夜多半可读写的属性,只要当毗连处于封闭形态时才是可写的。

只要当用户为Connection工具用BeginTrans...CommitTrans...RollbackTrans办法界说了尽心尽力,事件断绝水平的指定才真正无效。假如有多个数据库用户同时实行事件,那末使用程序中必需指定怎样呼应运转中的其他事件。

办法

办法用处
BeginTrans初始化一个事件;厥后必需有CommitTrans和/或RollbackTrans相照应
Close封闭毗连
CommitTrans提交一个事件,以完成对数据源的永世改动(请求利用之前必需挪用了BeginTrans办法)
Execute从SELECTSQL语句前往一个forward-onlyRecordset工具,也用来实行那些不前往Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句
Open用毗连字符串来翻开一个毗连
OpenSchema前往一个Recordset工具以供应数据源的布局信息(metadata)
RollbackTrans作废一个事件,恢复对数据源做的一时性改动(请求利用之前必需挪用了BeginTrans办法)

注:只要Execute、Open和OpenSchema三个办法才干承受变元参数。Execute的语法为:
cnnName.ExecutestrCommand,]
strCommand的值能够是SQL语句、表名、存储历程名,也能够是数据供应者所能承受的恣意字符串。为了进步功能,最好为lngOptions参数指定符合的值(详见lngOptions参数用到的常数),以使供应者注释语句时不必再往判断其范例。可选参数lngRowsAffected将前往INSERT、UPDATE或DELETE查询实行今后所影响的数量。这些查询会前往一个封闭的Recordset工具。一个SELECT查询将前往lngRowsAffected值为0而且前往带有一行或多行内容的翻开的forward-onlyRecordset。

事务

事务称号触发机会
BeginTransCompleteBeginTrans办法实行今后。
程序代码:PrivateSubcnnName_BeginTransComplet(ByValTransactionLevelAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
CommitTransCompleteCommitTrans办法实行今后
程序代码:PrivateSubConnection1_CommitTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ConnectComplete乐成创建到数据源的Connection以后
程序代码:PrivateSubConnection1_ConnectComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
DisconnectConnection封闭以后
程序代码:PrivateSubConnection1_Disconnect(adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ExecuteComplete完成Connection.Execute或Command.Execute之时
程序代码:PrivateSubConnection1_ExecuteComplete(ByValRecordsAffectedAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
InfoMessage一个Error工具被增加到ADODB.Connectio.Error汇合之时
程序代码:PrivateSubConnection1_InfoMessage(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
RollbackTransCompleteRollbackTrans办法实行以后
程序代码:PrivateSubConnection1_RollbackTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillConnect行将挪用Connection.Open办法之时
程序代码:PrivateSubConnection1_WillConnect(ConnectionStringAsString,UserIDAsString,PasswordAsString,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillExecute行将挪用Connection.Execute或Command.Execute办法之时
程序代码:PrivateSubConnection1_WillExecute(SourceAsString,CursorTypeAsADODB.CursorTypeEnum,LockTypeAsADODB.LockTypeEnum,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)

注:个中的adStatus参数所用到的常数的称号和寄义详见adStatus所用的常数

常数

IsolationLevel常数

常数寄义
adXactCursorStability只同意读其他事件已提交的改动(默许值)
adXactBrowse同意读其他事件未提交的改动
adXactChaos本领务不会掩盖其他位于更高断绝水平的事件所做的改动
adXactIsolated一切事件互相自力
adXactReadCommitted同等于adXactCursorStability
adXactReadUncommitted同等于adXactBrowse
adXactRepeatableRead克制读其他事件的改动
adXactSerializable同等于adXactIsolated
adXactUnspecified不克不及断定供应者的事件断绝水平

Mode常数

常数寄义
adModeUnknown未指定命据源的毗连允许权(默许值)
adModeRead毗连是只读的
adModeReadWrite毗连是可读写的
adModeShareDenyNone不回绝其他用户的读写会见(JetOLEDBProvider的默许值)
adModeShareDenyRead回绝其他用户翻开到数据源的读毗连
adModeShareDenyWrite回绝其他用户翻开到数据源的写毗连
adModeShareExclusive以独有体例翻开数据源
adModeWrite毗连是只写的

State常数

常数寄义
adStateClosedConnection(或其他工具)是封闭的(默许值)
adStateConnecting正在毗连数据源的形态
adStateExecutingConnection或Command工具的Execute办法已被挪用
adStateFetching前往行(row)到Recordset工具
adStateOpenConnection(或其他工具)是翻开的(举动的)

Execute办法中lngOption参数用到的常数

Command范例常数寄义
adCmdUnknownCommand范例不决(默许值),由数据供应者往辨别Command语法
adCmdFileCommand是和工具范例响应的文件称号
adCmdStoredProcCommand是存储历程称号
adCmdTableCommand是能发生外部SELECT*FROMTableName查询的表称号
adCmdTableDirectCommand是能间接从表中猎取行内容的表称号
adCmdTextCommand是一条SQL语句

ADODB事务处置子历程参数adStatus所用的常数

常数寄义
adStatusCancel操纵被用户作废
adStatusCnatDeny操纵不克不及回绝其他用户对数据源的会见
adStatusErrorsOccurred操纵招致毛病并已送到Errors汇合中
adStatusOK操纵乐成
adStatusUnWantedEvent操纵过程当中一个未意料到的事务被激活

Command工具

Command工具的次要目标是实行参数化的存储历程。其情势要末是一时筹办(prepared),要末是耐久的预编译(precompiled)过的SQL语句。假如想(存储)一个或多个查询以供在统一Connection上屡次实行,Command工具也是很有效的。当想创立Recordset时,一种高效的办法是绕过Command工具而接纳Recordset.Open办法。

属性

属性称号数据范例和用处
ActiveConnection指针范例,指向Command所联系关系的Connection工具。关于现存的已翻开毗连,可以使用SetcmmName.ActiveConnection=cnnName。别的,也能够不必相干Connection工具称号而利用无效的毗连字符串往创立一个新的毗连。默许值为Null。
CommandText可读写String范例。为ActiveConnection指定一条SQL语句、表名、存储历程名或供应者能承受的恣意字符串。CommandType属性的值决意了CommandText属性值的格局。默许值为空字符串:""
CommandTimeout可读写Long范例,指定中断一个Command.Execute挪用之前必需守候的工夫。这时候的值优先于Connection.ComandTimeout中的设定值。默许值为30秒。
CommandType可读写Long范例,指定命据供应者该怎样注释CommandText属性值。CommandType等效于Connection.Execute办法中的可选参数lngOption。详见CommandType所用到的常数。默许值为adCmdUnkown.
Name可读写String范例,指定Command的称号。
Prepared可读写Boolean范例,判别数据源是不是把CommandText中的SQL语句编译为preparedstatement(一种一时性存储历程)。preparedstatement仅存活于Command的ActiveConnection性命周期中。很多客户/服务器RDBMS,包含SQLSERVER,都撑持preparedstatement。假如数据源不撑持preparedstatement,则把该属性设为True,将招致一个自陷毛病。
State可读写Long范例,指定Commnad形态。见State常数。

注重:最好每次都为CommandType指定的一个符合的常数值,不然会下降体系运转的效力。

办法

办法用处
Createparameter在实行该办法之前,必需起首声明一个ADODB.Parameter工具。挪用语法为:
程序代码:cmmName.CreateParameter]]]]
Execute挪用语法同Connection.Execute大抵不异。

常数

State常数

常数寄义
adStateClosedConnection(或其他工具)是封闭的(默许值)
adStateConnecting正在毗连数据源的形态
adStateExecutingConnection或Command工具的Execute办法已被挪用
adStateFetching前往行(row)到Recordset工具
adStateOpenConnection(或其他工具)是翻开的(举动的)

CommandType所用到的常数

Command范例常数寄义
adCmdUnknownCommand范例不决(默许值),由数据供应者往辨别Command语法
adCmdFileCommand是和工具范例响应的文件称号
adCmdStoredProcCommand是存储历程称号
adCmdTableCommand是能发生外部SELECT*FROMTableName查询的表称号
adCmdTableDirectCommand是能间接从表中猎取行内容的表称号
adCmdTextCommand是一条SQL语句

Recordset工具

属性

属性称号数据范例和用处
AbsolutePage可读写Long范例,要末是设置或前往以后纪录所处的页面序号,要末是一个PositionEnum常数,见AbsolutePage用到的常数。在猎取或设置AbsolutePage的值之前,必需先设定PageSize的值。AbsolutePage是从1入手下手计数的。假如以后纪录位于第一页时,AbsolutePage的前往值为1,对AbsolutePage设置将使以后纪录指针指向指定页的第一笔记录。
AbsolutePosition*可读写的Long范例(从1入手下手计数),设置或前往以后纪录年处的地位。AbsolutePosition的最年夜取值是RecordCount属性的值。
ActiveCommand可读写的String范例,Recordset所联系关系的先前翻开的Command工具称号
ActiveConnection指针范例,指向Recordset所联系关系的先前翻开的Connection工具,或指向一条完全无效的ConnectionString串值。
BOF*只读Boolean范例,若为True,标明纪录指针已位于Recordset第一笔记录之前,而且没有了以后纪录
Bookmark*可读写variant范例,前往对特定纪录的援用或利用一个Bookmark值使纪录指针指向特定纪录
CacheSize*可读写Long范例,指定当地Cache中所存的纪录条数,最小(默许值)为1。若增添了CacheSize的值,则在活动Recordset以猎取更多纪录时,能削减与服务器的通讯次数。
CursorLocation可读写Long范例,指定可活动游标的地位,即CursorType是位于客户端仍是位于服务器端,见CursorLocation用到的常数。默许值是利用OLEDB数据源供应的游标。
CusrsorType*可读写Long范例,指定Recordset游标的范例,见CursorType用到的常数,默许值是forward-only游标
DataMember指针范例,指向联系关系的DataEnvironment.Command工具
DataSource指针范例,指向联系关系的DataEnvironment.Connection工具
EditMode*只读Long范例,前往Recordset的编纂形态,见EditMode用到的常数
EOF*只读Boolean范例,若为True,标明纪录指针已超越Recordset的最初一笔记录,而且没有了以后纪录。
Filter*可读写variant范例,要末是一前提表达式(一条无效的SQLWHERE子句但又不呈现保存字WHERE),要末是指向特定纪录的Bookmark数组,要末是一个Filter常数,详见Filter用到的常数。
LockType*可读写Long范例,指定翻开Recordset所利用的纪录锁定办法。默许值是只读,对应于forward-only游标的只读特征。见LockType属性用到的常数。
MarshalOptions可读写Long范例,指定客户端修改后,应前往哪一个纪录汇合,此属性仅合适于不罕见的ADOR.Recordset工具,此工具是RDS.ADOR.Recordset工具成员之一。
MaxRecords*可读写Long范例,指定SELECT查询或存储历程前往的最年夜纪录条数,默许值为0,即全体前往
PageCount只读Long范例,前往Recordset一切的页数,必需设定了PageSize的值,PageCount的前往值才是真正成心义的。假如Recordset不撑持PageCount属性,则前往值为-1
PageSize可读写Long范例,设置或前往一个逻辑页所包括的纪录条数。利用逻辑页可把年夜的Recordset分化为多个易处置的小部分。一般的做法是把PageSize设为DataGrid、MsFlexGrid或条理型的FlexGrid控件所能显现的纪录条数。PageSize和锁定Jet(2k)或锁定SQLServer(6.5版及更早版本,2k;7.0版,8k)数据库时用到的表页面巨细有关
PersistFormat可读写Long范例,设置或前往由挪用Save办法所创立的Recordset文件的格局。以后唯一一个值adPersistADTG(默许格局:AdvancedDataTableGram)
RecordCount*只读Long范例,假如Recordset撑持近似定位或撑持书签,则前往带可活动游标的Recordset所含有的纪录数;假如不撑持,必需利用MoveLast办法以获得的确掩盖了一切纪录的正确的RecordCount数值。假如forward-only范例Recordset有一条或多笔记录,Recordset前往-1(True),任何范例的空的Recordset都将前往0(False)
Sort*可读写String范例,包括一条不含保存字ORDERBY的SQLORDERYBY子句,用以指定Recordset的排序体例
Source*可读写String范例,能够是SQL语句、表名、存储历程名或相干Command工具名。假如供应了Command工具名,则Source将前往Command.CommandText的值。使用Open办法的参数lngOptions能够指定供应给Source值的范例
State可读写Long范例,为工具形态常数之一。见State常数
Status只读Long范例,标明对Recordset举行批处置或其他多纪录(bulk)操纵后的形态。见Status属性用到的常数

注重:上表所列属性是ADODB.Recordset工具的尺度属性,即那些被干系数据库的年夜多半通用OLEDB数据供应者所撑持的属性。带星号的属性暗示它与DAO.Recordset或rdoResultset工具的响应属性完整一样或很靠近。

办法

办法用处
AddNew*向可更新的Recordset增加一条新纪录。挪用语法为rstName.AddNew[{varField|avarFields},{varValue|avarValuese}],个中varField是单个字段名,avarFields是字段名数组。varValue是单个字段值,avarValue是由avarFields指定字段的值所构成的数组。挪用Update办法则把新纪录加到数据库的表中。假如向主关头字不是第一个字段的Recordset中增加纪录,则必需在AddNew办法中指定主关头字的称号和值
Cancel作废异步查询的实行,中断存储历程或复合SQL语句创立多个Recordset,挪用语法为rstName.Cancel
CancelBatch*作废LockEdit值为BatchOptimistic的Recordset的行将失效的批量更新操纵,挪用语法为:rstName.CancelBatch,可选参数lngAffectRecords的取值见lngAffectRecords用到的常数
Clone复制一个带有自力纪录指针的Recordset工具,挪用语法为:SetrstDupe=rstName.Clone()
Close封闭Recordset工具,今后能够从头设Recordset的属性并利用Open办法来再度会见Recordset。挪用语法为:rstName.Close
Delete*假如Recordset的LockEdit属性值未设为adLockBatchOptimistic,立即从Recordset和响应表中删除以后纪录
Find寻觅满意指定前提的纪录。挪用语法为:rstName.FindstrCriteria[,lngSkipRecords,lngSearchDirection[,lngStart]],个中strCriteria是不含WHERE关头字的SQLWHERE子句,可选参数lngSkipRecords是使用Find前所跳过的纪录数量,lngDirection指定查找偏向(adSearchForward,和adSearchBackward,个中adSearchForward是默许值),可选参数lngStart指定了从哪儿入手下手查找,其值要末是一个Bookmark值,要末是Bookmark常数,见varStart参数用到的Bookmark常数。
GetRows前往一个二维variant数组(行、列),挪用语法为avarname=rstName.GetRows(lngRows[,varStart[,{strFieldName|lngFieldIndex|avarFieldNames|avarFieldIndexes}]],个中lngRows是前往纪录行数,varStart指定从哪儿入手下手查找,其值要末是一个Bookmark值,要末是Bookmark常数,见varStart参数用到的Bookmark常数。第三个参数能够是单个列(字段)的称号或索引,也能够是多个列称号或索引构成的variant数组。假如不指定第三个参数,GetRows前往Recordset中一切列。
GetString默许情形下,前往指定命目纪录的String串值,纪录间由前往代码分开。纪录内由tab分开。挪用语法为:strClip=rstname.GetString(lngRows,[,strCloumnDelimiter[,strRowDelimiter,]])。个中lngRows为前往纪录行数,strColumnDelimiter为可选的列分开符(vbTab是默许值),strRowDelimiter是可选的行分开符(vbCr是默许值),strNullExpr是可选参数,用于碰着Null值时的替换值(默许值是空字符串)。GetString的次要用处是经由过程把控件的Clip属性设为strClip来处置MSFlexGrid或MSHFlexGrid控件
Move*从以后纪录挪动纪录指针。挪用语法为:rstName.MovelngNumRecords[,varStart],个中lngNumRecords是要跳过的纪录数,可选选参数varStart指定从哪入手下手挪动。其值要末是一个Bookmark值,要末是Bookmark常数,见varStart参数用到的Bookmark常数。
MoveFirst*挪动纪录指针到第一笔记录,挪用语法为:rstName.MoveFirst
MoveLast*挪动纪录指针到最初一笔记录,挪用语法为:rstName.MoveLast
MoveNext挪动纪录指针到下一笔记录,挪用语法为:rstName.MoveNext。它是能用于forward-onlyRecordset的独一Move办法
MovePrevious*挪动纪录指针到前一笔记录,挪用语法为:rstName.MovePrevious
NextRecordset前往别的的Recordset,它一般由能发生多个Recordset的复合SQL语句(如SELECT*FROMorders;SELECT*FROMcustomers)或存储历程来创立。挪用语法为Next=rstName.NextRecordset[(lngRecordsAffected)],个中可选参数lngRecordsAffected指定前往到rstNext中往的纪录数量。假如已不存在Recordset,rstNext被设为Nothing
Open在一个举动Command或Connection工具上翻开一个Recordset,挪用语法为:rstName.Open]]]]。这些参数都是可选的,
Requery从头从表中猎取Recordset的内容,等效于Close后再Open。它是一个资本会合型操纵。语法为:rstName.Requery
Resync*从头从表中猎取部分Recordset内容。挪用语法为rstName.Resync,个中lngAffectRecords的取值见lngAffectRecords用到的常数。假如把该参数设为adAffectCurrent或adAffectGroup,则比adAffectAll(默许值)所耗的资本要少。
Save创立包括Recordset永世性拷贝的文件。挪用语法为rstName.SavestrFileName。个中strFileName为路径和文件名。一般用.rst作为文件的扩大名。
Supports假如数据供应者撑持指定的游标相干的办法,则前往True,不然前往为False。挪用语法为Supported=rstname.Supports(lngCursorOptions).关于lngCursorOptions,见Supports办法用到的常数。
Update*使对Recordset的修正对底层数据源中的表失效。关于批量操纵,Update办法只使修正对当地(Cached)Recordset失效。挪用语法为rstName.Update
UpdateBatch*合对指量范例的Recordset(LockType属性值为adBatchOptimistic,CursorType属性值为adOpenKeyset或adOpenStatic)所做的修正对底层数据源中的表失效。挪用语法为rstName.UpdateBatch,个中lngAffectRecords的取值见lngAffectrecords用到的常数。

注:ADODB.Recordset工具不撑持Edit办法。为了改动ADODB.Recordset工具以后纪录的一个或多个字段的值,能够先利用rstName.Fields(n).Value=varValue把响应字段的值改成所必要的值,尔后实行rstName.Update便可。

事务

事务称号触发机会
EndOfRecordset纪录指针试图移到最初一笔记录以外时
FieldchangeComplete字段值的改动完成以后
MoveCompleteMove或Move...办法实行以后
RecordsChangeComplete对单个纪录编纂完成今后
RecordsetChangeComplete缓存中的改动对底层表失效以后
WillChangField对字段值改动之前
WillChangeRecord对单个纪录改动之前
WillChangeRecordset缓存中的改动对底层表失效之前
WillMoveMove或Move...办法实行之前

注:事务处置模块的函数头几近都用到了adReason参数。该参数的取值见adReason参数用到的常数。

常数

AbsolutePage属性用到的常数

常数寄义
adPosUnknown数据供应者不撑持页面,Recordset为空,或数据供应者不克不及断定页码。
adPosBOF纪录指针定位于文件开首(BOF属性值为True)
adPosEOF纪录指针定位于文件开头(EOF属性值为True)

CursorLocation属性用到的常数

常数寄义
adUseClient利用客户端游标库供应的游标。ADODB.Recordset请求客户端游标
adUseServer利用数据源供应的游标,一般(但非相对)位于服务器上(默许值)

CursorType属性用到的常数

常数寄义
adOpenForwardonly供应单向挪动游标和只读Recordset(默许值)
adOpenDynamic供应可转动游标,可显现其他用户对Recordset所做的修改(包含增加新纪录)
adOpenKeyset供应可转动游标,只埋没其他用户所做的修改,相似于dynaset范例的DAO.Recordset
adOpenStatic供应一个位于Recordset静态拷贝上的可转动游标,相似于snapshot范例的DAO.Recordset,但多了可更新特征

EditMode属性用到的常数

常数寄义
adEditNone无正在举行的编纂操纵(默许值)
adEditAdd一时增加一笔记录,但还没有存进数据库的表中
adEditInProgress以后纪录中的数据已修改,但还没有存进数据库的表中

Filter属性用到的常数

常数寄义
adFilterNone撤除已有的过滤器,显现Recordset中的一切纪录(等效于把Filter属性置为空串,默许值)
adfilterAffectedRecords只显现前次CancelBatch、Delete、Resync或UpdateBatch办法实行后所影响的纪录
adFilterFetchedRecords只以后Cache中的纪录,纪录条数由CacheSize来断定
adFilterPendingRecords只显现已修改但还没有被数据源处置的纪录(仅合用于批量更新形式)

LockType属性用到的常数

常数寄义
adLockRecordOnly指定只读会见(默许值)
adLockBatchOptimistic利用批量更新形式而不是默许的当即更新形式
adLockOptimistic利用悲观锁(仅在更新过程当中才锁定纪录或页面)
adLockPessimistic利用失望锁(编纂或更新全部过程当中均锁定纪录或页面)

State常数

常数寄义
adStateClosedConnection(或其他工具)是封闭的(默许值)
adStateConnecting正在毗连数据源的形态
adStateExecutingConnection或Command工具的Execute办法已被挪用
adStateFetching前往行(row)到Recordset工具
adStateOpenConnection(或其他工具)是翻开的(举动的)

Status属性用到的常数(仅合用于Batch或BulkRecordset操纵)

常数寄义
adRecOK乐成更新
adRecNew乐成增加
adRecModified乐成修正
adRecDeleted乐成删除
adRecUnmodified无修改
adRecInvalid未保留:Bookmark属性有效
adRecMultipleChanges未保留:保留会影响其他纪录
adRecPendingChanges未保留:纪录援用了一个守候拔出操纵
adRecCanceled未保留:操纵被作废
adRecCantRelease未保留:现有纪录值制止了保留
adRecConcurrencyViolation未保留:悲观并发锁产生了成绩
adRecIntegrityViolation未保留:操纵会影响分歧性
adRecMaxChangesExceeded未保留:存在太多的守候修改
adRecObjectOpen未保留:翻开存贮工具产生抵触
adRecOutofMemory未保留:内存不敷
adRecPermissionDenied未保留:用户权限不敷
adRecSchemaViolation未保留:纪录的布局不切合数据库中的界说
adRecDBDeleted未保留或删除:纪录已被删除

lngAffectRecords参数用到的常数

Command范例常数寄义
adAffectAll包含Recordset工具的一切纪录,那些被Filter属性过滤埋没的纪录也盘算在内(默许值)
adAffectCurrent只包含以后纪录
adAffectGroup只包含那些切合以后Filter前提的纪录

varStart参数用到的Bookmark常数

常数寄义
adBookmarkCurrent从以后纪录入手下手(默许值)
adBookmarkFirst从第一笔记录入手下手
adBookmarkLast从最初一笔记录入手下手

Supports办法用到的常数

常数寄义
adAddNew挪用AddNew办法
adApproxPosition设置和失掉Absoluteposition和AbsolutePage属性值
adBookmark设置和失掉Bookmark属性值
adDelete挪用Delete办法
adHoldRecords猎取别的的纪录或改动猎取纪录指针的地位,但不提交未断定的改动
adMovePrevious挪用GetRows,Move,MoveFirst和MovePrevious办法(标明是一个双向可转动游标)
adResync挪用Resync办法
adUpdate挪用Update办法
adUpdateBatch挪用UpdateBatch和CancelBatch办法

adReason参数用到的常数

常数寄义
AdRsnAddNew挪用了AddNew办法
AdRsnClose挪用了Close办法
AdRsnDelete挪用了Delete办法
AdRsnFirstChange第一次对纪录字段值做了修正
AdRsnMove挪用了Move办法
AdRsnMoveFirst挪用了MoveFirst办法
AdRsnMoveLast挪用了MoveLast办法
AdRsnMovePrevious挪用了MovePrevious办法
AdRsnRequery挪用了Requery办法
AdRsnResync挪用了Resync办法
AdRsnUndoAddNewAddNew操纵被用户作废
AdRsnUndoDeleteDelete操纵被用户作废
AdRsnUndoUpdateUpdate操纵被用户作废
AdRsnUpdate挪用了Update办法
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。

海妖 发表于 2015-1-19 09:27:02

对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。

深爱那片海 发表于 2015-1-28 05:54:45

是要和操作系统进行Socket通讯的场景。否则建议慎重!

谁可相欹 发表于 2015-2-5 16:07:17

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

灵魂腐蚀 发表于 2015-2-12 22:57:56

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

柔情似水 发表于 2015-3-3 11:29:15

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

金色的骷髅 发表于 2015-3-11 10:38:31

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

莫相离 发表于 2015-3-18 07:56:54

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

乐观 发表于 2015-3-25 14:34:45

如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
页: [1]
查看完整版本: MSSQL教程之ADO三年夜工具具体教程[属性、办法、事务...