当前位置: 代码迷 >> PB >> pb9.0+Sybase SQL Anywhere 5.0 获取不到自动增多的ID
  详细解决方案

pb9.0+Sybase SQL Anywhere 5.0 获取不到自动增多的ID

热度:6   发布时间:2016-04-29 07:47:25.0
pb9.0+Sybase SQL Anywhere 5.0 获取不到自动增加的ID

   学生表,  ID,XM

       ID 列是数据库 自动增加的。

    当我 插入一条记录。把XM 字段填好 然后 保存成功了。。

     接着我就取  ID 的值,取出来的都是空值。。。
 
    例子:
  
      long   id,   inser_row   
           inser_row   =   dw_1.insertrow(0) 
          dw_1.object.xm[inser_row]='33'
          dw_1.update( )
          //dw_1.retrieve( )
          id = dw_1.object.id[inser_row] 
          id = dw_1.getitemnumber(1,"id")

      直接 objec 获取,还是用 getitemnumber  得到的都是  null
 
      只有  retrieve() 后 才有值。。。 这是为什么啊。。 我见其帖子说,可以不 刷新就可以得到 自动增加ID 的值的了呀,为什么我就是不得。。
   
        求解。。。。大侠们。。。
------解决思路----------------------
设置DW 的Update ProPerties... 的时候,选上Identity column 为ID
另,在update() 前,要保证ID 列为null
------解决思路----------------------
dw_1.update( )
dw_1.setredraw( true )
id = dw_1.object.id[inser_row]  

------解决思路----------------------
测试了一下,是可以取到id的:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V9;UID=dba;PWD=sql'"
connect using sqlca;


long id, inser_row   
dw_1.settransobject(sqlca)
inser_row = dw_1.insertrow(0)  
dw_1.object.a[inser_row]= 144 
dw_1.object.b[inser_row]= 124
dw_1.update( )
//dw_1.retrieve( )
id = dw_1.object.id[inser_row]  

messagebox('', id)

------解决思路----------------------
你的pb版本?