是说取某行某列的值吗,还是取特定的 objBean2.getCell(39,r).substring(0,16) 第0到第16个字符?

解决方案 »

  1.   

    不是啊,比如我一个人员表,当我插入前是8,sql语句执行后是9,我要在sql语句执行后立即取得9这个值:
    Statemnent stmt = conn.createStatement();
    stmt.execute("insert into person (name) values('dd')")
    我下面怎么取刚生成的自增长的字段的值?
      

  2.   

    sql="select id form person where name='dd'";//id是你的自增字段名
    stmt.executeQuery(sql);
      

  3.   

    我的办法是在做插入之前,做一个查询,查出最后一个id号,然后再加1,用这样的方法来得到插入的id号。在做了查询之后,马上进行插入操作。
    因为查询的处理速度比插入的处理要快,所以如果先做插入再做查询的话,有可能插入还没有做完就查询出上一个id号了。
      

  4.   

    应该是叫 @identity,具体方法你查一下Help,也是select
      

  5.   

    我觉得这个问题应该分两步走,一个是查询一个是插入,但是要主意如果没有锁定表的话,就有可能取得错误的值,因为在这个时候有可能其他用户已经将数据改了—————————————————————————————————
    ibeyond.org正在建设中,即将推出WebAnyWhere测试版,敬请关注。
    WebAnyWhere可以将您的顶级域名解析到您的动态ip上去,让您拥有自己的互联网主机。
    (ibeyond.org就是动态ip,本站新闻组地址是news://ibeyond.org)
      

  6.   

    zhx_232(笨狗熊妹妹):
     你的方法存在并发性的危险,除非锁表,但是表大的话性能要
    受影响
    freefalcon(心宇) :
     你的方法可能不能保证唯一性
      

  7.   

    select  @identity as l_id from “你要搜索的表”
    l_id 就是最后一个字段的id值。
      

  8.   

    把插入sql写成存储过程,@identity 在返回参数中取得,返回参数加output.
    CREATE PROCEDURE 
    (
        @ID             numeric(9,0) output,
        其他要插入的参数
    )
    AS
    BEGIN
    INSERT INTO ……
    SELECT @ID=@@identity --取得identity
    ……
    end
    调用时用CallableStatement,
     cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
     cstmt.executeUpdate();
     ID = cstmt.getInt(1);
    该ID就是刚刚插入的identity.
      

  9.   

    插入成功后马上 执行语句:
    select max(标识字段名) from 表名 就可以了。