2016-03-07 66 views
0

。 記錄是不確定的,當我嘗試使用準備語句表中插入記錄。以下是代碼示例。使用準備語句插入數據不會返回我使用<a href="https://github.com/patriksimek/node-mssql" rel="nofollow">node-sql</a>插入的記錄

ps.execute(data, function (err, recordSet, affected) { }); 

儘管記錄已成功插入到數據庫中,但它在回調函數中給出了未定義的變量。

+0

什麼是沒有被檢索的記錄集的期望值? – AhsanAyaz

回答

0

是的,我找到了答案,我們需要指定記錄使用OUTPUT子句返回。像:

INSERT INTO Table OUTPUT.Id VALUES(...); 
0

你不同意你的說法實際上做。但是,如果您使用準備語句插入記錄。那麼您可以使用「returnValue」或「affected」回調參數代替recordSet。如果你正在運行選擇的查詢將返回一些記錄 作爲節點SQL狀態記錄集將有值。 見

request.execute('record', function(err, recordsets, returnValue, affected) { 
    // ... error checks 

    console.log(recordsets.length); // count of recordsets returned by the procedure 
    console.log(recordsets[0].length); // count of rows contained in first recordset 
    console.log(returnValue); // procedure return value 
    console.log(recordsets.returnValue); // same as previous line 
    console.log(affected); // number of rows affected by the statemens 
    console.log(recordsets.rowsAffected); // same as previous line 

    console.log(request.parameters.output_parameter.value); // output value 

    // ... 
}); 
0

根據節點MSSQL文件(我已經通過這一切走了,相信我),記錄或記錄集是一組返回,當你執行選擇查詢。 由於您正在執行插入查詢,因此很可能未定義。因爲即使記錄已被退回,這將是一整套(包括你的新插入的行),這是不是在插入:)

總之是非常有用的,如果您的查詢不包含選擇,你」會得到未定義的記錄集。 希望這有助於。

+0

你說得對,剛纔發現我們需要指定要使用OUTPUT子句返回的記錄。感謝您的回答。 –

相關問題