请问在foxpro中如果用total to 文件,inde to 文件 每次重新生成时都要出现提示是否覆盖。有什么命令能关

 我来答
uebd
证券观察员

2013-04-06 · TA获得超过610个赞
知道小有建树答主
回答量:393
采纳率:100%
帮助的人:166万
展开全部

Total 命令

计算当前选定表中数值字段的总和。

语法

TOTAL TO TableName ON FieldName

[FIELDS FieldNameList]

[Scope]

[FOR lExpression1]

[WHILE lExpression2]

[NOOPTIMIZE]

参数

TableName

指定存放计算结果的表的名称。如果指定的表不存在,Visual FoxPro 将创建它;[[[如果表存在,并且 SET SAFETY 为 ON,则 Visual FoxPro 将询问是否要改写这个已存在的表。如果 SET SAFETY 为 OFF,则不做任何提示直接改写输出表。]]]

FieldName

指定总计时作为分组依据的字段。表必须以该字段排序,或者打开的索引或索引标识必须以该字段作为其关键字表达式。

FIELDS FieldNameList

指定要总计的字段。列表中的字段名用逗号分隔。如果省略了 FIELDS 子句,默认合计所有的数值型字段。

Scope

指定要合计的记录范围。范围子句有:ALL,NEXT nRecords,Record nRecordNumber 和 REST。有关范围子句的详细内容,请参阅 Scope 子句主题或者《开发指南》的第二章“语言概述”。

TOTAL 命令默认的范围是全部 (ALL) 记录。

FOR lExpression1

指定一个条件,只有满足该逻辑条件 lExpression1 的记录包含在总计中。

如果 lExpression1 是可优化表达式,那么 Rushmore 可以优化 TOTAL ... FOR 创建的查询。为了达到更好的性能,请在 FOR 子句中使用可优化表达式。

WHILE lExpression2

指定一个条件,只要逻辑表达式 lExpression2 计算为“真”(.T.) 时,当前表中的记录就包含在总计中。

NOOPTIMIZE

关闭 TOTAL 的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术主题或者《开发指南》的第十七章“优化应用程序”。

说明

要使用此命令,当前工作区中的表必须经过排序或索引。对于具有相同字段值或索引关键字值的各组记录,将分别计算其总计值。总计结果放入另一个表的记录中,同时在此表中还将对这些字段值或索引关键字值创建一条记录。

如果第二个表中数值字段的宽度不足以放置总计值,将会发生数值溢出错误。当发生数值溢出错误时,Visual FoxPro 保存总计值最主要的部分:

  •      小数位被截断,即对总计值余下小数位进行圆整。

  •      如果总计值仍然不能放下,例如包含七位以上的数字,这时将采用科学计数法表示。

  •      最后,用星号代替字段的内容。




Index 命令

创建一个索引文件,利用该文件可以按某种逻辑顺序显示和访问表记录。

语法

INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]

[FOR lExpression]

[COMPACT]

[ASCENDING | DESCENDING]

[UNIQUE | CANDIDATE]

[ADDITIVE]

参数

eExpression

指定一个索引表达式,该表达式中可以包含当前表中的字段名。在索引文件中,按索引表达式给每一个表记录都创建一个索引关键字,Visual FoxPro 使用这些关键字来显示和访问表中的记录。

附注

尽管不提倡,eExpession 也可以是一个内存变量、数组元素或者其他工作区中表的字段或字段表达式。备注字段不能单独用于索引文件表达式中,它们必须与其他的字符表达式结合起来。如果索引中包含的变量或字段不存在或不能定位,Visual FoxPro 会产生错误信息。

如果索引表达式中的字段以表别名或工作区字母开头,Visual FoxPro 会产生错误信息。虽然在包含别名字段的情况下,可以用 Rushmore 技术优化 FOR 子句,但在创建索引时最好避免使用别名字段。在有些情况下(USE ... AGAIN、SQL 查询等等),Visual FoxPro 会自动给表指定一个不同的别名,这时可能不能正确更新或使用索引。有关 Rushmore 技术的详细内容,请参阅《开发指南》第十七章“优化应用程序”。

如果要建立一个具有可变长度关键字的索引,关键字会被空格填充。Visual FoxPro 不支持可变长度的索引关键字。

索引关键字的长度可以为 0。例如,当索引表达式是空备注字段的一个子字符串时,所创建的索引关键字长度就为 0。当 Visual FoxPro 创建索引时,它检验表中第一个记录的字段,如有一个字段为空,可能需要向第一个记录中这样的字段内填入一些临时数据,以免产生长度为 0 的索引关键字。

TO IDXFileName

创建 .IDX 索引文件。索引文件的默认扩展名为 .IDX,可以使用一个与之不同的扩展名,也可以在 Visual FoxPro 配置文件内改变索引文件的这个默认扩展名。创建索引文件时,必须遵循标准 MS-DOS 的文件命名规则。

TAG TagName [OF CDXFileName]

创建一个复合索引文件。复合索引文件是一种可包含任意数量的独立标识(索引项)的单个索引文件,每一个标识都由其唯一标识名确定。标识名必须以字母或下划线开头,最多可由 10 个字母、数字或下划线组成。复合索引文件中的标识数目仅受可用内存和磁盘空间的限制。

多项复合索引文件一般是压缩的。创建复合索引文件时不必包含 COMPACT 。复合索引文件的扩展名为 .CDX。

可创建的复合索引文件有两种类型:结构复合索引文件的和非结构复合索引文件。

结构复合索引文件

在 TAG TagName 参数中不包含可选的 OF CDXFileName 子句,便可以创建结构复合索引文件。结构复合索引文件的基本名(不含扩展名的文件名)总是与表的基本名相同,并且自动与表同时打开。

如果一个表的复合索引文件不能被定位、已被删除,或者已被重命名,则在打开该表时会显示一个对话框。这时如果在对话框中选择默认的“取消”按钮,则不打开表;如选择“忽略”按钮,则打开该表,并且删除表头中的标记。表头表明该表与结构复合索引文件相关联。

提示

如果一个结构复合索引已经与它的表脱离关系,则用下面的命令可以使它重新和表相关联:

USE TableName INDEX CDXFileName

其中,CDXFileName 是与表脱离关系的结构复合索引名。如果结构复合索引与表脱离关系以后对表进行了修改,则需要重索引该表。

非结构复合索引文件

在 TAG TagName 参数之后包含 OF CDXFileName,便可以创建非结构复合索引文件。与结构复合索引不同的是,必须明确使用 SET INDEX 命令或 USE 命令中的 INDEX 子句打开非结构复合索引文件。

创建并打开一个复合索引文件之后,执行带有 TAG TagName 参数的 INDEX 命令可以在该复合索引文件中添加一个标识。

FOR lExpression

指定一个条件,只显示或访问满足这个条件表达式 lExpression 的记录,索引文件只为那些满足条件表达式的记录创建索引关键字。

如果 lExpression 是一个可优化表达式,Rushmore 将优化 INDEX ... FOR lExpression 命令。要获取最佳性能,请在 FOR 子句中使用可优化表达式。有关详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术,或者《开发指南》第十七章“优化应用程序”。

COMPACT

使用 COMPACT 可以创建一个压缩的 .IDX 文件。

ASCENDING

指定 .CDX 文件为升序。在默认情况下,按升序创建 .CDX 标识(包含 ASCENDING 参数可以将索引文件的排序方式明确指示出来)。同样,包含 DESCENDING 可按降序索引一个表。

DESCENDING

指定 .CDX 文件为降序。在创建 .IDX 文件时不能包含 DESCENDING 参数,但可以用 SET INDEX 或 SET ORDER 命令将 .IDX 索引文件指定为降序。

UNIQUE

对于一个索引关键字值,只有第一个满足该值的记录包含在 .IDX 文件或 .CDX 标识中。利用 UNIQUE 子句可以避免显示或访问记录的重复值。所有添加到表中的记录,如果与表中原有记录有重复的索引关键字值,则不包含在索引文件之内。使用 INDEX 命令的 UNIQUE 选项,与在执行 INDEX 或 REINDEX 命令之前执行 SET UNIQUE ON 命令完全等效。

在 UNIQUE 索引或索引标识处于激活状态时,如果更改了一个有重复索引关键字值的记录,则同时需要更新索引或索引标识。但在重新用 REINDEX 命令重索引该文件之前,仍然不能访问下一个有相同索引关键字值的记录。

CANDIDATE

创建候选结构索引标识。只有在创建结构索引标识时才能包含关键字 CANDIDATE;否则,Visual FoxPro 会产生错误信息。

使用候选索引标识可以避免索引表达式 eExpression 指定的字段或字段组合有重复值。Candidate(候选)一词是指索引类型;因为候选索引中不同的记录没有重复值,所以它们可以作为主索引的“候选”索引。

如果一个字段或字段组合已包含重复值,那么为它创建候选索引标识时,Visual FoxPro 会产生错误信息。

有关候选索引标识和主索引标识的详细内容,请参阅设置主索引或候选索引 和《开发指南》第七章“处理表”。

ADDITIVE

所有先前已打开的索引文件保持打开状态。如省略 ADDITIVE 子句,则在用 INDEX 命令创建索引文件或表时,关闭所有先前已打开的索引文件(结构复合索引文件除外)。

说明

在具有索引文件的表中,可以按索引表达式所规定的顺序显示或访问记录,但并不按索引文件更改表的物理存储顺序。

如果 SET TALK 设置成 ON,则在索引过程中,Visual FoxPro 会报告已建立索引的记录数目。索引过程中显示记录的计数器间隔可由 SET ODOMETER 指定。

使用 DISPLAY STATUS 命令可以显示打开的索引文件的许多内容,其中包括所有打开的索引文件的文件名、类型(结构、非结构的 .CDX、.IDX)、索引表达式、排序序列以及主控索引文件名或主控标识名。

可以打开的索引文件(.CDX 或 .IDX)数目只受内存或系统资源的限制。在 Visual FoxPro、FoxPro for Windows 和 FoxPro for MS-DOS 中,能打开的文件总数目由 MS-DOS 的配置文件 CONFIG.SYS 中的 FILES 设置决定。有关 FILES 设置的详细内容,请参阅 MS-DOS 手册。

索引类型

Visual FoxPro 允许创建两种类型的索引文件:

 ?   包含多个索引标识项(索引名)的 .CDX 复合索引文件

 ?   包含一个索引项的 .IDX 单项索引文件

也可以创建结构复合索引文件,这种索引文件在打开表时自动打开。

提示

因为结构复合索引文件随表的打开而自动打开,所以这种类型比较常用。

包含 COMPACT 子句可创建压缩的 .IDX 索引文件,复合索引文件总是压缩的。

在 Visual FoxPro 与 FoxBASE+ 或 FoxBASE+ for Macintosh 中共享文件时,应该使用非压缩的 .IDX 索引文件。否则,在创建 .IDX 时,应包含 COMPACT 子句以利用 Visual FoxPro 

的 Rushmore 技术。

索引的顺序与更新

表的显示或访问顺序只由一个索引文件(主控索引文件)或标识(主控标识)控制。有一些命令(如 SEEK 命令)使用主控索引文件或标识搜索记录,但是在修改表时,所有已打开的 .IDX 和 .CDX 索引文件都将被更新。使用 USE 命令的 INDEX 子句或 SET INDEX 和 SET ORDER 命令可以指定主控索引文件或标识。

用户自定义函数

索引表达式中虽然可以包含用户自定义函数,但最好不要这样做,因为索引表达式中使用用户自定义函数会增加创建或更新索引所需的时间。另外,如果索引表达式中使用了用户自定义函数,有可能不更新这个索引。

如果索引表达式中使用了用户自定义函数,则应该保证 Visual FoxPro 能够找到这个函数。当 Visual FoxPro 创建索引时,索引表达式存储在索引文件中,但用户自定义函数并不存储在索引文件中,索引文件中只保存指向用户自定义函数的引用。



百度网友a299049
2013-04-10 · TA获得超过667个赞
知道小有建树答主
回答量:807
采纳率:100%
帮助的人:192万
展开全部
SET SAFETY ON | OFF
参数
ON
(默认值)指定改写已有文件之前显示一个对话框。该对话框将提供选项使您决定是否改写已有文件。

对于表设计器,指定表结构被修改后重新计算表规则或字段规则、默认值以及错误信息等。保存表结构所做的修改之后,将使用新的或修改后的数据有效性规则进行数据有效性检查。如果有效性规则包含 UDF (用户自定义函数),将不计算 UDF 并且忽略有效性规则。

对于 ALTER TABLE 命令,指定表结构被修改后重新计算表规则或字段规则、默认值以及错误信息等。保存表结构所做的修改之后,将使用新的或修改后的数据有效性规则进行数据有效性检查。如果有效性规则包含 UDF (用户自定义函数),将不计算 UDF 并且忽略有效性规则。
OFF
指定在改写已有文件时不显示对话框。

对于表设计器,指定表结构被修改后不重新计算表规则或字段规则、默认值以及错误信息等。但是,保存表结构所做的修改之后,将使用新的或修改后的数据有效性规则进行数据有效性检查。

对于 ALTER TABLE 命令,指定表结构被修改后不重新计算表规则或字段规则、默认值以及错误信息等。保存表结构所做的修改之后,也不使用新的或修改后的数据有效性规则进行数据有效性检查。

备注
SET SAFETY 的作用域是当前数据工作期。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lnxcmy
2013-04-06 · TA获得超过6335个赞
知道小有建树答主
回答量:1310
采纳率:77%
帮助的人:439万
展开全部
试试:set safe off
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式