当前位置: 代码迷 >> VFP >> DBF索引有关问题
  详细解决方案

DBF索引有关问题

热度:4080   发布时间:2013-02-26 00:00:00.0
DBF索引问题
服务器:SVR2008

应用程序:VFP9+DBF, 应用F/S方式.

a用户群:部份用户直接访问共享EXE运 行(如\\服务器\共享文件夹\abc.exe)

b用户群:部份用户远程进入Svr2008 运行程序(如:d:\文件夹\abc.exe)

问题:

1.在SVR2008上给DBF表建索引,b用户群可以使用,a用户群不能使用.

2.反之,在XP上给DBF表建索引,b用户群不可以使用,a用户群可以使用.

** 以上所说能使用是指:使用seek 能找得到数据

** 以上所说不能使用是指:使用seek 不能找得到数据.

---以下为测试数据,有SVR2008的朋友帮忙测试一下

creat curs aa(id c(2),name c(10))

for i=1 to 99
  insert into aa values(padl(tran(i),2,"0"),tran(i*i))
endfor

&& 将表保存到硬盘

示例一:AA.dbf 以Id在SVR2008中建索引。
1. 在SVR2008中运行此代码:
Use aa.dbf 
Set order to id
Seek ‘52’

&&找到记录。

2.在XP中运行此代码:
Use aa.dbf 
Set order to id
Seek ‘52’

&&找不到记录。

示例二:AA.dbf 以Id在XP中建索引。

1. 在SVR2008中运行此代码:
Use aa.dbf 
Set order to id
Seek ‘52’

&&找不到记录。

2.在XP中运行此代码:
Use aa.dbf 
Set order to id
Seek ‘52’

&&找到记录。



------解决方案--------------------------------------------------------
先执行 SET COLLATE TO "MACHINE", 然后用 reindex 重新索引
主程序开始的环境设置中也加入 SET COLLATE TO "MACHINE"
  相关解决方案