请教关于update()怎么判断是否更新成功

redfcc 2009-05-26 05:20:32
我不是使用数据窗口dw,而是用文本框输入数据,然后update 表 set a1=:a,a2=:b.......an=:z where.... 这样的形式更新。
1.应该怎样写语句,判断是否更新成功。
2.如果表中某个项我不想更新,只保持原来数据(就是a1=:a,a2=:b,a3:=c....中的a2不需要更新),如何仅仅更新表任意几个项,而不是把表中全部项更新?
谢谢了!!!
...全文
1204 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
svbzero 2009-11-18
  • 打赏
  • 举报
回复
支持顶
DYFDWX 2009-06-09
  • 打赏
  • 举报
回复
weiweipxb 2009-06-08
  • 打赏
  • 举报
回复
sql用sqlca.sqlcode ,dw用update()
yeyuqiong 2009-06-08
  • 打赏
  • 举报
回复
用messagebox问一下,messagebox('SQL',sqlca.sqlcode),如果sqlca.sqlcode=0则表示更新成功,sqlca.sqlcode=-1则表示更新失败
yxjhai 2009-06-06
  • 打赏
  • 举报
回复
只有UPDATE和DELETE时才需要查看一下SQLNROWS的值,INSERT时SQLCA.SQLCODE是会返回错误的
TheLittlePrince 2009-06-06
  • 打赏
  • 举报
回复
呵呵,回答这么多,咋就不见结贴呢。
hx382826502 2009-06-05
  • 打赏
  • 举报
回复
SQLCA.SQLCODE判断了SQL语句是否正确的执行了,当有DELETE、INSERT和UPDATE语句时,要查看SQLNRows的属性值,SQLNRows反应本次执行的SQL语句所影响的行数。
用Update()的作用和SQLCA.SQLCODE的功能是等价的,表示SQL语句是正确执行了,例如数据没有修改但是调用了Update(),不是没有成功的保存。而是影响的行数是0条。
SQLNRows的结果应该是和DeletedCount ( ) + ModifiedCount ( ) 一样的。
yxjhai 2009-06-05
  • 打赏
  • 举报
回复
我怎么发觉update每次的返回值都是0呀,如果我这个UPDATE写一个错误的条件,怎么SQLCA.SQLCODE返回还是0
prodeity 2009-05-29
  • 打赏
  • 举报
回复
判断update() = 1 Then Commit Using sqlca;就可以了.
jieyong521 2009-05-28
  • 打赏
  • 举报
回复
是的如楼上的所说嘿嘿,回复就有几分哦
singsongs 2009-05-28
  • 打赏
  • 举报
回复
sqlca的sqlcode判断就可以
qj_198127 2009-05-28
  • 打赏
  • 举报
回复
if SQLCA.SQLCode <>0 THEN
MessageBox("SQL error", SQLCA.SQLErrText)
rollback using sqlca;
return
else
commit using sqlca;
end if

whitneywhite 2009-05-27
  • 打赏
  • 举报
回复
1.例: update t_objective
set m_flag = 1
where m_id = :fs_index[m];
if SQLCA.SQLCode <>0 THEN
MessageBox("SQL error", SQLCA.SQLErrText)
rollback using sqlca;
return
else
commit using sqlca;
end if

2.set语句里只写你想更新的字段
xiaoyehua 2009-05-27
  • 打赏
  • 举报
回复
每天一回复,增加可用分
redfc 2009-05-26
  • 打赏
  • 举报
回复
谢谢大家了!!
newease 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 redfcc 的帖子:]
我不是使用数据窗口dw,而是用文本框输入数据,然后update 表 set a1=:a,a2=:b.......an=:z where.... 这样的形式更新。
1.应该怎样写语句,判断是否更新成功。
2.如果表中某个项我不想更新,只保持原来数据(就是a1=:a,a2=:b,a3:=c....中的a2不需要更新),如何仅仅更新表任意几个项,而不是把表中全部项更新?
谢谢了!!!
[/Quote]
不使用数据窗口

1、update
判断是否成功

if sqlca.sqlcode=0 then
commit;
else
rollback;
end if

2、本身你就是使用update set 你想更新个字段就在 set后 字段=:变量,不想更新的不写就成了
bomber2001 2009-05-26
  • 打赏
  • 举报
回复
up

对应事务.sqlcode = 0
TheLittlePrince 2009-05-26
  • 打赏
  • 举报
回复
用事务的sqlcode属性判断是否成功!

611

社区成员

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

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