首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

pb9.0+Sybase SQL Anywhere 5.0 获取不到自动增加的ID解决方案

2012-03-17 
pb9.0+Sybase SQL Anywhere 5.0 获取不到自动增加的ID学生表,ID,XMID 列是数据库 自动增加的。当我 插入一

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的:

C/C++ code
SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.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]= 124dw_1.update( )//dw_1.retrieve( )id = dw_1.object.id[inser_row]  messagebox('', id)
[解决办法]
你的pb版本?

热点排行