我正在使用node.js和mssql将值从嵌入式设备发布到SQL数据库。每个间隔我增加一个行ID和一个传感器值和"插入"然后到数据库。但是,当我查看数据库时,行似乎以错误的顺序发布(请参见屏幕截图)。一些缺失的条目出现的时间要晚得多。
我调试了代码,事件按正确的顺序进行。所以这发生在交易的某个地方。
代码在这里:
var sql = require('mssql'); //sql
var i = 0;
//database configuration
var config = {
user: '*****',
password: '******',
server: '******',
database: '*******',
options: {
encrypt: false // Use this if you're on Windows Azure
}
}
//main activity function to be called every 1 second
periodicActivity();
//setInterval function sets the period and function to be called
setInterval(function () { periodicActivity() }, 1000)
//
function periodicActivity() {
i = i + 1;
var y = Math.random();
var connection = new sql.Connection(config, function (err) {
// ... error checks
// Query
var request = new sql.Request(connection);
request.query('insert into SensorData (Id, data) values (' + i + ',' + y + ')', function (err, recordset) {
// ... error checks
});
});
//close the SQL connection
//connection.close();
}
数据库截图:
非常欢迎任何帮助或建议。 谢谢, Ť
答案 0 :(得分:0)
插入可能正如您所期望的那样完成。数据只是由一些内部事物引起的伪随机顺序显示。选择数据后订购数据即可完成。
另外,为什么不将id设置为自动递增主键,然后再创建
request.query('insert into SensorData (data) values (' + y + ')', function (err, recordset) {
// ... error checks
});