vfp9CA的新方法.doc_第1页
vfp9CA的新方法.doc_第2页
vfp9CA的新方法.doc_第3页
vfp9CA的新方法.doc_第4页
vfp9CA的新方法.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vfp9 CursorAdapter的新方法新属性vfp9 CursorAdapter的新方法 DelayedMemoFetchVisual FoxPro 8的CursorAdapter有一个FetchMemo属性。如果设置FetchMemo= .F.,那Memo字段的内容会不读取,但如果需要里面的内容就会变的非常麻烦。Visual FoxPro 9开始有了DelayedMemoFetch方法。可以做到,CursorFill()的时候,Memo里面全空,但当光标移动到Memo字段的时候才自动读取当前条记录的Memo字段内容。这个方法能极大的提高读取带有Memo字段表的效率。注意:是当前一条记录的Memo字段内容。操作办法如下:1、FetchMemo = .F.2、FetchMemoDataSourceType = ca.DataSourceType3、FetchMemoDataSource = ca.DataSource4、FetchMemoCmdList 这个是最关键的,也是最麻烦的。oCA.FetchMemoCmdList= f1 , + ;f2 其中:f1,f2这里是Memo字段名简称;f0是关键字段名;this.RefreshAlias可以是this.Alias。翻译一下意思如下:Select Memo字段名From后台表名Whete关键字段名=?前台的Alias名.关键字段内容。注意:DelayedMemoFetch是个内置保护方法,在程序里是不能直接调用。DelayedMemoFetch方法执行一个CursorAdapter对象中目标记录的被延迟的备注字段的获取。CursorAdapter.DelayedMemoFetch(cMemoName)参数cMemoName指定将要获取的与CursorAdapter对象关联的临时表的备注字段的名称。说明应用于: CursorAdapter Class当 FetchMemo 属性被设定成“假”(.F.)时,能够执行一个被延迟备注字段的获取。延迟备注字段的获取可以防止备注字段的内容在调用 CursorFill和CursorRefresh方法时被更新。当应用程序在访问备注字段时,才尝试获取该备注字段的内容。下列的四个CursorAdapter成员使你能够使用延迟备注字段的获取。 DelayedMemoFetch 方法 FetchMemoDataSourceType属性 FetchMemoDataSource属性 FetchMemoCmdList属性DelayedMemoFetch 方法为当前记录被延迟获取的备注字段执行获取操作,该备注字段在cMemoName属性中指定。该方法将返回指定的备注字段的内容。如果不能获取数据,将引发一个错误。注意: 为了保证CursorAdapter获取被延迟的备注字段,与CursorAdapter关联的临时表必须以独占方式打开。注意: 除了执行延迟备注字段的获取之外,DelayedMemoFetch 方法从不被调用。在该方法执行期间不应该改变当前记录。为了允许对目标记录数据的访问,Visual FoxPro打开一个当前记录的只读目标游标(Cursor)。该只读游标以独占方式代开,其别名包含在RefreshAlias属性中。如果RefreshAlias属性为空,DelayedMemoFetch方法不会被Visual FoxPro数据引擎激发。为了能够用DelayedMemoFetch方法获取通用字段(General)的内容,必须用CAST()函数将字段内容转换为二进制格式(Blob)。下面的示例演示了使用DelayedMemoFetch方法通过Visual FoxPro OLE DB Provider返回Northwind的Categories表的备注和通用字段内容。CLOSE DATABASES ALLCLEARLOCAL oCA AS CursorAdapterLOCAL oConn AS ADODB.ConnectionLOCAL oRS AS ADODB.RecordsetLOCAL cConnStr,lcNorthwindFilelcNorthwindFile = HOME()+SamplesNorthwindnorthwind.dbccConnStr = Provider=VFPOLEDB.1;Data Source=&lcNorthwindFile.; + ; Password=;Collating Sequence=MACHINEoConn = CREATEOBJECT(ADODB.Connection)oConn.Open(cConnStr)oRS = CREATEOBJECT(ADODB.Recordset)oRS.ActiveConnection = oConnoRS.CursorLocation = 3 & 客户端临时表的数据源为本地表oRS.CursorType = 3 & 静态方式打开临时表oRS.LockType = 3 & 开放式锁定记录oCA=CREATEOBJECT(CADelayedFetch)oCA.DataSource = oRSIF !oCA.CursorFill() AERROR(aErrs) DISPLAY MEMORY LIKE aErrs RETURNENDIFGO TOPBROWSEDEFINE CLASS CADelayedFetch AS CursorAdapter FetchMemo = .F. DataSourceType = ADO SelectCmd = SELECT * From categories CursorSchema = categoryid I, categoryname C(15), description M, picture G UseCursorSchema = .T. FUNCTION DelayedMemoFetch(cFieldName) NODEFAULT IF UPPER(cFieldName) = UPPER(picture) RETURN CAST(DODEFAULT(cFieldName) AS W) ENDIF RETURN Modified value: + DODEFAULT(cFieldName) ENDFUNCENDDEFINEVFP9 CursorAdapter的新方法 RecordRefresh()使用方法:RecordRefresh()里有2个参数:1、nRecords表示要刷新几条记录;2、nRecordOffset记录偏移量,指是当前记录开始+几条记录。VFP8时如果时候前台有1000条记录,但CursorRefresh()也全部来一遍, 而且记录指针总是在第一条。现在有RecordRefresh()了,它能做到是刷新你指定的一条或者几条记录,而且能保持当前记录指针不变。这样能极大提高C/S程序的效率。RecordRefresh方法刷新指定记录的当前字段值。CursorAdapter.RecordRefresh(nRecords, nRecordOffset)参数nRecords指定刷新的连续记录 (物理顺序) 的数目。nRecords是一个大于等于0的整数。如果nRecords等于1或者省略 nRecords,则仅刷新当前记录的字段值。如果nRecords等于0,则不刷新字段值。nRecordOffset指定开始刷新的记录相对于当前记录号的偏移量(指定开始刷新的记录位于当前记录之前的记录数)。nRecordOffset是一个大于、小于或等于0的整数。例如,如果当前记录号为10,而nRecordOffset的值为4,则从第6条记录开始刷新。如果nRecordOffset等于0或省略nRecordOffset参数,则从当前记录开始刷新。返回值数字型。RecordRefresh方法返回被刷新的记录数,如果没有记录被刷新而且没有错误发生,则返回0。例如,如果所有的目标记录被缓冲插入或者nRecords等于0,则返回0。如果刷新失败,则返回一个负值,该值为成功刷新记录数的负值减去1。说明应用于:CursorAdapter类RecordRefresh方法用目标记录值刷新当前字段的值。可用CURVAL()函数确定当前字段的值。表或临时表必须以独占方式打开。刷新操作不支持缓冲插入,该操作将忽略缓冲插入,而不产生错误。 如果目标记录已经缓冲表或者记录改变,则这些改变将被禁止,而当前记录值被刷新。如果不能在至少一个基本表内定位目标记录,则不刷新目标记录的当前字段值,而且记录被标记为删除。除非nRecords属性所指定的记录全部刷新或者是发生错误,否则记录将一个接一个的被刷新。当刷新记录的键值不唯一,将引发一个错误。刷新操作遵从CursorAdapter的FetchMemo属性设置,除非在备注字段上建立索引。在这种情况下,将忽略FetchMemo属性设置而获取备注字段。可以用ESC键来中止RecordRefresh的长时间运行,并不会发生错误。可以用AERROR()函数来确定RecordRefresh方法失败的原因。不能用ON ERROR命令和TRY.CATCH.FINALLY命令来确定RecordRefresh方法失败的原因。RecordRefresh方法与REFRESH()函数相关联。如果REFRESH()函数被用于一个与CursorAdapter对象相关联的临时表,则RecordRefresh方法被CursorAdapter对象所调用。为了保持向后兼容,如果RecordRefresh方法失败,REFRESH()将返回0。注意:RecordRefresh方法使用CursorAdapter的属性。在Visual FoxPro 8 中,REFRESH()函数总是使用由CURSORSETPROP()函数设置的临时表属性,而CURSORGETPROP()函数忽略临时表是否与一个CursorAdapter对象相关联。VFP9 CursorAdapter的新事件 AfterRecordRefreshAfterRecordRefresh事件在RecordRefresh方法之后立即发生。PROCEDURE Object.AfterRecordRefresh LPARAMETERS nRecords, nRecordOffset, nRefreshed参数nRecords 传递给RecordRefresh方法的要刷新的记录数。nRecordOffset 传递给RecordRefresh方法的记录偏移量值。nRefreshed 从RecordRefresh方法返回的值。说明应用于:CursorAdapter类关于nRecords和nRecordOffset参数的其他信息,请参阅RecordRefresh方法,RecordRefresh方法的返回值传递给nRefreshed参数。注意:该事件仅发生于RecordRefresh方法之后,不每一次尝试刷新记录时都发生。可以在该事件中使用AERROR()函数,以确定RecordRefresh方法所引发的错误(如果发生)原因。VFP9 CursorAdapter的新事件 BeforeRecordRefreshBeforeRecordRefresh事件在RecordRefresh方法之前立即发生。PROCEDURE Object.BeforeRecordRefreshLPARAMETERS nRecords, nRecordOffset参数nRecords 指定被刷新的连续记录(物理顺序)的数目。这一个参数被传给 RecordRefresh方法。nRecordOffset 指定当前记录到开始刷新的记录的记录偏移量值(指定开始刷新的记录位于当前记录之前的记录数)。这个参数被传给RecordRefresh方法。说明应用于:CursorAdapter类nRecords和nRecordOffset参数都被传给RecordRefresh方法。关于nRecords和nRecordOffset参数其他信息,请参阅RecordRefresh方法。如果BeforeRecordRefresh事件失败或者不是返回一个逻辑真(.T.)值,则RecordRefresh方法不会执行,而且AfterRecordRefresh事件也不会发生。VFP9 CursorAdapter的新属性 ADOCodePageADOCodePage属性当使用ADO数据时,为CursorAdapter对象指定转换字符数据的代码页。设计和运行时可读写。CursorAdapter.AllowInsert = nCodePage 返回值nCodePage当使用ADO数据源时,转换字符数据所使用的代码页(整数)。如果指定了一个无效的代码页,将引发一个错误。缺省值为0。说明应用于:CursorAdapter类由ADOCodePage属性指定的代码页用于下列命令的字符转换: Select Insert Update Delete ConflictCheck InsertRefresh UpdateRefresh Refresh FetchMemo也用于所有传递给ADO数据源的字符参数和从ADO数据源获取的字符数据的转换。在调用CursorFill或CursorRefresh方法之后,打开的临时表在被填充或刷新时,其代码页转换为ADOCodePage属性所指定的代码页。这表示不管当前的ADOCodePage属性如何设置,从数据源获取的字符数据都用绑定的代码页进行转换。包括在正常获取过程、自动获刷新、按要求刷新以及备注字段延迟获取时候。仅能为一个基于ADO的临时表(ADO-based cursor)绑定一个代码页(象用ADOCodePage属性指定)。然而,ADOCodePage还可用于非基于ADO的临时表(non ADO-based cursors)。当一个非基于ADO的临时表被附加到一个CursorAdapter对象时,ADOCodePage的设置用于在自动刷新、按需刷新以及延迟获取备注字段时所获取的字符数据的转换。通过改变ADOCodePage属性值并执行CursorRefresh方法可以将一个临时表重新绑定到一个不同的代码页上。通过将ADOCodePage作为参数传递给CURSORGETPROP()函数,可以返回与基于ADO的临时表相关联的代码页。如果用0之外的代码页作为转换参数,而且该参数由CursorAdapter创建(Parameters.Refresh方法不能创建),则参数创建为adVarWChar/adLongVarWChar比创建为adVarChar/adLongVarChar更合适。VFP9 CursorAdapter的新属性 ConflictCheckCmdConflictCheckCmd属性设置一个特定的命令用于在CursorAdapter的ConflictCheckType属性设置为4时进行更新或删除冲突检查。设计和运行时可读/写。ConflictCheckCmd可用于本地、开放数据库连接(ODBC)和ActiveX Object(ADO)数据源。当使用ADO时,CursorAdapter对象将使用一个ADO命令对象执行SQL UPDATE或DELETE操作。除此之外,Visual FoxPro忽略ConflictCheckCmd。CursorAdapter.ConflictCheckCmd = cValue参数cValue 设置一个特定的命令字符串,该命令字符串将作为UpdateCmd和DeleteCmd属性进行更新或删除冲突检查时参照的命令描述。cValue的缺省置为一个空字符串。说明应用于:CursorAdapter类VFP9 CursorAdapter的新属性 ConflictCheckTypeConflictCheckType属性指定在用CursorAdapter的UpdateCmd和DeleteCmd属性指定的命令进行更新或删除操作时如何进行冲突检查。设计和运行时可读-写。可以将ConflictCheckType用于本地、开放数据库连接(ODBC)和 ActiveX Object(ADO)数据源。当使用ADO时,CursorAdapter对象将使用一个ADO命令对象进行SQL UPDATE或DELETE操作。除此之外Visual FoxPro将忽略ConflictCheckType。CursorAdapter.ConflictCheckType = nValue返回值nValue 指定一个表示如何处理冲突检查的数字值。下表列出了nValue的可用值。nValue描述0不执行检查。(默认值)1在行更新模式下,对SQL UPDATE或DELETE操作进行更新冲突检查。如果明确发生冲突,UpdateCmd或DeleteCmd属性指定命令不会影响任何记录,并返回错误信息“更新冲突 (错误 1585)”。2在单行更新模式下,在进行SQL UPDATE或DELETE操作时检查键的唯一性。如果UpdateCmd或DeleteCmd属性指定任何命令影响的记录超过一条,则返回错误信息“警告:KeyField属性定义的表Alias的键值不唯一。(错误 1495)”3执行1和2两项的检查。4在UpdateCmd和DeleteCmd属性所指定的命令之后,附加ConflictCheckCmd属性所指定的特定命令。注意:由于ODBC和ADO的局限性,如果UpdateCmd和DeleteCmd属性包含的命令超过一条,设置为1、2和3可能不会正确工作。可能造成不能正确地返回一批中受各个命令影响的行数。因此,一般推荐设定ConflictCheckType为4并在ConflictCheckCmd属性中指定一个特定的命令,或者确定只有一个SQL UPDATE或DELETE命令被执行。同样,Visual FoxPro将在TABLEUPDATE()批操作时忽略1、2和3的设置。说明应用于:CursorAdapter类VFP9 CursorAdapter的新属性 FetchMemoCmdListFetchMemoCmdList属性为DelayedMemoFetch方法指定命令,DelayedMemoFetch方法使用这些命令获取备注字段。设计和运行时可读/写。CursorAdapter.FetchMemoCmdList = cCommands参数cCommands 字符型。cCommands是用逗号分隔的备注字段名与对应的备注字段获取命令对列表。备注字段的获取命令必须用方括号()括起来,并确保在右方括号()与分隔多个备注字段名和获取命令对的逗号之间没有空格。下面的例子演示了两个备注字段名和相应获取命令对的正确格式:oCA.FetchMemoCmdList=;memofield1 , ;Memofield2 可以指定数据源支持的并能正确地返回一个记录的任何命令。你能叙述被数据来源支援并且完全地返回一个记录的任何指令。如果FetchMemoCmdList属性中没有指定目标备注字段的获取命令,CursorAdapter将尝试生成获取命令。所生成的获取命令是基于数据源和CursorAdapter的Tables、KeyFieldList、UpdateNameList属性。如果 Visual FoxPro不能生成一个适当的命令,将引发一个错误。说明应用于:CursorAdapter类只有第一个结果集被DelayedMemoFetch方法使用。如果从源字段到目标字段的数据转换不被支持,会产生一个错误。对于目标字段有效的规则也不会执行。如果不能定位目标记录,本地的Visual FoxPro DelayedMemoFetch在目标记录上作删除标记并产生一个错误。对于ADODB记录集,将忽略FetchMemoCmdList属性设置。如果不指定关键字字段,CursorAdapter的Tables、KeyFieldList和UpdateNameList属性也被忽略,而且不会引发错误。将用记录集的当前字段值对字段进行刷新。如果ADODB记录集的锁定类型不是adLockBatchOptimistic或adLockUnspecified,在字段值被返回之前,CursorAdapter将调用 ResyncValues参数为adResyncAllValues的Resync方法刷新记录。VFP9 CursorAdapter的新属性 FetchMemoDataSourceFetchMemoDataSource属性为DelayedMemoFetch方法指定数据源。设计和运行时可读/写。CursorAdapter.FetchMemoDataSource = DataSource参数DataSource指定一个现有的可用数据源类型的引用。DataSource只是作为指针指向一个真实的数据源,因此,在运行时数据源必须是存在的。下表列出了FetchMemoDataSourceType属性可用的DataSource值。DataSourceDataSource类型ADO引用一个有效的ActiveX Data Object(ADO)命令对象。ODBC表示一个有效的开放数据库连接(ODBC)连接句柄的正整数或内存变量。Native,空值(.NULL.)或空字符串()忽略。缺省值为空值(.NULL.)。说明应用于:CursorAdapter类VFP9 CursorAdapter的新属性 FetchMemoDataSourceTypeFetchMemoDataSourceType属性指定作为DelayedMemoFetch方法的数据源的类型。设计和运行时可读/写。CursorAdapter.FetchMemoDataSourceType = cExpression返回值cExpression指定作为DelayedMemoFetch方法数据源的数据源类型。cExpression是取下表所列值之一的字符表达式:cExpression描述空字符串 Visual FoxPro忽略CursorAdapter的FetchMemoDataSource属性而使用CursorAdapter的DataSource和DataSourceType属性。ODBC数据源为ODBC(开放数据库连接)。ADO数据源为ADO(ActiveX Data Object)。说明应用于:CursorAdapter类VFP9 CursorAdapter的新属性 InsertCmdRefreshCmdInsertCmdRefreshCmd属性为执行插入命令之后的记录自动刷新指定一个刷新命令。设计和运行时可读/写CursorAdapter.InsertCmdRefreshCmd = cCommand返回值术语解释cCommand字符型。下表列出了cCommand可用的取值:cCommand描述字符串或表达式指定一个对数据源有效的刷新命令。空字符串()由CursorAdapter对象自动生成刷新命令。说明应用于:CursorAdapter类VFP9 CursorAdapter的新属性 InsertCmdRefreshFieldListInsertCmdRefreshFieldList属性指定插入命令执行之后要刷新的临时表字段。设计和运行时可读/写。CursorAdapter.InsertCmdRefreshFieldList = cExpr 返回值术语解释cExpr字符表达式cExpr为一个用逗号分隔的要刷新的临时表字段列表。说明应用于:CursorAdapter类InsertCmdRefreshFieldList属性决定在发出插入命令之后,临时表的哪些字段会被自动刷新。注意:AllowInsert必须设置为真(.T.),以允许对数据源进行插入操作。关于Visual FoxPro如何使用CursorAdapter更新远程数据的更多信息,请参阅使用CursorAdapter管理数据访问。VFP9 CursorAdapter的新属性 InsertCmdRefreshKeyFieldListInsertCmdRefreshKeyFieldList属性指定临时表的关键字字段,以便在执行插入命令之后可以重新取回记录。设计和运行时可读/写。CursorAdapter.InsertCmdRefreshKeyFieldList = cExpr返回值术语解释cExpr字符串表达式cExpr是一个用逗号分隔的临时表的可用于从数据源取回记录的关键字字段列表。说明应用于:CursorAdapter类关于Visual FoxPro如何使用CursorAdapter更新远程数据的更多信息,请参阅使用CursorAdapter管理数据访问。VFP9 CursorAdapter的新属性 MapBinaryMapBinary属性CursorAdapter的MapBinary属性决定是否能够以缺省的数据类型从ODBC和ADO的数据类型影射到Visual FoxPro的Varbinary Blob数据类型。XMLAdapter的MapBinary属性决定是否能够以缺省的数据类型从XML的数据类型影射到Visual FoxPro的Varbinary Blob数据类型。设计和运行时可读/写。Object.MapBinary = lValue返回值lValue能否以缺省的数据类型从ODBC、ADO和XML数据源类型影射。下表描述了lValue取值。 lValue描述真(.T.)对于CursorAdapter对象,下面的数据类型以缺省的类型进行影射: ODBC SQL_LONGVARBINARY类型影射为Blob类型 当数据源的对应列的精确度小于等于254字节时,ODBC SQL_BINARY和SQL_VARBINARY ODBC类型影射为Varbinary类型。如果精度大于254字节,这些类型被影射为Blob类型。 对于ADO类型,当数据源对应列的精度小于等于254字节,则adVarBinary和adBinary类型影射为Varbinary数据类型。精度大于254字节,这些数据类型被影射为Blob数据类型。对于XMLAdapter对象,LoadXML方法将所有的小于等于254字节的二进制数据类型影射为Varbinary数据类型。此外,大于254字节的二进制数据类型被影射为Blob数据类型。当XMLFieldDataType 属性设为Varbinary或Blob,XMLFieldIsBinary自动被设置为真(.T.), 而且XMLFieldDisableEncode自动被设置为假(.F.).注意:虽然XMLFieldDataType被设置为Varbinary,但仍可改变IsBinary和DisableEncode属性。假(.F.)(默认值)对于CursorAdapter对象,将禁止已缺省的类型从远程数据类型影射到Visual FoxPro的Varbinary和Blob数据类型。关于更多信息请参阅控制数据类型转换。对于XMLAdapter对象,将禁止以缺省数据类型从XML类型影射到Visual FoxPro的Varbinary和Blob数据类型。关于更对信息请参阅Visual FoxPro和XML结构数据类型影射。说明应用于:CursorAdapter | XMLAdapterVFP9 CursorAdapter的新属性 MapVarcharMapVarchar属性CursorAdapter的MapVarchar属性决定是否能够以缺省的数据类型从ODBC和ADO的数据类型影射到Visual FoxPro的Varbinary数据类型。XMLAdapter的MapBinary属性决定是否能够以缺省的数据类型从XML的数据类型影射到Visual FoxPro的Varbinary数据类型。设计和运行时可读/写。Object.MapVarchar = lValue返回值lValue能否以缺省的数据类型从ODBC、ADO和XML数据源类型影射到Visual FoxPro的Varchar数据类型。下表描述了lValue取值。lValue描述真(.T.)对于CursorAdapter对象,下面的数据类型以缺省的类型进行影射: 当数据源的对应列的精确度小于等于254字节时,SQL_WVARCHAR和SQL_VARCHAR ODBC影射为Varchar数据类型。如果精度大于254字节,这些类型被影射为Memo类型。 在可能的情况下,adVarChar和adVarWChar ADO数据类型影射为Varchar数据类型对于XMLAdapter对象,Visual FoxPro先前影射到Character 数据类型改为影射到Varchar数据类型。假(.F.)(默认值)对于CursorAdapter对象,将禁止已缺省的类型从远程数据类型影射到Visual FoxPro的Varchar数据类型。关于更多信息请参阅控制数据类型转换。对于XMLAdapter对象,将禁止以缺省数据类型从XML类型影射到Visual FoxPro的Varchar数据类型。关于更对信息请参阅Visual FoxPro和XML结构数据类型影射。说明应用于:CursorAdapter | XMLAdapterVFP9 CursorAdapter的新属性 NoDataNoData属性为CursorFill方法的lNoData参数指定缺省值。设计和运行时可读写。CursorAdapter.NoData = lExpr返回值lExprNoData属性的设定值有:设置描述真(.T.)为CursorFill方法的lNoData参数设定的默认值为逻辑真(.T.)。如果在调用CursorFill方法时不指定lNoData参数,则可以创建临时表,但不会用数据填充临时表。假(.F.)(缺省值)为CursorFill方法的lNoData参数指定一个逻辑假(.F.)作为默认值。如果在调用CursorFill方法时不指定lNoData参数,则创建临时表并用数据填充临时表。说明应用于:CursorAdapter类如果在调用CursorFill方法时省略lNoData参数,则CursorFill方法将使用本属性的设置;如果在CursorFill方法中包含lNoData参数,则本属性的设置将被忽略。VFP9 CursorAdapter的新属性 RefreshAliasRefreshAlias属性包含作为RecordRefresh和DelayedMemoFetch方法所进行的记录刷新目标的只读临时表的别名。设计和运行时只读。CursorAdapter.RefreshAlias说明应用于:CursorAdapter类当执行RecordRefresh或DelayedMemoFetch方法时,RefreshAlias属性中包含他们所打开的只读临时表的别名。VFP9 CursorAdapter的新属性 RefreshCmdRefreshCmd属性为RecordRefresh方法指定所执行的记录刷新命令。设计和运行时可读/写。CursorAdapter.RefreshCmd = cCommand参数cCommand 字符型。下表列出了cCommand的可能取值:cCommand 描述字符串或表达式为RefreshCmdDataSourceType和RefreshCmdDataSource属性所描述的数据源属性指定一个有效的命令串。对于ADO和ODBC数据源,能够指定数据源所支持的任何命令,该命令能够准确地返回一条记录。对于本地的Visual FoxPro数据源,是一个能够准确返回单一记录的SQL SELECT命令。除了在RefreshIgnoreFieldList属性中指定的字段,其余临时表的字段在位置上是相匹配的。空字符串 ()CursorAdapter对象自动生成一个记录刷新命令。所生成的命令是基于数据源和CursorAdapter的Tables、KeyFieldList、UpdateNameList以及RefreshIgnoreFieldList属性。如果包含一条命令,则忽略Tables、KeyFieldList和UpdateNameList属性。注意:即使RefreshIgnoreFieldList属性中不包含AUTOINC和关键字字段,自动生成的命令中也不会包含它们。说明应用于:CursorAdapter类所指定的命令运行于每一条目标记录。不执行目标字段的有效性规则。如果在刷新记录时发生错误,则不会有字段被刷新。如果从源字段到目标字段的数据转换不被支持,将会产生错误。试图刷新一个AUTOINC字段,也会产生错误。如果关键字不唯一或其他原因造成索引更新失败,则刷新操作被取消。对于ADODB记录集, CursorAdapter的RefreshCmd、Tables、KeyFieldList和UpdateNameList属性被忽略,而且在没有指定关键字的情况下也不会引发错误。如果ADODB记录集的锁定类型不为adLockBatchOptimistic或adLockUnspecified,则在临时表的记录被刷新之前,CursorAdapter以ResyncValues参数值设为 adResyncAllValues来调用Resync方法刷新记录集的记录。可以在BeforeRecordRefresh事件中设置该属性。VFP9 CursorAdapter的新属性 RefreshCmdDataSourceRefreshCmdDataSource属性指定用于RecordRefresh方法的数据源。设计和运行时可读/写。CursorAdapter.RefreshCmdDataSource = DataSource参数DataSource 指定对一个现有的可用类型的数据源的引用。DataSource仅为指向一个真实数据源的指针,在运行时该数据源必须存在。下表列出了DataSource的取值,其取值依赖于RefreshCmdDataSourceType属性的取值。DataSourceDataSource类型ADO对一个有效的ActiveX Data Object (ADO)命令对象的引用ODBC代表一个有效的开放数据库连接(ODBC)连接句柄的正整数或内存变量。Native, 空 (.NULL.), 或空字符串()忽略。缺省值为空值(.NULL.)。说明应用于:CursorAdapter类可以在BeforeRecordRefresh事件中设置该属性。VFP9 CursorAdapter的新属性 RefreshCmdDataSourceTypeRefreshCmdDataSourceType属性指定用于RecordRefresh方法的数据源类型。设计和运行时可读/写。CursorAdapter.RefreshCmdDataSourceType = cExpression返回值cExpression指定用于RecordRefresh方法的数据源类型。cExpression为下表所列值之一的字符表达式:cExpression描述空字符串()Visual FoxPro忽略CursorAdapter的RefreshCmdDataSource属性,而使用CursorAdapter的DataSource和DataSourceType属性。ODBC数据源为ODBC(开放数据库连接)。ADO数据源为ADO (ActiveX Data Objects)。Native数据源为本地Visual FoxPro表或游标。说明应用于:CursorAdapter类可以在BeforeRecordRefresh事件中设置该属性。VFP9 CursorAdapter的新属性 RefreshIgnoreFieldListRefreshIgnoreFieldList属性指定在执行RecordRefresh方法时,被刷新进程忽略的字段列表。设计和运行时可读/写。CursorAdapter.RefreshIgnoreFieldList = cExpr参数术语 解释cExpr 字符表达式cExpr为一个用逗号分隔的临时表中的字段列表,这些字段将被刷新进程忽略。说明应用于:CursorAdapter类可以在BeforeRecordRefresh事件中设置该属性。VFP9 CursorAdapter的新属性 RefreshTimeStampRefreshTimeStamp属性指定当执行插入或更新命令时,是否自动刷新包含在TimestampFieldList属性中的字段。设计和运行时可读/写。CursorAdapter.RefreshTimestamp = lExpr返回值lExpr 取下列逻辑值之一:设置描述真(.T.)允许自动刷新包含在TimestampFieldList属性中的字段。假(.F.)(默认值)不能自动刷新包含在TimestampFieldList属性中的字段。说明应用于:CursorAdapter类RefreshTimestamp属性设置为真(.T.)与在InsertCmdRefreshFieldList和UpdateCmdRefreshFieldList属性的尾部包含时间戳字段是一样的。VFP9 CursorAdapter的新属性 TimestampFieldListTimestampFieldList属性指定临时表中的时间戳字段。设计和运行时可读/写。CursorAdapter.TimestampFieldList = cExpr返回值术语解释cExpr字符表达式cExpr是一个用逗号分隔的临时表中的时间戳字段列表。说明应用于:CursorAdapter类用该属性指定CursorAdapter对象的临时表中的时间戳字段。如果用该属性指定了时间戳字段,而且CursorAdapter对象的WhereType属性设置为4,则Visual FoxPro在Native、ODBC的UPDATE/DELETE命令以及基于更新的ADODB.Command的Where条件中包含时间戳字段。对于基于更新的XML,事件戳字段包含在UpdateGram的节中。VFP9 CursorAdapter的新属性 UpdateCmdRefreshCmdUpdateCmdRefreshCmd属性指定当执行一个更新命令后,自动刷新记录的命令。设计和运行时可读/写。CursorAdapter.UpdateCmdRefreshCmd = cCommand返回值术语解释cCommand 字符型。下表列出了cCommand可能的取值。cCo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论