繁体   English   中英

从SQL表中获取插入的Id值到Javascript

[英]Get the Inserted Id Value from a SQL Table to Javascript

我必须使用Javascript向db表创建一个insert语句。 SQL语句由ActiveXObject和open方法生成。 这里的问题是,open方法不返回数据库给表的主键的id值。 下面你可以看到我尝试在同一个SQL语句中插入数据,同时我尝试使用@@ identity检索到id。 “项目”仅用于学术目的! 我能理解这种方式的漏洞!

var connection = new ActiveXObject("ADODB.Connection") ;
        var connectionstring="MyConnection";
        connection.Open(connectionstring);
        var rs = new ActiveXObject("ADODB.Recordset");
        var qry = " BEGIN TRAN T1 insert into myTable (docname,date) values ("+document.getElementById('docname').value+",'"+today.toISOString().substring(0, 10)+"')  ";   
        qry = qry +  'select @@IDENTITY as id  ';   

        alert(qry);

        rs.Open(qry, connection);


        rs.MoveFirst

        var docid = rs.fields(0)
        alert(docid);
        rs.close;
        connection.close; 

//notice that  the Mytable has 3 col,the ID, docname and date

@JordanRieger这个案例只是一个在IE上运行的搜索开发SPA。 因此,在与Html相同的文件上运行的Jscript连接到数据库。 当你完全理解javascript通过document.getElementById从DOM获取值时! 现在问题出现在我的情况下,当我不得不制作一个插入语句并返回表格行的id时。 问题在于我尝试从同一个连接(我必须由于RDBMS)为插入创建一个sql语句,为Select @@ identity创建一个。 RDBMS对上述情况的响应是向您发送两行消息,一行用于插入(即1行影响),另一行用于选择stametent。 但是“rs = new ActiveXObject(”ADODB.Recordset“)”只等待一个respone(不是为了数据 - 而是为了消息)所以我不得不在SQL查询中插入“set nocount on”语句以避免消息。 我认为这通常在我们使用本机sql的数据集时很有用! 无论如何,谢谢你们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM