请教十三豆老师和都市夜猫老师!

dohpin 2012-04-27 09:52:37
请教十豆三老师和都市夜猫老师!

表索引的问题


表单上有20个用textbox组成的一列book1,book2,...,book20.
这个功能是,当表单进入编辑状态的时候,右键单击任何一个book(i),如果book(i-1)有内容,会把它复制下来;或者可以在book(i)用键盘输入,然后回车。

现在的问题是,运行程序时,比如说book1有内容是abcdefg,右键单击book2处,本来空白的book2也变成abcdefg,这个没问题。然后再右键单击book3,虽然book3处显示abcdefg,但是会显示错误“incorrect XX”,book4就不能再点了。

出错的地方大概是这样:

select ("BOOK")
set order to Book_no &&Book_no在一个cdx表中,索引的表达式为alltrim(A)+alltrim(B)
IF SEEK(&lc_FieldName) &&debug运行的话错误行就出现在这里,找不到&lc_FieldName,然后就跳去ELSE显示那
&&个“Incorrect XX”了

...

ELSE

Book_list.Status.Value="Incorrect XX"

补充说明:

1.这个功能以前是没有问题的,代码也没有改过。

2.book表是放在server 2003上的。

3.当我把book表烤回来放在我电脑上运行程序,也出现同样的问题,但是我将索引表修改一下结构(其实没有实质性的修改,就是让它出现“make structure change permanent?”字样后,点击Yes),就运行无误了。

4.我猜想是cdx的问题,就把我电脑上的这个所谓改过的表烤到server上去,结果用VFP打不开,说“file is not open”。

5.网上找到说这个错误是由于索引表被损坏,于是我把索引表cdx删掉,打开dbf的时候ignore,就可以看到dbf的内容,然后再创建一遍索引。。。。。。一切又都回到解放前了。

6.试过对Server上所有的表进行Reindex,重启Server,无果。

请两位老师帮忙!其他如果有类似经验的前辈们,也请赐予建议吧!阿弥陀佛。
...全文
341 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dohpin 2012-05-01
不好意思,看了下自己上面的话开头“发现问题了”,结尾“到底是哪里的问题啊”,挺佩服自己的语言功底的。。麻烦各位,理解万岁!如有描述不清的地方我会再尽量解释。
回复
dohpin 2012-05-01
[Quote=引用 14 楼 的回复:]

等你上传错误重现的示例,就有大把人可以帮你找出问题所在
[/Quote]

我已经上传错误示例了。
发现问题了,描述起来又比较复杂了。但是还没有解决,求解决方法!
是这样的:

1.上传的两个文件夹里,seemschanged里的表实际上没有改变内容,比如只是在索引上删除一个字母,又加上这个字母。这样做的目的是为了让VFP认为我做过改动而出现“是否永久保存?”的提问,这样我就可以点“是”。如此,在我的电脑上程序正常运行。
2.changed文件夹里的表是确实改动过内容的,比如列名变了,或者删除了某列。当然在我的电脑上还是可以正常打开。但列名改了,程序可能不会正常运行。不管程序先,先看表。

3.以上两个表都是从Server烤到我电脑上的,做过所谓改动或者改动,都可以正常打开。然而如果我把我电脑的“区域语言选项”的“高级”里的“Language for non-Unicode programs”设置成英文,重启。再打开上述两表,错误就跟之前在别的电脑上的都一样了,分别的错误截图在上传的两个文件夹里。
补充说明:程序运行的环境都是英文系统,我的电脑是安装了中文包的英文系统。

4.因为“collating sequence"PINYIN" is not found”的错误,找了半天发现我的电脑上数据设置里默认成了PINYIN,后改用MACHINE,再次拷贝到Server上的表就可以打开了,但是,那个右键单击的功能还是不对。。。

5.当我又把我电脑的语言设置回中文时,用我电脑运行程序也是一样的错误了。。。唉。到底是哪里的问题啊。。
回复
dohpin 2012-04-28
[Quote=引用 6 楼 的回复:]

你的这一组“ textbox组成的一列book1,book2,...,book20”
应该与字段绑定了吧,不绑定试试。
[/Quote]
这个。。不好意思,什么叫与字段绑定啊?Book表里的那一列的内容比20个多好多的。

在每个Book(i)的rightclick事件里有一句代码:Do ABC with this
每个Book(i)的Valid事件里有一句代码:= Grid_ABC(Thisform.Name,"",This.Name)
回复
wwwwb 2012-04-28
这是完整的错误提示吗?
如果可以,上传dBf到www.access911.net/csdn
,用WINRAR压缩
回复
dohpin 2012-04-28
[Quote=引用 5 楼 的回复:]

而且试过在Server上用VFP打开表,一样的错误。
怎么打开的,进入VFP,USE 。。。?提示什么?
USE 表名 是否可以?
USE 表名 INDEX 索引名 提示什么
[/Quote]
进入VFP,用的Use 表名,错误时“file is not open”
回复
十豆三 2012-04-28
你的这一组“ textbox组成的一列book1,book2,...,book20”
应该与字段绑定了吧,不绑定试试。
回复
wwwwb 2012-04-28
而且试过在Server上用VFP打开表,一样的错误。
怎么打开的,进入VFP,USE 。。。?提示什么?
USE 表名 是否可以?
USE 表名 INDEX 索引名 提示什么
回复
dohpin 2012-04-28
[Quote=引用 2 楼 的回复:]

1、是自由表还是DBC中的表
2、是否有访问表、索引的权限
3、表、索引都在同一目录?文件夹 权限如何
[/Quote]

您好~
是自由表
数据表和索引都在同一个文件夹下,程序有访问权限。而且试过在Server上用VFP打开表,一样的错误。
回复
dohpin 2012-04-28
[Quote=引用 1 楼 的回复:]

看着你代码怪怪的
[/Quote]

代码用了很久了,应该不是代码的问题
回复
wwwwb 2012-04-28
1、是自由表还是DBC中的表
2、是否有访问表、索引的权限
3、表、索引都在同一目录?文件夹 权限如何
回复
都市夜猫 2012-04-28
等你上传错误重现的示例,就有大把人可以帮你找出问题所在
回复
lygcw9602 2012-04-28
问题在原代码上,不知该代码是何人写的。应该不是LZ自己的写的吧。
自己重新写个代码吧。
回复
dohpin 2012-04-28
[Quote=引用 10 楼 的回复:]

引用 9 楼 的回复:

引用 6 楼 的回复:

你的这一组“ textbox组成的一列book1,book2,...,book20”
应该与字段绑定了吧,不绑定试试。

这个。。不好意思,什么叫与字段绑定啊?Book表里的那一列的内容比20个多好多的。

在每个Book(i)的rightclick事件里有一句代码:Do ABC with this
每个Book(i)的……
[/Quote]

您是说把RIghtclick和Valid事件下的代码拿掉吗?这样的话,不是就没功能了么?
现在原本在Server上的表是可以正常运行的,只是这个功能用到这个表的其中一个索引有问题。
回复
dohpin 2012-04-28
[Quote=引用 8 楼 的回复:]

这是完整的错误提示吗?
如果可以,上传dBf到www.access911.net/csdn
,用WINRAR压缩
[/Quote]
这样吧,过两天我试着做个样表传上来,会测试好在Server上打不开会出错的那种样表。刚好也可以试一下做些改动是不是依然打不开。如果是就更神奇了。
回复
我是小数位 2012-04-28
[Quote=引用 9 楼 的回复:]

引用 6 楼 的回复:

你的这一组“ textbox组成的一列book1,book2,...,book20”
应该与字段绑定了吧,不绑定试试。

这个。。不好意思,什么叫与字段绑定啊?Book表里的那一列的内容比20个多好多的。

在每个Book(i)的rightclick事件里有一句代码:Do ABC with this
每个Book(i)的Valid事件里有一句代码:= ……
[/Quote]就是把控件的控制资料拿掉呢
回复
我是小数位 2012-04-27
看着你代码怪怪的
回复
相关推荐
发帖
VFP
创建于2007-09-28

2491

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
申请成为版主
帖子事件
创建了帖子
2012-04-27 09:52
社区公告
暂无公告