。 記錄是不確定的,當我嘗試使用準備語句表中插入記錄。以下是代碼示例。使用準備語句插入數據不會返回我使用<a href="https://github.com/patriksimek/node-mssql" rel="nofollow">node-sql</a>插入的記錄
ps.execute(data, function (err, recordSet, affected) { });
儘管記錄已成功插入到數據庫中,但它在回調函數中給出了未定義的變量。
。 記錄是不確定的,當我嘗試使用準備語句表中插入記錄。以下是代碼示例。使用準備語句插入數據不會返回我使用<a href="https://github.com/patriksimek/node-mssql" rel="nofollow">node-sql</a>插入的記錄
ps.execute(data, function (err, recordSet, affected) { });
儘管記錄已成功插入到數據庫中,但它在回調函數中給出了未定義的變量。
是的,我找到了答案,我們需要指定記錄使用OUTPUT子句返回。像:
INSERT INTO Table OUTPUT.Id VALUES(...);
你不同意你的說法實際上做。但是,如果您使用準備語句插入記錄。那麼您可以使用「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
// ...
});
根據節點MSSQL文件(我已經通過這一切走了,相信我),記錄或記錄集是一組返回,當你執行選擇查詢。 由於您正在執行插入查詢,因此很可能未定義。因爲即使記錄已被退回,這將是一整套(包括你的新插入的行),這是不是在插入:)
總之是非常有用的,如果您的查詢不包含選擇,你」會得到未定義的記錄集。 希望這有助於。
你說得對,剛纔發現我們需要指定要使用OUTPUT子句返回的記錄。感謝您的回答。 –
什麼是沒有被檢索的記錄集的期望值? – AhsanAyaz