一个关于VFP连编后的问题!

2024-12-28 22:54:49
推荐回答(3个)
回答1:

看了你的代码,总的感觉 if语句太多,嵌套4层,最内层还是两个并列的,你的程序是如果adm==''就释放窗体,在adm不为空的,text1的内容等于pas或text2的内容不空,且text2的内容=text3的内容这些条件下,如果当前工作区打开的表不是gly.dbf(管理员),就打开gly,再定位 locate for 管理员=alltrim(adm),然后再 if alltrim(管理员)==alltrim(adm)
replace 密码 with alltrim(thisform.text2.value)
注意!注意!问题出在这里:
①我不知道你的gly.dbf表是否有 管理员这个字段,字符型的,如果没有请modi stru,如果有,请进行②;
②你的gly.dbf表是否有 密码这个字段,字符型的,如果没有请modi stru,如果有,请进行③;
③您输入的管理员的值肯定存在吗?如果不存在的话,locate for 后,记录就是 eof()为true,您就无法定位到指定的记录,replace 不能更新!
您应该在locate for 后,判断 FOUND( ) 的返回值,if FOUND( )= .T. then
replace 密码 with alltrim(thisform.text2.value)
thisform.label5.caption="修改成功!!"
endif
④如果您以上的都对(因为我不知道gly.dbf表结构),那么另一种可能是您将数据库mmsj.dbc或gly.dbf表设为只读,请检查它们的属性!

另有人讲,“把数据库也编译到程序中了?”及“ 数据库独立编译”,本人不明白他的本意。一个项目文件可以包含很多资源,在vfp中可以含.prg,.frm.frx,txt,自由表,数据库,图形图片图标等等资源文件,连编时、发布时完全可以含在里。

回答2:

是不是把数据库也编译到程序中了?

回答3:

数据库独立编译