VFP6与VFP9函数对比 下载本文

VFP6与VFP9函数对比

VFP6与VFP9函数对比(不包含未公开或系统保留的函数),对比了VFP6和VFP9的函数,找出它们的不同并作出简要说明,在此贴出以供各位狐友参考。

为了方便从VFP6开始学习的狐友,顺利学习VFP9,笔者依据两个版本的帮助文件(不包含未公开或系统保留的函数),对比了VFP6和VFP9的函数,找出它们的不同并作出简要说明,以供各位狐友参考。由于时间仓促,难免有所疏漏或错误,敬请指正或补充完善。 ADDPROPERTY( ) 函数

VFP9: ADDPROPERTY(oObjectName, cPropertyName, [, eNewValue ]) VFP6: 无

说明: ADDPROPERTY( ) 函数用于在运行时刻向一个对象添加一个新属性。

ADIR( ) 函数

VFP9: ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]]) VFP6: ADIR(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]]) 说明: VFP6中该函数的参数cCreatorType仅适用于FoxPro for Macintosh。在VFP9中增加参数nFlag,用于设置数组中文件(夹)名格式: 0— (默认)以大写方式显示完整的路径名,1—以原始的大小写方式,2—按 DOS 8+3 命名约定(大写)

建议: 该函数很有用,应掌握。例如: 利用该函数,可以遍历文件夹(或路径)。

ADLLS( ) 函数

VFP9: ADLLS(ArrayName) VFP6: 无

说明: 把由 DECLARE DLL 命令载入的函数名放入数组,并返回其数目。

ADOCKSTATE( ) 函数

VFP9: ADOCKSTATE( ArrayName [, nType | nExtended]) VFP6: 无

说明: 获取所有可停靠的表单、集成开发环境(IDE)窗口 或工具栏的停靠状态。针对表单,可以使用GetDockState 方法程序. ADOCKSTATE( ) 在运行时刻可用。

AEVENTS( ) 函数

VFP9: AEVENTS( ArrayName [, 0 | 1 | oEventObject ] ) VFP6: 无

说明: 可以用 AEVENTS() 函数来获取已存在的事件绑定数。

AFONT( ) 函数

VFP9: AFONT(ArrayName [, cFontName [, nFontSize | nFontCharSet [, nFlags]]]) VFP6: AFONT(ArrayName [, cFontName [, nFontSize]])

说明: VFP9中,对该函数的功能进行了增强,参数nFlags用来决定传递给函数的第三个参数是字体大小还是字符集。

ALANGUAGE( ) 函数

VFP9: ALANGUAGE(ArrayName, nType) VFP6: 无

说明: ALANGUAGE( ) 函数返回一个包含所有可用的 Visual FoxPro 命令, 函数,基本类或数据库事件的数组。

ALINES( ) 函数

VFP9: ALINES(ArrayName, cexpression_r [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

VFP6: ALINES(ArrayName,cexpression_r [,lTrim])

说明: 事实上,VFP9中同样兼容VFP6中该函数的语法。在VFP9中,该函数生成的数组(元素)中,可以不包含空行,可以包含分隔字符;更为重要的是,可以指定一个或多个分隔字符(或字符串),不再固定为chr(10)和chr(13)。 建议: 该函数十分有用,应掌握。 应用举例:

*----------------------------------------------------------------- * TAlines.prg

* [功能] 将从Excel表格中复制的单元格打印出来

*----------------------------------------------------------------- LOCAL ARRAY aExcelLine[1], aCells[1] LOCAL i, j

IF LEN(_CLIPTEXT) > 0 AND ALINES(aExcelLine, _CLIPTEXT) > 0 FOR i = 1 TO ALEN(aExcelLine)

IF ALINES(aCells, aExcelLine, CHR(9)) > 0 FOR j = 1 TO ALEN(aCells) ?? aCells[j] + CHR(9) ENDFOR ? ELSE

? aExcelLine ENDIF ENDFOR ELSE

MESSAGEBOX('请从Excel中复制有数据的单元格后再运行本程序!', 16, '提示') ENDIF

ALLTRIM( ) 函数

VFP9: ALLTRIM(expression_r [, nFlags] [, cParseChar [, cParseChar2 [, ...]]]) VFP6: ALLTRIM(cexpression_r)

说明: 在VFP9中,ALLTRIM()函数不再是只能去除空格的东东!通过指定参数cParseChar和nFlags,它可以去除表达式前后的任意字符(串),甚至可以忽略大小写。

链接: LTRIM( )、RTRIM( )和TRIM( )函数也作出了类似的改进,在下面这些函数将不再介绍。

建议: 这些函数十分有用,应掌握。 应用举例:

*----------------------------------------------------------------- * [功能] 将STR()函数生成的字符串小数点后的零去除

*----------------------------------------------------------------- FOR i = 1 TO 3

lcNum = ALLTRIM(STR(i / 3, 15, 6), 0, '0') && 去除小数点后的零 lcNum = LTRIM(lcNum) && 去除字符串左边的空格 IF RIGHT(lcNum, 1) = '.' && 对于整数, 去除小数点 lcNum = LEFT(lcNum, LEN(lcNum) - 1) ENDIF ? lcNum ENDFOR

AMEMBERS( ) 函数

VFP9: AMEMBERS(ArrayName, oObjectName | cClassName [, nArrayContentsID] [, cFlags]) VFP6: AMEMBERS(ArrayName, ObjectName | cClassName [, 1 | 2])

说明: 在VFP9中该函数得到了增强。例如指定cFlags参数,可以把用户定义 (外来的) 属性, 方法或事件放入数组。

APRINTERS( ) 函数

VFP9: APRINTERS(ArrayName [, nValue]) VFP6: APRINTERS(ArrayName)

说明: 在VFP9中,如果指定nValue参数值为 1,数组中包含 5 列(VFP6中为 2 列)打印机信息,增加了打印机驱动程序名称、打印机注释和打印机位置。

APROCINFO( ) 函数

VFP9: APROCINFO(ArrayName, cFileName [, nType]) VFP6: 无

说明: 该函数创建一个在一个程序文件中所包含的 Visual FoxPro 语言元素(如类、过程)的数组。

ASCAN( ) 函数

VFP9: ASCAN(ArrayName, eexpression_r [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])

VFP6: ASCAN(ArrayName, eexpression_r [, nStartElement [, nElementsSearched]]) 说明: VFP9中增加了参数nSearchColumn,可以指定要搜索的列;增加了参数nFlags,可以决定扫描数组元素时,是否区分大小写、是否严格匹配。 建议: 掌握该函数。

ASELOBJ( ) 函数

VFP9: ASELOBJ( ArrayName, [ 1 | 2 | 3 ] ) VFP6: ASELOBJ(ArrayName, [1 | 2])

说明: 指定第2个参数值为 3 时,函数创建包含三个元素的数组,保存当前活动的代码编辑窗口的信息: 容器对象的对象引用,.scx 或 .vcx 文件完整的路径及文件名,可用的#INCLUDE 文件的完整路径及文件名。

ASESSIONS( ) 函数

VFP9: ASESSIONS(ArrayName) VFP6: 无

说明: 该函数创建一个已存在的数据工作期的 ID 数组。

ASORT( ) 函数

VFP9: ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder [, nFlags]]]) VFP6: ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder]]]) 说明: 指定nFlags参数,决定是否大小写敏感。nFlags 参数仅在当前比较序列是大小写敏感 (如 \而你想执行一个非大小写敏感排序才是有用的。

ASQLHANDLES( ) 函数

VFP9: ASQLHANDLES(ArrayName [, nStatementHandle]) VFP6: 无

说明: 该函数将所有活动的 SQL 连接状态句柄的数值引用存储到数组中。

ASTACKINFO( ) 函数

VFP9: ASTACKINFO(ArrayName) VFP6: 无

说明: 该函数创建一个数组,数组中保存当前堆栈调用的状态信息。

ATAGINFO( ) 函数

VFP9: ATAGINFO(ArrayName [,cCDXName [, nWorkArea | cTableAlias]]) VFP6: 无

说明: 该函数创建一个包含索引文件信息的数组

AUSED( ) 函数

VFP9: AUSED(ArrayName [, nDataSessionNumber [, cTableName]]) VFP6: AUSED(ArrayName [, nDataSessionNumber])

说明: 在VFP中如果使用参数cTableName,则数组中仅包含由 cTableName 指定的表的别名。

BINDEVENT( ) 函数

VFP9: BINDEVENT(oEventSource, cEvent, oEventHandler, cDelegate [, nFlags]) 或者 BINDEVENT(hWnd | 0, nMessage, oEventHandler, cDelegate [, nFlags]) VFP6: 无

说明: 该函数提供当一个事件发生时执行用户代码(一个对象的方法)的能力。

BINTOC( ) 函数

VFP9: BINTOC(nexpression_r [, eFlags]) VFP6: BINTOC(nexpression_r [, nSize])

链接:CTOBIN( )函数也作了类似改进或增强,下面将不再介绍该函数。

说明: 在VFP9中,该函数得到了增强。除了完全兼容VFP6的参数值外,还增加了“F”、“B”、“R”、“S”、“8”等。

BITAND( ) 函数

VFP9: BITAND(nNumericexpression_r1, nNumericexpression_r2, ... , nNumericexpression_r26)

或者 BITAND(Binaryexpression_r1, Binaryexpression_r2, ... , Binaryexpression_r26) VFP6: BITAND(nexpression_r1, nexpression_r2)

链接:与此函数类似,BITOR( ) 函数、BITXOR( ) 函数也作了类似的改进或增强,下面将不再介绍它们。

说明: 在VFP9中可以对多个表达式进行按位与操作,并且可以对二进制表达式进行按位与操作。

BITCLEAR( ) 函数

VFP9: BITCLEAR(nNumericexpression_r1, nNumericexpression_r2) 或者 BITCLEAR(Binaryexpression_r [, nStartBit [, nBitCount]]) VFP6: BITCLEAR(nexpression_r1, nexpression_r2)

链接:与此函数类似,BITNOT( ) 函数、BITSET( ) 函数也作了类似的改进或增强,下面将不再介绍它们。

说明: 在VFP9中,还可以对二进制表达式进行位清零操作。

BITTEST( ) 函数

VFP9: BITTEST(nNumericexpression_r1, nNumericexpression_r2) 或者 BITTEST(Binaryexpression_r, nBitNumber) VFP6: BITTEST(nexpression_r1, nexpression_r2)

说明: 在VFP9中,该函数有两种语法,除了对数值进行位测试操作外,还可以对二进制表达式进行位测试操作。

CAST( ) 函数

VFP9: CAST(eexpression_r AS cDataType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL]) VFP6: 无

说明: 该函数用于 SQ L语句,可以将表达式的数据类型进行转换,并且可以指定是否包含.NULL.值。

建议:对于使用SQL语句而言,该函数很有用,建议掌握。

CLEARRESULTSET( ) 函数 VFP9: CLEARRESULTSET( ) VFP6: 无

说明: 在当前数据期,清除由SETRESULTSET( )函数标记的临时表中的记号。参阅SETRESULTSET( )函数。

COMARRAY( )函数

VFP9: COMARRAY(oObject [, nNewValue]) VFP6: COMARRAY(oObject [, nNewValue])

说明: 在VFP9中,对nNewValue参数的取值进行了增强,另外包含参数值100—数组是固定大小,并且不能被重定义,1000—字节数组不转换为字符串。

COMCLASSINFO( ) 函数

VFP9: COMCLASSINFO(oObject [, nInfoType]) VFP6: COMCLASSINFO(oObject [, nInfoType])

说明: 在VFP9中,对nInfoType参数的取值进行了增强,另外包含参数值 5—传递对象的类型。

COMPROP( ) 函数

VFP9: COMPROP(oCOMObject, cProperty [, ue]) VFP6: 无

说明: COMPROP( ) 函数设置或返回COM对象属性的行为设置。

CREATEOBJECTEX( ) 函数

VFP9: CREATEOBJECTEX(cCLSID | cPROGID, cComputerName [, cIID]) VFP6: CREATEOBJECTEX(cCLSID | cPROGID, cComputerName)

说明: 该函数在一个远程计算机上创建一个已注册 COM 对象(例如一个 Visual FoxPro Automation服务程序)的一个实例。当建立一个早期的绑定实例时,cIID参数指定cCLSID | cPROGID的界面 ID(GUID)。如果传递一个空串,Visual FoxPro 试图访问默认的界面(IID)。

CURSORGETPROP( ) 函数

VFP9: CURSORGETPROP(cProperty [, nWorkArea | cTableAlias]) VFP6: CURSORGETPROP(cProperty [, nWorkArea | cTableAlias])

说明: 在VFP9中,对cProperty参数进行了增强。增加了如“ADOBookmark”、

“ADOCodePage”、“ADORecordset”、“AllowSimultaneousFetch”、“AutoIncError”、“FetchIsComplete”、“MapBinary”、“MapVarchar”、“ParameterList”、“RecordsFetched”、“Refresh”等属性。

CURSORSETPROP( ) 函数

VFP9: CURSORSETPROP( cProperty [, eexpression_r] [,cTableAlias | nWorkArea]) VFP6: CURSORSETPROP(cProperty [, eexpression_r] [, cTableAlias | nWorkArea]) 说明: 在VFP9中,对cProperty参数进行了增强。增加了如“AllowSimultaneousFetch”、“AutoIncError”、“MapBinary”、“MapVarchar”、“ParameterList”、“Refresh”等属性。

CURSORTOXML( ) 函数

VFP9: CURSORTOXML(nWorkArea | cTableAlias, cOutput [, nOutputFormat [, nFlags [, nRecords [, cSchemaName [, cSchemaLocation [, cNameSpace ]]]]]]) VFP6: 无

说明: 将 Visual FoxPro 游标转换为XML。

DBGETPROP( ) 函数

VFP9: DBGETPROP(cName, cType, cProperty) VFP6: DBGETPROP(cName, cType, cProperty) 说明: 在VFP9中,对cProperty参数值进行了增强。

DIRECTORY( ) 函数

VFP9: DIRECTORY(cDirectoryName [, nFlags]) VFP6: DIRECTORY(cDirectoryName)

说明: VFP9中的nFlags参数可以决定当目录被标记为隐含(Hidden)或系统(System)时,函数返回值的行为。

DISKSPACE( ) 函数

VFP9: DISKSPACE([cVolumeName [, nType]]) VFP6: DISKSPACE([cVolumeName])

说明: 使用nType参数,可以返回磁盘空间总量、磁盘自由空间总量、与用户相关联的可以访问的现有的自由空间总量。

DisplayPath( ) 函数

VFP9: DisplayPath(cFilename, nMaxLength) VFP6: 无

说明: DisplayPath( ) 函数显示截去长路径名到指定长度。 建议:这是一个好用的函数,应掌握。 应用举例:

? DISPLAYPATH('C:\\PROGRAM FILES\\MICROSOFT VISUAL FOXPRO 9\\VFP9.exe', 45) && 显示“C:\\...\\MICROSOFT VISUAL FOXPRO 9\\VFP9.exe”

EditSource( ) 函数

VFP9: EditSource(cShortCutID | [ cFilename [, nLineNo] [, cClassName] [, cMethodName|cProcName]]) VFP6: 无

说明: 该函数打开 Visual FoxPro 编辑器并可选择地放置光标。

EVL( ) 函数

VFP9: EVL( eexpression_r1, eexpression_r2 ) VFP6: 无

说明: 该函数从两个表达式中返回一个非空值。可以使用 EVL( ) 函数从两个表达式中返回

一个适当的替代值来代替象假(.F.) 或 0 的空值。同样可以利用这个功能从不支持空值或不相关的计算或操作中移除空值。

EVENTHANDLER( ) 函数

VFP9: EVENTHANDLER(oCOMObject, oVFPObject [, lUnbind]) VFP6: 无

说明: 该函数绑定一个 COM 服务事件到一个 Visual FoxPro 对象上被实现接口的方法。

ExecScript( ) 函数

VFP9: ExecScript(cexpression_r [, eParameter1, eParameter2, ...]) VFP6: 无

说明: 在运行时,允许运行来自变量、表或其它文本的多行代码。ExecScript( ) 与宏扩展不同,提供了与在命令窗口中选择多行代码然后按回车(Enter)键一样的效果。

FIELD( ) 函数

VFP9: FIELD(nFieldNumber | cFieldName [, nWorkArea | cTableAlias [, nFlags]]) VFP6: FIELD(nFieldNumber [, nWorkArea | cTableAlias])

说明: 在VFP9中,使用参数nFlags可以返回实际的字段名,还可以返回字段的标题(Caption),如果字段的标题是表达式,则返回表达式的计算结果。

FILE( ) 函数

VFP9: FILE(cFileName [, nFlags]) VFP6: FILE(cFileName)

说明: 在VFP9中利用nFlags参数,该函数可以查找系统或隐藏属性的文件!这是一个让人高兴的变化。 建议:掌握该函数。

GETAUTOINCVALUE( ) 函数

VFP9: GETAUTOINCVALUE([nDataSessionNumber | 0]) VFP6: 无

说明: 该函数返回数据库或自由表中自动增量字段最后生成的值。

GETCURSORADAPTER( ) 函数

VFP9: GETCURSORADAPTER( [ cAlias ] ) VFP6: 无

说明: 该函数在运行时刻返回一个被临时表引用的 CursorAdapter 对象的对象引用。

GETDIR( ) 函数

VFP9: GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]]) VFP6: GETDIR([cDirectory [, cDialogCaption]])

说明: 在VFP9中,增强了此函数的功能。通过指定nFlags参数,可以使用新的用户界面、验证用户的输入等,这真是一个让人高兴的改进,可以一举改变VFP6中难看的选择目录界面!

建议:掌握该函数。

GETFONT( ) 函数

VFP9: GETFONT([cFontName [, nFontSize [, cFontStyle [, nFontCharSet]]]]) VFP6: GETFONT(cFontName [, nFontSize [, cFontStyle) 说明: 在VFP9中增加了nFontCharSet参数,可以指定字符集。

GETINTERFACE( ) 函数

VFP9: GETINTERFACE(oObject [, cIID | cInterface[, cTypelib | cProgID]]) VFP6: 无

说明: 该函数通过早期绑定提供 COM 对象属性, 方法和事件访问。

GETNEXTMODIFIED( ) 函数

VFP9: GETNEXTMODIFIED(nRecordNumber [, cTableAlias | nWorkArea] [, lNoFire]) VFP6: GETNEXTMODIFIED(nRecordNumber [, cTableAlias | nWorkArea]) 说明: 在VFP9中增加了lNoFire参数,可以指定抑制所有的规则激发。

GETOBJECT( ) 函数

VFP9: GETOBJECT(cFileName | Moniker [, cClassName]) VFP6: GETOBJECT([FileName [, ClassName]])

说明: 利用参数 Moniker 实现 IMoniker 接口的 COM 对象的识别符。Moniker 可以是以下任何类型中的一种: 文件, 项, generic composite, 指针和 URL。

GETRESULTSET( ) 函数 VFP9: GETRESULTSET( ) VFP6: 无

说明: 该函数在当前数据中获得被 SETRESULTSET( ) 标记的临时表工作区号。

GetWordCount( ) 函数

VFP9: GetWordCount(cString[, cDelimiters])

VFP6: 无

说明: GetWordCount( ) 函数对字符串中的单词计数。分隔符可以指定多个。

GETWORDNUM( ) 函数

VFP9: GETWORDNUM(cString, nIndex[, cDelimiters]) VFP6: 无

说明: 该函数从一个字符串中返回指定序号的单词。

HOME( ) 函数

VFP9: HOME([nLocation]) VFP6: HOME([nLocation])

说明: 在VFP9中,对参数nLocation的取值范围进行了扩充,从而可以返回:用户 Application Data 目录中的 Visual FoxPro 子目录 和 用户 My Documents 目录中的 Visual FoxPro Projects 子目录。

ICASE( ) 函数

VFP9: ICASE( lCondition1, eResult1 [, lCondition2, eResult2] ... [, eOtherwiseResult]) VFP6: 无

说明: 使用该函数,类似在“DO CASE...ENDCASE”语句对同一变量赋值。如果条件较多,组合使用IIF( )函数会使程序变得难读,使用本函数则可以较清晰。

ID( ) 函数 VFP9: ID( ) VFP6: 无

说明: 当在网络环境中使用 Visual FoxPro 时,ID( ) 返回网络机器信息。通过使用 SYS(0) 也能获得相同的功能。

INPUTBOX( ) 函数

VFP9: INPUTBOX(cInputPrompt [, cDialogCaption [, cDefaultValue [, nTimeout [,cTimeoutValue] [,cCancelValue]]]]) VFP6: 无

说明: 该函数为单个串的输入显示一个参数化的模式对话框。

ISMEMOFETCHED( ) 函数

VFP9: ISMEMOFETCHED(cFieldName | nFieldNumber [, nWorkArea | cTableAlias])

VFP6: 无

说明: 该函数确定一个备注字段在一个延时的抓取备注字段期间是否被抓取。

ISPEN( ) 函数 VFP9: ISPEN( ) 函数 VFP6: 无

说明: 确定 Tablet PC 最后的鼠标事件是否是一个笔轻击(pen tap)。

ISTRANSACTABLE( ) 函数

VFP9: ISTRANSACTABLE([nWorkArea | cAlias]) VFP6: 无

说明: 该函数返回表示一个自由表或自由临时表(cursor)是否支持事务处理的逻辑值。在VFP9中,支持自由表或临时表进行事务处理,这是一个让人高兴的改进。

MAKETRANSACTABLE( ) 函数

VFP9: MAKETRANSACTABLE([nWorkArea | cAlias]) VFP6: 无

说明: 该函数允许自由表或自由临时表支持事务处理。

MCOL( ) 函数

VFP9: MCOL([cWindowName | 0 [, nScaleMode]]) VFP6: MCOL([cWindowName [, nScaleMode]])

链接:MROW( )函数也做了类似的改变,下面将不再介绍该函数。

说明: 在VFP9中,第一个参数使用0,可以返回鼠标指针在活动的用户自定义窗口或表单中的列位置。

MESSAGEBOX( ) 函数

VFP9: MESSAGEBOX(eMessageText [, nDialogBoxType ][, cTitleBarText][, nTimeout]) VFP6: MESSAGEBOX(cMessageText [, nDialogBoxType [, cTitleBarText]])

说明: 在VFP9中,增加了参数nTimeout,可以指定对话框在若干毫秒后自动关闭。并且,第一个参数不再只是字符串,可以是其他数据类型。这是一个让人高兴的改变。

NEWOBJECT( ) 函数

VFP9: NEWOBJECT(cClassName [, cModule [, cInApplication | 0 [, eParameter1, eParameter2, ...]]])

VFP6: NEWOBJECT(cClassName [, cModule [, cInApplication[, eParameter1, eParameter2, ...]]])

说明: 在VFP9中,第三个参数为0时,指定实例化类或对象时不执行类或对象中的任何事件或方法代码。在运行时刻的应用程序中不支持这项功能。

OS( ) 函数

VFP9: OS([nValue]) VFP6: OS([1])

说明: 在VFP9中,使用nValue参数,可以返回操作系统中安装的最终的 Service Pack、识别操作系统等信息。

PAD( ) 函数

VFP9: PAD([cMenuTitle [, cMenuBarName]]) VFP6: PAD( )

说明: 在VFP9中,不仅可以以大写字符串形式返回在菜单栏中最近选取的菜单标题, 也可以返回是否一个菜单标题在一个激活的菜单栏中定义。

QUARTER( ) 函数

VFP9: QUARTER(dexpression_r | texpression_r [, nMonth]) VFP6: 无

说明: 该函数返回一个日期或日期时间表达式中的季度值。

RAISEEVENT( ) 函数

VFP9: RAISEEVENT( oEventSource, cEvent [, eParm1...] ) VFP6: 无

说明: 可以用 RAISEEVENT( ) 从一个自定义方法中引发或触发一个自定义事件。虽然 RAISEEVENT( ) 主要适用于自定义方法, 你可以用它引发 VFP 自身的事件和方法。

REMOVEPROPERTY( ) 函数

VFP9: REMOVEPROPERTY(oObjectName, cPropertyName) VFP6: 无

说明: 该函数在运行时刻从一个对象中删除一个属性。

SET函数 ( )

VFP9: SET(cSETCommand [, 1 | cexpression_r | 2 | 3 | 4]) VFP6: SET(cSETCommand [, 1 | 2]) 说明: 请参阅帮助文件。

SETRESULTSET( ) 函数

VFP9: SETRESULTSET( nWorkArea | cTableAlias ) VFP6: 无

说明: 在当前数据工作其,标记一个游标作为一个结果集。每个工作期中只能标记一个游标。当标记一个新的游标时,该函数清除先前的标记。 Visual FoxPro 和 Visual FoxPro OLE DB Provider 均支持SETRESULTSET( )函数。

SQLCONNECT( ) 函数

VFP9: SQLCONNECT([nStatementHandle])

或者 SQLCONNECT([cConnectionName | cDataSourceName [, cUserID [, cPassword ]][, lShared]])

VFP6: SQLCONNECT([DataSourceName, cUserID, cPassword | cConnectionName]) 说明: 在VFP9中支持该函数有两种语法格式。

SQLEXEC( ) 函数

VFP9: SQLEXEC(nStatementHandle [, cSQLCommand [, cCursorName[, aCountInfo]]]) VFP6: SQLEXEC(nConnectionHandle, cSQLCommand, [CursorName])

说明: 在VFP9中,使用aCountInfo 参数,可以指定数组名移植行计数信息。

SQLMORERESULTS( ) 函数

VFP9: SQLMORERESULTS(nStatementHandle [, cCursorName [, aCountInfo]])) VFP6: SQLMORERESULTS(nConnectionHandle)

说明: 在VFP9中,增加参数cCursorName,可用于将结果集存储到指定的游标中;增加aCountInfo参数,可以指定数组名移植行计数信息。

SQLSETPROP( ) 函数

VFP9: SQLSETPROP(nStatementHandle, cSetting [, eexpression_r]) VFP6: SQLSETPROP(nStatementHandle, cSetting [, eexpression_r])

说明: 在VFP9中,参数cSetting 增强了取值范围:“DisconnectRollback”、“Shared”。

SQLSTRINGCONNECT( ) 函数

VFP9: SQLSTRINGCONNECT([lShared] | [cConnectString [, lSharable]]) VFP6: SQLSTRINGCONNECT([cConnectString])

说明: 在VFP9中,允许通过lSharable参数决定连接是否共享。

STRCONV( ) 函数

VFP9: STRCONV(cexpression_r, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]])

VFP6: STRCONV(cexpression_r, nConversionSetting [, nLocaleID])

说明: 在VFP9中,利用该函数,可以将双字节数据与UTF-8数据互转(某些网页为UTF-8编码,可以转换为国标汉字),Unicode数据与UTF-8数据互转,单字节字符与 base64 编码互转,单字节字符到 hexBinary 编码互转(这样就可以直接看到字符串的十六进制内码啦)。这是让人高兴的改进。

建议:这是一个很有用的函数,应掌握。 应用举例:

? STRCONV('测试',15) && 显示字符串“B2E2CAD4”

? STRCONV(STRCONV('测试',15), 16) && 显示字符串“测试”

STREXTRACT( ) 函数

VFP9: STREXTRACT(cSearchexpression_r, cBeginDelim [, cEndDelim [, nOccurrence[, nFlag]]]]) VFP6: 无

说明: 该函数返回两个分隔符之间的字符串。这两个分隔符可以不同,并且通过指定参数nFlag,忽略分隔符的大小写、决定分隔符是否包含在返回的字符串中。 建议:这是一个很有用的函数,应掌握。 应用举例:

? STREXTRACT(\李四,1980.01.01,.T.\显示字符串“李四” ? STREXTRACT(\李四,1980.01.01,.T.\显示字符串“1980.01.01”

STRTOFILE( ) 函数

VFP9: STRTOFILE(cexpression_r, cFileName [, lAdditive | nFlag]) VFP6: STRTOFILE(cexpression_r, cFileName [, lAdditive])

说明: 在VFP9中,使用参数nFlag,可以允许写入UTF-8 和 Unicode 字节顺序标记(Byte Order Marks)。

STRTRAN( ) 函数

VFP9: STRTRAN(cSearched, cexpression_rSought [, cReplacement] [, nStartOccurrence] [, nNumberOfOccurrences] [, nFlags])

VFP6: STRTRAN(cSearched, cSearchFor [, cReplacement][, nStartOccurrence] [, nNumberOfOccurrences])

说明: 在VFP9中,使用参数nFlag,可以指定是否对查找字符串大小写敏感或严格。

SYS(602) 函数

VFP9: SYS(602 [, 0 | 1 ]) VFP6: 无

说明: 该函数返回当前配置文件中的当前位图配置和在运行时切换 off-screen 位图的开或关。

SYS(987) 函数

VFP9: SYS(987 [, lExpr]) VFP6: 无

说明: 该函数映像通过 SQL pass-through 或远程视图重新获得的远程 Unicode 数据到 ANSI。

SYS(1011) 函数 VFP9: SYS(1011) VFP6: 无

说明: 该函数返回使用中的内存句柄数。

SYS(1037) 函数

VFP9: SYS(1037 [, nValue]) VFP6: SYS(1037)

说明: 在VFP9中,通过设置nValue参数,可以打开缺省的页面设置对话框,打开报表页面设置对话框,设置一个报表的打印机环境来调整缺省的打印机设置,或指定缺省的打印机设置给一个报表的打印机环境设置。

SYS(1104) 函数

VFP9: SYS(1104 [, cAlias | nWorkArea]) VFP6: 无

说明: 该函数清理程序和数据使用的内存缓存,并清除和刷新打开表的缓存。

SYS(2007) 函数

VFP9: SYS(2007, cexpression_r, [, nSeed, [, nFlags]]) VFP6: SYS(2007, cexpression_r)

说明: 在VFP9中,可以通过指定nFlags参数值,使用 CRC16 或 CRC32 校验和运算法则计算基于 cexpression_r 参数的校验和。

SYS(2017)( ) 函数

VFP9: SYS(2017, cexpression_r [, nSeed [, nFlags]]) VFP6: SYS(2017)

说明: VFP6中的SYS(2017)函数显示启动屏幕。但在VFP9中,该函数的功能截然不同:返回一个基于当前工作区中当前记录的校验和值,可以使用一个校验和来测试数据的正确性,

同样可以为较大的串产生大于 16 位的校验和值;SYS(2017) 是对 SYS(2007) - 校验和值 功能的补充。

SYS(2024) 函数 VFP9: SYS(2024) VFP6: 无

说明: 该函数提供一个报表是正常结束还是被取消的有关信息。

SYS(2030) 函数 VFP9: SYS(2030) VFP6: 无

说明: 该函数启用或禁止系统组件用户代码中的调试功能。

SYS(2040) 函数 VFP9: SYS(2040) VFP6: 无

说明: 该函数检测一个报表是否正在被打印或是处于预览模式。

SYS(2060) 函数

VFP9: SYS(2060 [, 0 | 1]) VFP6: 无

说明: 该函数启用或禁止在事件队列中鼠标滚轮事件的合并。

SYS(2300) 函数

VFP9: SYS(2300, nCodePage [, nAction]) VFP6: 无

说明: 该函数从国家语言支持 (NLS) 列表中添加或移除代码页。

SYS(2325) 函数

VFP9: SYS(2325, nWHANDLE) VFP6: 无

说明: 该函数从父窗口的 WHANDLE 返回一个客户窗口的 hWnd。

SYS(2326) 函数

VFP9: SYS(2326, nhWnd) VFP6: 无

说明: 该函数从一个窗口的 hWnd 返回一个 Visual FoxPro 的 WHANDLE。

SYS(2327) 函数

VFP9: SYS(2327, nWHANDLE) VFP6: 无

说明: 该函数从一个 Visual FoxPro 窗口的 WHANDLE 返回一个窗口的 hWnd。

SYS(2336) 函数

VFP9: SYS(2336 [, nAction]) VFP6: 无

说明: 该函数控制从一个 MTDLL 服务器中的临界区进入或退出。

SYS(2339) 函数

VFP9: SYS(2339 [, 0 | 1 ]) VFP6: 无

说明: 该函数设置或返回当释放 COM 对象时 Visual FoxPro 是否调用操作系统函数 CoFreeUnusedLibraries。

SYS(2340) 函数

VFP9: SYS(2340 [,0 | 1 ]) VFP6: 无

说明: 该函数禁止或启用 NT 服务支持。

SYS(2410) 函数 VFP9: SYS(2410) VFP6: 无

说明: 该函数返回一个错误的错误处理器类型。可以在 TRY...CATCH...FINALLY 代码中用 SYS(2410) 来确定一个动作过程,例如,通过使用 DO CASE 结构,来根据处理程序类型处理异常。

SYS(2450) 函数

VFP9: SYS(2450 [, 0 | 1 ]) VFP6: 无

说明: 可以用 SYS(2450) 来指定 Visual FoxPro 在沿着 SET DEFAULT 和 SET PATH 位置搜索之前,先在应用程序中搜索指定的过程或用户自定义函数(UDF)。设置 SYS(2450) 能帮助运行在本地或广域网上的应用程序改进性能。

SYS(2600) 函数

VFP9: SYS(2600, dwAddress, nLength [, cNewString]) VFP6: 无

说明: 该函数转换一个整数为一个内存指针并以串的形式返回内存的内容,或写新的数据到该内存位置。该函数仅适用于高级程序员。

SYS(2700) 函数

VFP9: SYS(2700 [, nValue ]) VFP6: 无

说明: 该函数在 Visual FoxPro 中完全启用或禁止 Windows XP 主题(Theme)支持。

SYS(2800) 函数

VFP9: SYS(2800 [,nFlag] ) VFP6: 无

说明: 该函数禁止或启用 Microsoft Active Accessibility 支持并设置特定的选项来跟踪 Visual FoxPro 表单中当前选择控件的键盘焦点。

SYS(2801) 函数

VFP9: SYS(2801 [, 1 | 2 | 3 ] ) VFP6: 无

说明: 该函数扩展鼠标和键盘事件的事件跟踪。

SYS(2910) 函数

VFP9: SYS(2910 [, nValue]) VFP6: 无

说明: 该函数设置或返回显示在下拉列表框中项目的数量。 建议:掌握该函数。

SYS(3007) 函数

VFP9: SYS(3007 [, nFontCharSet]) VFP6: 无

说明: 该函数为控件上工具提示(ToolTip)中出现的文本指定字体语言脚本。

SYS(3008) 函数

VFP9: SYS(3008 [, 0 | 1] VFP6: 无

说明: 该函数启用或禁止超链接(Hyperlink)工具提示。

SYS(3009) 函数

VFP9: SYS(3009 [, 0 | 1]) VFP6: 无

说明: 该函数启用或禁止 ToolTips 双向文本对齐方向。

SYS(3065) 函数 VFP9: SYS(3065 [, 1]) VFP6: 无

说明: 该函数返回当前内部程序缓存 (PROGCACHE) 设置。该设置决定了可用于运行程序内存的总数。

SYS(3092) 函数

VFP9: SYS(3092 [,cFileName [, lAdditive]]) VFP6: 无

说明: 该函数指定查询 Rushmore 优化级别输出到的文件名。

SYS(3095) 函数

VFP9: SYS(3095, oObject) VFP6: 无

说明: 该函数返回一个 COM 对象的一个向外 IDispatch 指针。

SYS(3096) 函数

VFP9: SYS(3096, nPointer) VFP6: 无

说明: 该函数为一个 IDispatch 指针返回一个 Visual FoxPro COM 对象引用。

SYS(3097) 函数

VFP9: SYS(3097, oObject) VFP6: 无

说明: 该函数在一个 COM 对象上执行一个 IDispatch AddRef 调用。

SYS(3098) 函数

VFP9: SYS(3098, oObject) VFP6: 无

说明: 该函数在一个 COM 对象上执行一个 IDispatch Release 调用。

SYS(3099) 函数

VFP9: SYS(3099 [, 70 | 80 | 90]) VFP6: 无

说明: 该函数启用 SQL 数据引擎与 Visual FoxPro 7.0、8.0 或 9.0 兼容。

SYS(3101) 函数

VFP9: SYS(3101 [, nCodePage]) VFP6: 无

说明: 该函数设置在当前数据工作期上 COM 互用性期间,用于转换字符数据的默认代码页。

TEXTMERGE( ) 函数

VFP9: TEXTMERGE(cexpression_r [, lRecursive [, cLeftDelim [, cRightDelim]]]) VFP6: 无

说明: 该函数提供字符表达的计算值。

TRANSFORM( ) 函数

VFP9: TRANSFORM(eexpression_r, [cFormatCodes]) VFP6: TRANSFORM(eexpression_r, [cFormatCodes])

说明: VFP9中该函数功能增强。例如增加了一些格式符,请参阅该函数的帮助。

TTOC( ) 函数

VFP9: TTOC(texpression_r [, 1 | 2 | 3]) VFP6: TTOC(texpression_r[,1|2])

说明: 在VFP9中,第二个参数使用 3,则以XML DateTime格式返回texpression_r的字符串表式结果。在没有设置SET CENTURY, SET HOURS, SET SECONDS 命令的情况下,返回的字符串将包含19个字符(yyyy-mm-ddThh:mm:ss)。

TYPE( ) 函数

VFP9: TYPE(cexpression_r [, 1]) VFP6: TYPE(cexpression_r)

说明: 在VFP9中,是否使用第二个参数取决于字符表达式cexpression_r是否是一个Collection 集合类的数组。

UNBINDEVENTS( ) 函数

VFP9: UNBINDEVENTS(oEventSource, cEvent, oEventHandler, cDelegate) 或者 UNBINDEVENTS(oEventObject)

或者 UNBINDEVENTS(hWnd [, nMessage]) VFP6: 无

说明: 可以使用UNBINDEVENTS( )解除事件绑定, 或分离一个原来通过BINDEVENT( )绑定到一个Visual FoxPro对像的事件。

WDOCKABLE( ) 函数

VFP9: WDOCKABLE(cWindowName [, lEnable]) VFP6: 无

说明: 该函数返回指定的窗口是否可停靠。

XMLTOCURSOR( ) 函数

VFP9: XMLTOCURSOR(eexpression_r | cXMLFile [, cCursorName [, nFlags ]]) VFP6: 无

说明: 该函数转换 XML 文本为一个Visual FoxPro 临时表或表。

XMLUPDATEGRAM( ) 函数

VFP9: XMLUPDATEGRAM( [ cAliasList [, nFlags [, cSchemaLocation]]]) VFP6: 无

说明: 该函数映射 缓冲区中的表或临时表发生的改变到一个 XML UpdateGram,并返回一个包含UpdateGram的字符串。要使用该函数,必须设置SET MULTILOCKS ON ,并且允许表缓冲