SQL插入以错误的行顺序发布

时间:2015-05-12 08:21:14

标签: sql sql-server node.js

我正在使用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();
}

数据库截图:

screenshot

非常欢迎任何帮助或建议。 谢谢, Ť

1 个答案:

答案 0 :(得分:0)

插入可能正如您所期望的那样完成。数据只是由一些内部事物引起的伪随机顺序显示。选择数据后订购数据即可完成。

另外,为什么不将id设置为自动递增主键,然后再创建

request.query('insert into SensorData (data) values (' + y + ')', function (err, recordset) {
    // ... error checks
});