Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 有没有办法在ADODB中选择SCOPE_IDENTITY()?_Sql_Sql Server_Vba_Adodb - Fatal编程技术网

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
,那么你使用的是静态游标。