注册 登录
编程论坛 PowerBuilder

[求助]数据库中怎么没有保存上数据

yuexiayiyu 发布于 2007-01-31 09:56, 2044 次点击

数据库连接上了。可以登录系统。可往里面录入数据的时候,系统提示保存成功了。可我到后台的数据库中去查数据怎么就没有数据呢? 请各位帮忙下!!谢过了哦!

17 回复
#2
notbig2007-01-31 13:49
要看保存代码怎么写的
有没有COMMIT;
#3
yuexiayiyu2007-01-31 13:56

if dw_1.modifiedcount() + dw_1.deletedcount() > 0 then
if dw_1.update()=1 then
commit;
messagebox('提示','数据保存成功!')
else
rollback ;
messagebox('提示','数据保存错误。', stopsign!)
end if
else
messagebox('提示','数据没有修改过,没有必要保存!',stopsign!)
end if

这个就是写在保存按钮的下面的!

#4
notbig2007-01-31 15:35
最前面加上DW_1.ACCEPTTEXT()
#5
yuexiayiyu2007-01-31 17:42

这条语句我加了。可还是不行 。真迷茫了!我在数据库中添加一个用户或是数据什么的。都可以调出来用。可就是录入不上。

#6
notbig2007-02-01 09:03

你录入前是否INSERTROW(0)增加空记录的?

#7
yuexiayiyu2007-02-01 09:15

增加用户的时候肯定要先增加一条才行的。但录入数据的时候就没有增加!直接录。可也是不行!

#8
notbig2007-02-01 10:59
录入数据是什么意思,不是增加后再录入吗?或者是检索出来再修改录入
#9
yuexiayiyu2007-02-01 12:05

也许你没有理解我的意思。我刚开始说了俩种不同的录入。打个比方,我现在要录入图书的信息。不是一打开界面就可以直接录入的吗?难道还要增加一条? (当然要录入下一条的时候就得增加一条了)
如果我是增加一个用户的话,就得先增加一条。然后在写入信息 。

#10
notbig2007-02-01 13:20

这两种录入方式有什么区别
提供源码及截图

#11
hzjwcx2007-02-01 15:38
IF This.AcceptText() = 1 THEN
// 計算修改和刪除的筆數
ll_mod = This.ModifiedCount( )
ll_del = This.DeletedCount( )
ll_total = ll_mod + ll_del
// 檢查資料是否有異動,判斷是否存檔成功
IF ll_total >= 1 AND This.Update(TRUE, FALSE) > 0 THEN
COMMIT USING SQLCA;
This.ResetUpdate()
This.Object.DataWindow.ReadOnly="Yes"
//**** 存檔成功 (ib_save=True) ****//
ib_save = true
ELSE
ROLLBACK USING SQLCA;
//**** 存檔失敗 (ib_save=False) ****//
ib_save = false
MessageBox("存檔失敗!!", "存檔失敗 , 請重新確認資料是否有更新!",StopSign!)
END IF

#12
yuexiayiyu2007-02-01 15:42
只有本站会员才能查看附件,请 登录


在插入按钮的下面。写了dw_1.ScrollToRow(dw_1.insertRow(0))
cb_insert.TriggerEvent(Clicked!)


在保存按妞下面写了: dw_1.accepttext()
if dw_1.modifiedcount() + dw_1.deletedcount() > 0 then
if dw_1.update()=1 then //如果修改成功
commit ; //提交事务
messagebox('提示','数据保存成功!')
else
rollback ; //回滚事务
messagebox('提示','数据保存错误。', stopsign!)
end if
else
messagebox('提示','数据没有修改过,没有必要保存!',stopsign!)
end if


在窗口的OPEN事件中写了:
dw_1.SetTransObject(SQLCA) //设置事务对象
dw_1.Retrieve() //检索数据

if Lower(gs_userid) <> 'tssa' then //不是超级用户
cb_insert.Enabled = False //不允许新建用户
cb_delete.Enabled = False //不允许删除用户
cb_pri.Enabled = False //不允许为用户分配权限
dw_1.SetFilter("userid='" + gs_userid + "'") //只显示当前用户。
dw_1.Filter()
end if


在数据窗口的 rowfocuschanged下写了:

this.SelectRow(0,False)
This.SelectRow(CurrentRow,True)

在数据窗口的 losefocus事件下写了:
this.accepttext()
当然。删除。权限。关闭按妞的代码就没有写上来了。
#13
notbig2007-02-02 08:40

在插入按钮的下面。写了dw_1.ScrollToRow(dw_1.insertRow(0))
cb_insert.TriggerEvent(Clicked!)

上面两句应该是在CB_INSERT控件下的CLICKED事件的脚本吧,但为什么最后一句又要执行一次呢?



在保存按妞下面写了: dw_1.accepttext()
if dw_1.modifiedcount() + dw_1.deletedcount() > 0 then
if dw_1.update()=1 then //如果修改成功
commit ; //提交事务
messagebox('提示','数据保存成功!')
else
rollback ; //回滚事务
messagebox('提示','数据保存错误。', stopsign!)
end if
else
messagebox('提示','数据没有修改过,没有必要保存!',stopsign!)
end if
上面代码看起来没有什么问题

#14
yuexiayiyu2007-02-02 08:57

在插入按钮的下面。写了dw_1.ScrollToRow(dw_1.insertRow(0))
cb_insert.TriggerEvent(Clicked!)

上面两句应该是在CB_INSERT控件下的CLICKED事件的脚本吧,但为什么最后一句又要执行一次呢

是在cb_insert下面写的。至于这一句是多余的cb_insert.TriggerEvent(Clicked!)一但触发了。它会一直插入。直到程序没有反应 。可我吧这句去掉了,还是不行 。关于这个问题还没有其他方面的原因吗?我实在不知道怎么弄了!

#15
notbig2007-02-02 10:15
检查DW有没有更新能力
是否未 设DW更新属性
#16
yuexiayiyu2007-02-02 16:43
以下是引用notbig在2007-2-2 10:15:23的发言:
检查DW有没有更新能力
是否未 设DW更新属性

这些具体是那些呢。我实在是找不到了!
#17
notbig2007-02-02 16:47

打开DW,在ROWS菜单下有个UPDATE。。。。。。

#18
yuexiayiyu2007-02-02 17:26

非常感谢!终于可以了。这个属性我上次改了。但是改错了。后来一直以为是代码的事。可没想到。。。。。。。

1