Sql 有没有办法在ADODB中选择SCOPE_IDENTITY()?
这就是我添加记录的方式。有可能这样做吗?:Sql 有没有办法在ADODB中选择SCOPE_IDENTITY()?,sql,sql-server,vba,adodb,Sql,Sql Server,Vba,Adodb,这就是我添加记录的方式。有可能这样做吗?: With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datapath") = dpath .Fields("analysistime") = atime .Fields("reporttime") = rtime .Fields("lastcalib") = lcalib .
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datapath") = dpath
.Fields("analysistime") = atime
.Fields("reporttime") = rtime
.Fields("lastcalib") = lcalib
.Fields("analystname") = aname
.Fields("reportname") = rname
.Fields("batchstate") = bstate
.Fields("instrument") = instrument
.Update ' stores the new record
End With
带rs的
.AddNew“创建新记录”
'向记录中的每个字段添加值
.Fields(“数据路径”)=dpath
.Fields(“分析时间”)=atime
.Fields(“reporttime”)=rtime
.Fields(“lastcalib”)=lcalib
.Fields(“analystname”)=aname
.Fields(“reportname”)=rname
.Fields(“batchstate”)=bstate
.字段(“仪器”)=仪器
范围_IDENTITY()不,没有
您应该在同一批中进行显式的INSERT
语句,然后调用SCOPE\u IDENTITY
。不,没有
您应该在同一批中执行一个显式的INSERT
语句,然后调用SCOPE\u IDENTITY
。执行更新命令后,该标识将被放置在记录集中的相应字段中。你可以从那里读到
例如:
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datapath") = dpath
.Fields("analysistime") = atime
.Fields("reporttime") = rtime
.Fields("lastcalib") = lcalib
.Fields("analystname") = aname
.Fields("reportname") = rname
.Fields("batchstate") = bstate
.Fields("instrument") = instrument
SCOPE_IDENTITY() <----------------
.Update ' stores the new record
End With
执行Update命令后,标识将放置在记录集中的相应字段中。你可以从那里读到
例如:
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datapath") = dpath
.Fields("analysistime") = atime
.Fields("reporttime") = rtime
.Fields("lastcalib") = lcalib
.Fields("analystname") = aname
.Fields("reportname") = rname
.Fields("batchstate") = bstate
.Fields("instrument") = instrument
SCOPE_IDENTITY() <----------------
.Update ' stores the new record
End With
@op:是的,虽然它实际上不是关于SCOPE\u IDENTITY
。你确定guffa的回答在多用户环境中可以吗?如果是这样的话,为什么我不直接使用它呢?为什么这个值之前没有@@op:只要用adOpenStatic
打开记录集,就可以使用它。你的问题是关于SCOPE\u IDENTITY
。很抱歉,这是什么意思?@op:是的,但实际上不是关于SCOPE\u IDENTITY
。你确定guffa的答案在多用户环境中可以吗?如果是这样的话,为什么我不直接使用它呢?为什么这个值之前没有@@op:只要用adOpenStatic
打开记录集,就可以使用它。您的问题是关于SCOPE\u IDENTITY
。对不起,这是什么意思?非常感谢。您确定在多用户环境中这样做可以吗?@I_u;:是的,您有一个到表的开放连接,因此该值是从实际记录中读取的,而不是通过调用函数读取的。下面的答案是:您可以使用它,只要你用adOpenStatic打开你的记录集---我怎么知道我是否要用这种方式打开它?@i_uuu:当你打开记录集时,调用中的第三个参数是游标类型,adOpenStatic常量的值是3,因此如果你使用rs.open sql,conn,3
,那么你使用的是静态游标。非常感谢。您确定在多用户环境中这样做可以吗?@I_u;:是的,您有一个到表的开放连接,因此该值是从实际记录中读取的,而不是通过调用函数读取的。下面的答案是:您可以使用它,只要你用adOpenStatic打开你的记录集---我怎么知道我是否要用这种方式打开它?@i_uuu:当你打开记录集时,调用中的第三个参数是游标类型,adOpenStatic常量的值是3,因此如果你使用rs.open sql,conn,3
,那么你使用的是静态游标。