判别索引文件问题 ( 积分: 200 )

  • 主题发起人 主题发起人
  • 开始时间 开始时间

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个用vfp表建立的索引文件,通过程序判断练习者是否按题目要求按指定的字段建立索引.
例如:题目要求对xsda.dbf表按姓名建立一个索引,索引文件名为xm.idx,然后程序判断xm.idx中的索引关键字是否为"姓名".

另外:
请问三级网络的上机题,在TC中运行正常,但在VC++环境中总是提示"连接错误",编译已经通过.我对Vc++不熟悉,希望得到指点,谢谢!
 
Visual FoxPro 9.0 语言参考
SYS(14) - 索引表达式
请参阅
全部折叠 全部展开
返回一个打开的单项索引文件 .idx 的索引表达式,或者返回复合索引文件 .cdx 中索引标识的索引表达式。


SYS(14, nIndexNumber [, nWorkArea | cTableAlias])


参数
nIndexNumber
指定要从打开的索引文件或标识中返回的索引表达式。当 nIndexNumber 从 1 递增到打开的单项索引文件、结构复合和独立复合索引标识的总和时,SYS(14) 以下面的顺序从打开的索引文件和标识中返回索引表达式:
首先从单项索引文件(如果有打开的)中返回索引表达式。包含在 USE 或 SET INDEX 中的单项索引文件的顺序决定索引表达式返回的顺序。
其次返回结构复合索引(如果存在的话)中每个标识的索引表达式。以标识在结构索引中被创建的顺序来返回索引表达式。
最后返回所有打开的独立复合索引中每个标识的索引表达式。以标识在独立复合索引中被创建的顺序来返回索引表达式。
如果 nIndexNumber 大于打开的单项索引文件、结构复合和独立复合索引标识的总和时,返回一个空串。
nWorkArea| cTableAlias
指定一个工作区编号或工作区别名。如果省略了 nWorkArea 和 cTableAlias,将从当前工作区打开的索引文件中返回索引表达式。如果没有指定的表别名,Visual FoxPro 将产生一个错误消息。
返回值
字符型

说明
当用 INDEX 创建索引文件或标识时,一个索引表达式被指定。当用索引文件或标识对表进行排序时,索引表达式决定如何显示和访问表。

有关索引表达式以及创建索引文件和标识的更多信息,请参见INDEX 。SYS(14) 与 KEY( ) 函数相似。

USE 和 SET INDEX 都支持一个索引文件名列表,该列表可以为一个表打开索引文件。单项索引文件、结构复合或独立复合索引文件名的任意组合都可以包含到该索引文件列表中。

请参阅
其他资源
CDX( ) 函数
KEY( ) 函数
MDX( ) 函数
NDX( ) 函数
REINDEX 命令
SET INDEX 命令
SET ORDER 命令
SYS( ) 函数总览
TAG( ) 函数


发送有关本主题的建议给微软。© Microsoft 公司版权所有。
本主题中文翻译:曾广岷 E-MAIL: TLDS_ZGM@SOHU.COM
 
Visual FoxPro 9.0 语言参考
KEY( ) 函数
请参阅 示例
全部折叠 全部展开
返回索引标识或索引文件的索引关键字表达式。


KEY([CDXFileName,] nIndexNumber [, nWorkArea | cTableAlias])


参数
CDXFileName
指定复合索引文件的文件名。KEY( ) 函数将返回 .cdx 文件中索引标识的索引关键字表达式。所指定的复合索引文件可以是和表一起自动打开的结构复合索引文件,也可以是独立的复合索引文件。
nIndexNumber
指定要返回哪一个索引关键字表达式。USE 和 SET INDEX 命令都支持一个索引文件列表,从中可以为一个表同时打开多个索引文件。索引文件列表中可以包含 .idx 单项索引文件、结构复合索引文件或独立的复合索引文件等三种索引文件的任意组合。数值表达式 nIdexNumber 指定从打开的索引文件中返回哪一个索引表达式。随着 nIndexNumber 从 1 递增到所打开的 .idx 单项索引文件、结构复合索引文件和独立复合索引文件三者的总数,KEY( ) 函数将按下列顺序依次从打开的各索引文件中返回索引表达式:
首先返回 .idx 单项索引文件(如果有此类文件打开)中的索引表达式。各个单项索引文件在 USE 或 SET INDEX 命令中的排列顺序决定索引表达式的返回顺序。
其次返回结构复合索引(如果有)中的每个标识的索引表达式。多个标识的索引表达式的返回顺序取决于各标识在结构复合索引中的创建顺序。
最后返回打开的独立复合索引中的每个标识的索引表达式。多个标识的索引表达式的返回顺序取决于标识在独立复合索引中创建的顺序。
若 nIndexNumber 大于打开的索引文件总数(包括 .idx 单项索引文件、结构复合索引文件和独立的复合索引文件),则返回空字符串。
nWorkArea
指定表所在的工作区号,KEY( ) 函数将返回该表的索引关键字表达式。
cTableAlias
指定表别名,KEY( ) 函数将返回该表的索引关键字表达式。若指定的表别名不存在,Visual FoxPro 将产生错误信息。若省略 nWorkArea 和 cTableAlias 参数,将返回当前工作区中打开表的索引关键字表达式。
返回值
字符型

说明
用 INDEX 命令创建索引标识或索引文件时可指定其索引关键字表达式。当该索引标识或索引文件作为主控索引标识或主控索引文件打开时,其索引关键字表达式将决定表的显示或访问方式。

有关创建索引标识、索引文件以及索引关键字表达式的详细内容,请参见 INDEX。


示例
下面的示例先打开 testdata 数据库中的 customer 表,然后在 FOR ... ENDFOR 创建的循环中使用 KEY( ) 函数来显示 customer 结构索引文件中每个索引标识的索引表达式。每个结构索引标识名和它的索引表达式同时显示。

复制代码
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data/testdata')
USE Customer && Open customer table
CLEAR

FOR nCount = 1 TO TAGCOUNT( )
IF !EMPTY(TAG(nCount)) && Checks for tags in the index
? TAG(nCount) + ' ' && Display tag name
?? KEY(nCount) && Display index expression
ELSE
EXIT && Exit the loop when no more tags are found
ENDIF
ENDFOR


请参阅
其他资源
DESCENDING( ) 函数
INDEX 命令
REINDEX 命令
SET INDEX 命令
SYS(14) - 索引表达式
USE 命令
函数
语言参考


发送有关本主题的建议给微软。© Microsoft 公司版权所有。
本主题中文翻译:zxplhzlt,E-MAIL:zxplhzlt@sina.com
 
我说的是如何在delphi编写的程序中实现.
 
先安装oledb for vfp9,然后可以调用绝大多数VFP的命令
如下代码摘自我的程序,你可以参考一下

procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
CLOSE;
sql.Clear;
sql.Add('delete from splqk');
ExecSql;
close;
close;
end;
adoconnection1.Close;
adoconnection1.Execute('pack splqk');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
s1,s2,s3,s:string;
begin
s1:='Provider=VFPOLEDB.1;Data Source=';
s3:='data;Password="";Collating Sequence=MACHINE';
s2:=ExtractFilePath(Application.ExeName);
s:=s1+s2+s3;
ADOConnection1.ConnectionString :=s;
ADOConnection1.Connected:=true;

end;
 
怎样oledb for vfp9?
 
http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fb%2ff%2fb%2fbfbfa4b8-7f91-4649-8dab-9a6476360365%2fvfpoledb.exe
 
谢谢lps,用你的方法可以获得表中的索引名,但索引类型和升降序没办法获得,请继续帮忙!再一次谢谢!
 
Visual FoxPro 9.0 语言参考
ATAGINFO( ) 函数
请参阅
全部折叠 全部展开
创建一个包含索引文件信息的数组


ATAGINFO(ArrayName [,cCDXName [, nWorkArea | cTableAlias]])


参数
ArrayName
指定要创建的数组名。如果指定的数组不存在 Visual FoxPro 将创建它。
cCDXName
指定要返回信息的复合索引文件(.cdx)的名称。 注意:
指定一个空串 ("") 将返回选定表中的所有打开的 .cdx 文件和所有打开的 .idx 文件中的标识的个数。


nWorkArea
指定表所在的工作区。
cTableAlias
指定表的别名。 注意:
省略 cTableAlias 和 nWorkArea 时,将使用当前工作区中的表。


返回值
数值型。 ATAGINFO( ) 返回在复合索引文件(.cdx)或当前表中打开的单项索引文件(.idx)中的索引标识的个数。

说明
下表中列出了ATAGINFO( ) 创建的数组中包含的信息。

列 说明 数据类型
1
.cdx 文件中的索引标识名或.idx 索引文件的文件名
字符

2
索引标识类型
字符

3
索引键表达式
字符

4
筛选条件表达式
字符

5
索引顺序 (升序或降序)
字符

6
比较序列
字符


请参阅
其他资源
TAG( ) 函数
TAGCOUNT( ) 函数
TAGNO( ) 函数
Tag 属性
使用表索引
函数


发送有关本主题的建议给微软。© Microsoft 公司版权所有。
本主题中文翻译:s_tiger
 
后退
顶部