服务器: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"