hur.cn - 华软网

 热门搜索

老问题求教:怎样把Tab里几个数据窗口中的数据同时更新到同一张表中去啊?

  作者:未知    来源:网络    更新时间:2019/1/5
这个问题本网有出现过,链接以下:
http://topic.csdn.net/t/20030329/20/1593972.html
不过几个高手的回答太深奥了,
“保存前把其它所有Tab的数据窗口的数据写到第一个数据窗口中去  ”?“把几个数据窗口里的数据增加到一个数据窗口或DATASTORE中来保存! ”?
怎么操作呢??用sharedata()吗?不过我好像历来都没成功过,如果两个数据窗口的字段不完全相同的话,我用sharedata()就不会成功,不知道为什么?


------华软网友回答------
你能够把字段设置得完全相同,由于都是一个表中的数据
能够隐藏不需要的字段
------华软网友回复------
我是设置的完全相同啊!!!!
------华软网友回复------
试试这个
if dw_1.update(true,false ) + dw_2.update(true,false)>0 Then
sqlca.commit;
dw_1.resetupdate()
dw_2.resetupdate()
end if
这里主要是两个不同的数据窗口,对不同的数据源,对相同的数据源不知道会不会锁.如果不可功的话,楼主也只可把其它窗口的数据都掏出来,插入到一个窗口里面举行保存.
用SHARE不行.
------华软网友回复------
如果几个数据窗口显示的相同记录的数据那就sharedata()后提交
如果几个数据窗口的数据虽然要存到相同的表却各记录没关系那就:
if 1 = dw_1.update() and
   1 = dw_2.update() Then
sqlca.commit;
……

或索性转移到一个数据窗口中提交
------华软网友回复------
所谓的一个tab多个表
应该是有一个主表吧
顺次更新

先取第一个里面getitemstring()。。。
更新表tabel
取第二个数据
更新表tabel,where 表一增加过的字段名 = “表一响应列值”
类推其余
===============================
放到数据存储ds里面,也能够这样
只不过是将你getitemstring()...取的的值
setitem() 给ds 对应的数据窗口

string ls_str1,ls_str2
ls_str1 = dw_1.getitemstring( #, # )
ls_str2 = dw_2.getitemstring( # , #2 )
ds_1.setitem( @ , @ , ls_str1)
ds_1.setitem( @ , @2 , ls_str2 )
...
最后update ds即可
------华软网友回复------
准确的说
先掏出的那个表的主键对应的值
再设置其余列
------华软网友回复------
麻烦的措施,掏出每列的值,用INSERT TABLE方法
------华软网友回复------
hylaeion(☆霖湘凝☆) ( ):

如果几个数据窗口显示的相同记录的数据那就sharedata()后提交
如果几个数据窗口的数据虽然要存到相同的表却各记录没关系那就:
if 1 = dw_1.update() and
   1 = dw_2.update() Then
sqlca.commit;
……

或索性转移到一个数据窗口中提交

******************8
没看懂啊?!

------华软网友回复------
大家踊跃发言,偶好感动!
不过好像照旧没有解决问题,问题想太简单了,我在网上看到类似问题的解决,方法很复杂的,决不是大家说的那么容易,发个地址在这里,欢迎拍砖!http://www0.ccidnet.com/tech/guide/2000/12/25/58_1517.html
------华软网友回复------
要不你把表结构重新设计一下,把这个表分开几个表,通过外键联系关系

------华软网友回复------
保存前把其它所有Tab的数据窗口的数据写到第一个数据窗口中去  ”?“把几个数据窗口里的数据增加到一个数据窗口或DATASTORE中来保存! ”?
他们的意思应该是在保存前,用rowscopy之类的函数,把tab中,其余页dw的内容都写到第一个tab页的dw中,然后只递交一个dw,就完全同步了。
只有datastroe,性质是一样的,不过是取代了第一个dw.      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。