博文
VFP命令系列教程---AVERAGE 命令(2006-04-30 12:35:00)
摘要:计算数值表达式或字段的算术平均值。AVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILElExpression2]
[TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
参数
ExpressionList
指定求平均值的表达式。ExpressionList 可以是用逗号分隔的表字段或包含表字段的数值表达式。
Scope
指定求平均值的记录或记录范围。只有在指定范围内的记录才参加求平均值运算。Scope 子句可以为 :ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。默认的 Scope(范围)为所有记录。
包含 Scope 子句的命令仅处理活动工作区中的表。
FOR lExpression1
指定只有满足逻辑条件 lExpression1 的记录才参与计算。这样可以筛选出不想要的记录。
如果 lExpression 是可优化的表达式,Rushmore 技术将优化 AVERAG FOR 查询。若要获得最佳性能,应在 FOR 子句中使用可优化的表达式。有关 Rushmore 可优化表达式的详细内容,请参阅 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
WHILE lExpression2
指定只要逻辑表达式 lExpression2 为“真”(.T.),记录就参与运算。直到遇到第一个使 lExpression2 计算得“假”(.F.) 为止。
TO VarList
指定保存平均值结果的内存变量或数组元素的列表。
TO ARRAY ArrayName
指定保存平均值结果的一维数组。一维数组可以在使用 AVERAGE 命令前创建。
如果指定数组不存在,Visula FoxPro 将自动创建该数组。如果数组存在,但大小不能包含所有结果,Visula FoxPro 将自动根据信息量增加数组大小。
NOOPTIMIZE
取消 AVERAGE 命令的 Rushmore 优化。有关的详细内容,请参阅 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
备注
除非包含可选的表达式列表,否则选定表的所......
VFP命令系列教程---ASSERT 命令(2006-04-30 12:34:00)
摘要:ASSERT 命令
若指定的逻辑表达式为假 (.F.),则显示一个调试消息框。ASSERT lExpression [MESSAGE cMessageText]
参数
lExpression
指定一个逻辑表达式 lExpression。若求值后 lExpression 为假 (.F.),则显示一个调试消息框;若求值后 lExpression 为真 (.T.),则不显示。
cMessageText
指定调试对话框中显示的文本。如果您省略 cMessageText,则显示默认文本;默认文本中包括当前中断所在的 ASSERT 语句的行号和所在的过程。
备注
如果 SET ASSERTS 命令设置为 OFF ,则本命令被忽略。
信息框包括 取消, 调试, 忽略, 全部忽略 按钮。下表列出选择各按钮后的动作。
按钮
动作
调试
程序的执行被挂起,同时显示“Visual FoxPro 调试器”窗口,其中的“跟踪”窗口处于激活状态。
取消
结束程序的执行
忽略
程序继续执行 ASSERT 命令后面的命令。
全部忽略
程序继续执行 ASSERT 命令后面的命令,并且 SET ASSERTS 设置为 OFF。所以,从此往后的所有 assert 命令都被忽略,除非再次将 SET ASSERTS 设置为 ON。......
VFP命令系列教程---APPEND PROCEDURES 命令(2006-04-30 11:04:00)
摘要:APPEND PROCEDURES 命令
将文本文件中的存储过程追加到当前数据库中。
APPEND PROCEDURES FROM FileName [AS nCodePage] [OVERWRITE]
参数
FileName
指定文本文件,函数将追加其中的存储过程。
AS nCodePage
指定要追加其存储过程的文本文件所在的代码页。Visual FoxPro 在复制文本文件的内容时,自动将文本文件的内容转换成指定的代码页。
如果指定的 cCodePage 值无效,Visual FoxPro 将产生错误信息。可以使用 GETCP() 函数显示“代码页”对话框,并从中指定文本文件的代码页,此文本文件包含要追加的存储过程。
如果忽略 AS nCodePage,Visual FoxPro 将复制文本文件的内容,并自动将文本文件内容转化成 Visual FoxPro 的当前代码页。您可以用 CPCURRENT() 函数设置 Visual FoxPro 的当前代码页。
如果 nCodePage 值为零,Visual FoxPro 将假定文本文件的代码页与当前数据库的代码页相同,不进行代码页转换。
OVERWRITE
指定用文本文件中的过程改写数据库中的当前存储过程。如果忽略参数 OVERWRITE,将不改写数据库中的当前存储过程,文本文件中的存储过程追加到当前存储过程中。
备注
APPEND PROCEDURES 不能用于分发的可执行程序中。如果你的程序使用该命令, 将产生错误, "此功能不可用"。
使用 append procedures 命令,可以用编程方式修改数据库中的存储过程。运行 APPEND PROCEDURES 时,数据库必须是打开的,并且为当前数据库,否则 Visual FoxPro 将产生错误信息。
注意 要面查看或存储过程, 使用数据库设计器。
示例
下面的示例先打开数据库 testdata,然后创建一个包含单个备注字段的临时表 mytable,用 replace 命令把存储过程 myprocedure 存入备注字段中。接着使用 copy memo 命令创建包含备注字段......
VFP命令系列教程---APPEND MEMO 命令(2006-04-30 11:01:00)
摘要:APPEND MEMO 命令
将文本文件的内容复制到备注字段中。
APPEND MEMO MemoFieldName FROM FileName[OVERWRITE] [AS nCodePage]
参数
MemoFieldName
指定备注字段名,文件内容将追加到此备注字段中。
FROM FileName
指定文本文件,其内容将复制到备注字段中。此参数必须包含完整的文本文件名,包括扩展名。
OVERWRITE
用文件的内容替换备注字段当前的内容。
AS nCodePage
指定复制到备注字段中的文本文件的代码页。Visual FoxPro 复制文本文件的内容,并在将数据复制到备注字段的过程中,自动将数据从指定代码页转换成备注字段所在表的代码页。如果包含备注段的表没有使用代码页标记,Visual FoxPro 自动将数据从指定代码页转换到当前 Visual FoxPro 代码页。
如果指定的 nCodePage 值无效,Visual FoxPro 将产生一条错误信息。您可以使用 GETCP() 函数显示“代码页”对话框,并从中指定要追加的表或文件的代码页。
如果忽略 AS nCodePage 子句,或者指定 nCodePage 值为零,将不转换文本文件的代码页。
备注
如果忽略参数 OVERWRITE,文本文件的全部内容将追加到当前记录的指定备注字段中。
示例
在下面的示例中,先将备注字段 notes 的内容复制到文件 test.txt 中,然后将 test.txt 的内容追加到备注字段,最后用 test.txt 的内容改写备注字段中的内容。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE employee && 打开 Employee 表
WAIT WI......
VFP命令系列教程---APPEND GENERAL 命令(2006-04-30 10:58:00)
摘要:APPEND GENERAL 命令
从文件中导入 OLE 对象并将其放入通用字段中。
APPEND GENERAL GeneralFieldName [FROM FileName]
[DATA cExpression] [LINK] [CLASS OLEClassName]
参数
GeneralFieldName
指定放置 OLE 对象的通用字段名。可以用带有表别名的字段名来指定在非当前工作区中打开的表的通用字段。
FROM FileName
指定包含 OLE 对象的文件。必须给出文件全名,包括扩展名。如果文件不在当前目录或当前文件夹中,还需要给出文件的路径。
DATA cExpression
指定字符表达式,此表达式作为一个字符串存入 OLE 对象的通用字段中。OLE 对象必须能接收和处理字符串。例如,不能往 Paintbrush. 的图片对象中存入字符串。
LINK
建立 OLE 对象和包含对象的文件间的链接。OLE 对象出现在通用字段,但对象定义仍在文件中。如果省略 LINK,OLE 对象将嵌入到通用字段中。
CLASS OLEClassName
指定 OLE 对象是 OLE 类,而非其默认类。
当包含 OLE 对象的文件的扩展名与默认的扩展名不同而且你想为类强制行为时, 你可以指定一个类名。如果默认的扩展名可用于多个 Automation 服务程序, 包括 class 来指定一个特定的服务程序。
备注
如果在通用字段中已有一个 OLE 对象,它将被源文件中的 OLE 对象取代。要从通用字段中移去 OLE 对象, 使用不带额外参数的 APPEND GENERAL GeneralFieldName (GeneralFieldName 是要清除的通用字段)。
关于 Visual FoxPro 中的 OLE 对象的更多信息, 参见添加 OLE。
示例
以下示例从 excel 目录或文件夹中导入 microsoft excel 图表,存入通用字段 mygenfield 中。
CREATE TABLE MyGenTbl (mygenfield G)
VFP命令系列教程---APPEND FROM 命令(2006-04-30 10:42:00)
摘要:APPEND FROM 命令
从一个文件中读入记录,追加到当前表的尾部。
APPEND FROM FileName | ? [FIELDS FieldList] [FOR lExpression]
[[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD |
SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5
[SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage]
参数
FileName
指定从哪个文件中读入记录。如果给出的文件名不包含扩展名,则将文件默认为 Visual FoxPro 表,扩展名为 .DBF。如果文件是 Visual FoxPro 表,无论SET DELETED 为何种设置,表中标记为删除的记录也将添加到当前表中。
?
显示打开对话框,从中可以选择从哪个表中读入记录。
FIELDS FieldList
指定添加哪些字段数据。
FOR lExpression
为当前选定表中每一条 lExpression 为“真”(.T.) 的记录追加新记录,直至达到当前选定表的末尾。如果省略 FOR,则整个源文件记录都追加到当前表中。
TYPE
指定源文件类型。如果指定的源文件类型不是 Visual FoxPro 表,则必须指定文件类型,但不必包括 TYPE 关键字。您可以从各种类型文件(包括分隔 ASCII 文本文件)中读入信息添加到表中,在这些文件中可以指定字段分隔符。
如果要追加的源文件扩展名不是默认的扩展名,源文件名必须包括文件扩展名。例如,Microsoft......
VFP命令系列教程---APPEND FROM ARRAY 命令(2006-04-30 10:27:00)
摘要:APPEND FROM ARRAY 命令
对数组中的每一行,添加一条记录到当前选定表中,并从相应的数组行中取出数据添加到记录中。
APPEND FROM ARRAY ArrayName [FOR lExpression]
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
参数
ArrayName
指定数组名,该数组包含要复制到新记录中的数据。命令将把数组中所有的行都追加到表中。
FOR lExpression
为数组中用于追加的记录指定条件。在 lExpression 条件表达式中必须包含目标字段名。
在数组中的行追加到表中的记录之前,先检查与 lExpression 中指定的目标字段对应的数组元素是否满足 lExpression 中的条件。如果数组元素满足条件,则将记录追加表中。
如果数组元素不满足条件,这一数组行不追加到表中,并继续检查下一行。
FIELDS FieldList
指定只有 FieldList 中的字段才从数组进行更新。FieldList 中的第一个字段用数组第一个元素的内容更新,第二个字段用第二个元素更新,依此类推。
FIELDS LIKE Skeleton
指定从数组中更新与字段梗概 Skeleton 匹配的字段。
FIELDS EXCEPT Skeleton
指定从数组中更新所有与字段梗概 Skeleton 不匹配的字段。
字段梗概 Skeleton 支持通配符。例如,为了指定从数组更新所有以字母A与P开头的字段,可以用:
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P*
LIKE 子句可以同 EXCEPT 子句组合使用:
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*
备注
在 APPEND FROM ARRAY 命令中,备注字段和通用字段将被忽略。如果表处于打开状态并被共享使用,在追加记录时,APPEND FROM ARRAY......
VFP命令系列教程---APPEND 命令(2006-04-30 10:13:00)
摘要:APPEND 命令
在表的末尾添加一个或多个新记录。
APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
参数
BLANK
在当前表的末尾添加一个空记录。Visual FoxPro 在发出 APPEND BLANK 命令时并不打开编辑窗口。
可以使用 BROWSE、CHANGE 或 EDIT 命令编辑新记录。
IN nWorkArea
指定要添加新记录的表所在的工作区。
IN cTableAlias
指定要添加新记录的表的别名。
如果省略 nWorkArea 和 cTableAlias,新记录将添加到当前选定工作区的表中。如果发出 APPEND 命令,空记录将添加到由 nWorkArea 或 cTableAlias 指定的工作区的表中,并且自动选定该表;如果发出 APPEND BLANK 命令,空记录将添加到指定的 nWorkarea 或 cTableAlias 工作区的表中,但不选定表。
NOMENU
指定将表菜单标题从系统菜单栏中删除,以避免改变编辑窗口的格式。
备注
当发出 APPEND 或 APPEND BLANK 命令,并且没有在当前选定工作区中打开表时,将显示一个打开对话框,您可以在对话框中选择需要添加记录的表。
APPEND 命令打开一个编辑窗口,您可以在其中输入一个或多个新记录。增加新记录后,Visual FoxPro 将自动修改打开的所有索引。
示例
以下示例用 append blank 命令创建一个有 10 条记录的表,记录中包含有随机值,然后显示表的最大值和最小值。
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && 添加 10 条记录
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND() && 插入随机值
ENDFOR
CLEAR<......
VFP命令系列教程---ALTER TABLE – SQL 命令(2006-04-30 10:09:00)
摘要:以编程方式修改表的结构。ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1
FieldType [( nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]]
[AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1]
[primary key | UNIQUE [COLLATE cCollateSequence]]
[REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [NOVALIDATE]
或者ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL | NOT NULL] [SET DEFAULT eExpression2]
[SET CHECK lExpression2 [ERROR cMessageText2]] [ DROP DEFAULT ] [ DROP CHECK ] [ NOVALIDATE ]
或者ALTER TABLE TableName1 [DROP [COLUMN] FieldName3]
[SET CHECK lExpression3 [ERRORcMessageText3]] [DROP CHECK]
[ADD primary key eExpression3 [FOR lExpression4] TAG TagName2
[, COLLATE cCollateSequence]] [DROP primary key]
[ADD UNIQUE eExpression4 [[FOR lExpression5] TAG TagName3
[ COLLATE cCollateSequence]]] [DROP UNIQUE TAG TagName4]
[ADD foreign key [eExpression5] [FOR lExpression6] TAG TagName......
VFP命令系列教程---ADD TABLE 命令(2006-04-30 10:01:00)
摘要:ADD TABLE 命令
在当前数据库中添加一个自由表。
ADD TABLE TableName | ? [NAME LongTableName]
参数
TableName
指定添加到数据库中的表的名称。
?
显示“打开”对话框,从中可以选择添加到数据库中的表。
NAME LongTableName
指定表的长名。长名可以包含 128 个字符,可用来取代扩展名为 .DBF 的短文件名。
备注
将表添加到数据库中后,可以象其他数据库表一样对该表进行操作。
表添加到数据库中后,就不再是自由表。但是使用 REMOVE TABLE 命令又可以使数据库中的任何一个表成为自由表。
要添加的表必须具备下列条件:
该表是有效的 .DBF 文件。
除非为表指定一个唯一的长名称,否则表不能与打开数据库中已有的表同名。
表不能同时放在另一个数据库中。使用 REMOVE TABLE 命令可把表从另一个数据库中移去。
要添加表的数据库不能在一个事务处理中被调用。
示例
下面的示例创建名为 mydbc1 和 mydbc2 的两个数据库和一个名为 table1 的表。在创建表时,把表添加到数据库 mydbc1 中,然后关闭这个表,并将它从数据库 mydbc1 中移去。接着使用 ADD TABLE 命令把表添加到 mydbc2 中,最后使用 rename 命令将表名由 table1 改为 table2。
CRE......