缓冲区问题,急,在线等!!!

zhz0521 2006-10-19 01:58:26
人事工资软件中的人事表修改后(包括新增记录),判断修改行数,再判断哪些是新增记录,如果是原有记录,则保存提交;如果是新增记录,则要在保存提交的同时在工资表里插入相应的记录,怎么解决??
最好有代码,谢谢!!
...全文
222 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
仰天长啸qsx 2006-10-20
  • 打赏
  • 举报
回复
MakeToday(改变) 办法就可以解决
通过判断行状态来处理。
dwcontrol.GetItemStatus ( long row, integer column, DWBuffer dwbuffer )
当integer cloumn 为0时,是该行的状态。
newmofidied! 新行
DataModified! 原有数据行,已修改
polestarxu 2006-10-20
  • 打赏
  • 举报
回复
先用If dw_1.modifiedcount( ) + dw_1.deletedcount( ) > 0判断是否修改,
如果条件成立,再另建一个datastore做比较.
zhz0521 2006-10-20
  • 打赏
  • 举报
回复
不会用啊,指点一下吧,环境是sqlanywhere 7.0+pb8.0
MakeToday 2006-10-20
  • 打赏
  • 举报
回复
用触发器吧
zhz0521 2006-10-20
  • 打赏
  • 举报
回复
MakeToday(改变) 说的有道理,我也是这个想法,但是有一个效率的问题,如果记录数很大的话,保存就会很慢!!!
有没有什么方法提高循环速度呢?
vvresoft 2006-10-20
  • 打赏
  • 举报
回复
这种问题最好用触发器协助解决,效率高些
K1933 2006-10-19
  • 打赏
  • 举报
回复
对呀,用DW.retrieve出来后如果没有记录就Insertrow(0)
MakeToday 2006-10-19
  • 打赏
  • 举报
回复
long i,n
dwItemStatus l_status
n=dw_1.rowcount()
for i=1 to n
l_status = dw_1.GetItemStatus(i,0,primary!)
if l_status=newmofidied! then // 新增记录
//......
end if
next
allright_flash 2006-10-19
  • 打赏
  • 举报
回复
在itemchanged事件里面写sql
先在数据库里面查询,
如果数据库存在,则写update语句,
如果数据库不存在,则写insert语句。
最后提交。
lywei 2006-10-19
  • 打赏
  • 举报
回复
同意楼上
li_d_s 2006-10-19
  • 打赏
  • 举报
回复
先retrieve出来,已有的就修改,没有的就插入
li_d_s 2006-10-19
  • 打赏
  • 举报
回复
用dw就可以了啊,我晕
lzheng2001 2006-10-19
  • 打赏
  • 举报
回复
什么数据库? 这个功能最好用数据库的触发器来解决! 通用性更强,而且代码量更少!

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧