簡體   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