以下是引用xuminxz在2021-11-5 10:56:41的发言:
取回刚刚写入的增量有很多方法,最可靠的方法是:写入后台,并重新从后台取回(requery()),再由其它关键字判断哪个是最后写入的记录,读出ID值。
其它一些方法效率高些,但都不可靠,根据你的代码及运行环境决定是否可行。例如:
当前记录集中最大的ID+1。要求从后台取出了最大的ID,并且没有人同时从其它地方写入新的记录。这个一般很难做到,除非你的后台总数据很小,但这时刷新数据也很快啊。
关键是,即使你知道了系统下一个要给出的ID值是什么,你也不一定能直接插入该值(SQL-server oracle好像都不行,ACCESS可以其它的不知道)仍然只能插入0,自动分配ID
sn1=sys(2015) && 这个就是唯一的过程名称
sqlexec(句柄,"insert into tb1(sn,name,...) value (?sn1,'张三',...)")
sqlexec(句柄,"select id from tb1 where sn=?sn1","tmp")
select tmp
brow