注册 登录
编程论坛 VFP论坛

关于对从SQLserver获取的临时表修改的问题

fanjinyu9108 发布于 前天 15:41, 273 次点击
比如创建SQLSERVER连接后,取得一个查询,比如 str_zhandian=["select * from zhandian","zhandian1"],在本地得到一个临时表zhandian1,这个临时表有些奇怪,比如字段SL某个记录的值是15,我将SL绑定到文本框,我现在手工把15,改成20,然后
查看这个这个记录字段SL的值,居然显示还是15(=messagebox(SL)),我再次输入20,结果字段SL的值变成20了,为什么要输入2次字段SL的值才会改变呢?
14 回复
#2
wcx_cc前天 16:01
文本框的lostfocus加一次刷新 refresh。或者 sele zhandian1,replace sl with this.value,再 this.refresh 看看如何
#3
fanjinyu9108前天 16:14
这个我觉得不是刷新的问题,相反,我用按钮加一个刷新,文本框数据马上变成15了,找到解决的办法了,就是在GOTFOCUS 加一句 SELECT zhandian1就解决了
#4
fanjinyu9108前天 16:22
但是还是有个问题,对这个表修改完毕后,把修改后的临时表保存到SQLSERVER时,又出现奇怪的现象,比如,我对表修改了,保存到SQLSERVER后在SQLSERVER查看,数据并没有修改,我试了很多次都是这样的,这是为什么呢?我目前的解决办法是修改后加一句可有可无的语句,比如update zhandian1 set sl=sl,然后就正常了

[此贴子已经被作者于2024-12-3 16:29编辑过]

#5
wcx_cc前天 16:32
我的体会,SQLSERVER 更新再好采用自动方式,手工模式有时侯不行。
#6
fanjinyu9108前天 16:42
我用的SPT方式,还好啊,需要保存的时候连接,保存完了,立刻断掉,我是觉得从SQLSERVER获取的临时表和VFP本身用SELECT产生的临时表还是有些不一样
#7
wcx_cc前天 16:55
一个可写,一个不可写。还有:一个字段宽度大,一个字段宽度受限254.
#8
easyppt前天 17:06
缓冲模式下,记录指针不移动时,通过访问表字段可能就会出现你的情况。
所以:
1、要么访问控件的值。
2、要么模拟移动一下指针,再访问表字段的值。

更新SQLSERVER,需要有KEY 关键字
每次提交前,SQL Server Profiler 跟踪一下就知道问题在哪里了。
如果没有更新语句被提交,就是 CA/SPT 语句本身没设置好。

[此贴子已经被作者于2024-12-3 17:09编辑过]

#9
fanjinyu9108前天 17:24
那为什么加上一句可有可无的update zhandian1 set sl=sl,然后保存就正常了呢?还有,从SQLSERVER获取的临时表在没有设置的情况下就自动有缓存吗



[此贴子已经被作者于2024-12-3 17:28编辑过]

#10
fanjinyu9108前天 17:37
我说的zhandian1只是从SQLserver获取的临时表,但是并不参与SPT的更新,真正更新的时候比如我会创建一个游标T,将zhandian1的内容更新到游标T,然后游标T与SQL关联保存
#11
fanjinyu9108前天 17:42
如果我用SELECT * FROM zhandian1 INTO CURSOR T_bd READWRITE 创建一个VFP临时表T_bd,然后编辑T_bd,最后让T_bd更新游标T,也许就不会出现这些问题了
#12
fanjinyu9108前天 18:07
我用了如下的语句,好像解决了:select zhandian1     locate难道真的是表的指针需要移动一下吗
#13
kangss前天 19:16
以下是引用fanjinyu9108在2024-12-3 15:41:51的发言:

比如创建SQLSERVER连接后,取得一个查询,比如 str_zhandian=["select * from zhandian","zhandian1"],在本地得到一个临时表zhandian1,这个临时表有些奇怪,比如字段SL某个记录的值是15,我将SL绑定到文本框,我现在手工把15,改成20,然后
查看这个这个记录字段SL的值,居然显示还是15(=messagebox(SL)),我再次输入20,结果字段SL的值变成20了,为什么要输入2次字段SL的值才会改变呢?


SQL读取过来的临时表,就相当于本地表了,按你的叙述,是不应该出现这个现象的。
你可以用dbf替代SQL表,建议上传截图,或者rar
#14
fanjinyu9108前天 20:04
kangss师傅,您好,这个问题解决了,只需要在绑定字段的文本框控件的GOTFOCUS加一句,select zhandian1就解决了
#15
fanjinyu9108前天 20:05
非常感谢各位师傅的解答,我的问题已经都弄好了
1