当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: ......
    摘要: 类似于asp中的global。asa文件的初始化! 我想在网站打开时,无论某一页都初始化一系列的session变量或执行其他的操作。 最好做个解说啊! ......


数据窗口update的一个奇怪问题

当前小弟碰到一个奇怪的问题,在这里向各位大侠请教。  
   
  我做了一个数据录入窗口,填写完用update更新保存。  
  全部非空列都填写后,是可以保存的。  
  如果有非空列未填写完,而直接去点击保存,当然也不能update成功。但是奇怪的是,提示update失败,实际上数据库中却保存了符合条件的前几行录入。比如在第n+1行用户有一个必填列未填写而直接去保存,保存时提示update失败,但实际上数据库中却有了前n行数据。然后,这时再把第n+1行全部填写完后,再保存还是提示update失败,这是为什么呢?是不是跟我的数据窗口设置有关?  
  我用的是informix数据库,事物的autocommit是false。  
  保存时窗口更新代码是:  
  if   dw_1.update(true,false)   <>   1   then  
  messagebox(保存失败,数据保存失败,请检查填写是否正确!~r~n查看表中每条记录中白色列是否都已填写完毕。)  
  sqlca.uf_exec_rollback()  
  end   if  
   
 

NO.1   作者: aichangfeng

建義生新生成一個數據窗口  
  if   dw_1.update(true,false)   <>   1   then  
  messagebox(保存失败,数据保存失败,请检查填写是否正确!~r~n查看表中每条记录中白色列是否都已填写完毕。)  
  sqlca.uf_exec_rollback()  
  end   if  
  commit;

NO.2   作者: j9dai

可能是你的SQLCA.AUTOCOMMIT   为   True  
  再仔细看看你的代码,要不重画DW试试

NO.3   作者: princelily

我觉得你的问题,是因为在一下操作数据库的代码中使用rollback和commit对事务处理对象操作不当造成的。建议应该进入debug调试模式,单不走检查问题。  
  if   dw_1.update(true,false)   <>   1   then  
  messagebox(保存失败,数据保存失败,请检查填写是否正确!~r~n查看表中每条记录中白色列是否都已填写完毕。)  
  rollback   using   sqlca;  
  else  
  select   count(*)   into   :li_i   from   sb_tkqk   where   bssj   =   :is_bssj   and   jgm   =   :UserInfo.user_dept   and   bslxbs   =   :is_bslxbs;  
  if   li_i   =   0   then  
  insert   into   sb_tkqk   (bssj,jgm,bslxbs)  
  values   (:is_bssj,:userinfo.user_dept,:is_bslxbs);  
  end   if  
  if   sqlca.sqlcode   =   0   then  
  messagebox(成功,数据保存成功!)  
  commit   using   sqlca;  
  dw_1.retrieve(is_czwdbh)  
  else  
  messagebox(失败,向申报填开情况表插入记录时失败!)  
  rollback   using   sqlca;  
  dw_1.retrieve(is_czwdbh)  
  end   if  
  end   if  
 

NO.4   作者: lzheng2001

begin   transaction,commit   transcation,rollback   transaction  
  很多数据库都有这些语句,但不见得有你出现的问题.    
  估计的可能性:  
  1.楼主搞错了,可能数据早已存在在表中,与你运行的INSERT无关  
   
  2.在执行你的这些语句之前,执行了其它的代码,更改了表的内容,先设置断点,运行到insert时停下,看看表中是否已经存在记录,确定没有后,才运行insert语句,运行完后,再查.  
   
  3.PB或数据库的BUG,试试打补丁吧


 ·怎么让richedit换行啊    »显示摘要«
    摘要: 情况是这样的: 在一个m_ccombo里输入文字m_sstring后敲回车,然后让m_ssting显示在m_crichedit里 问题是当我敲入很多文字后,后边的文字就看不到了,要去拖动m_crichedit的垂直滚动条才行 怎么才能让m_crichedit始终显示在刚输入的文字那里呢?其实就想控制m_crichedit滚屏 谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE