"Node.js / Edge.js - Insert JS variables into SQL"第 2 部分



这是最初的问题。

好的,我使用Node.js和Edge.js来插入值到SQL数据库。第一次尝试是直接插入硬编码值:

var insertRow = edge.func('sql', function () {/*
    INSERT INTO dbo.table (column0, column1, column2)
    VALUES (value0, value1, value2)
*/});
insertRow();

这个硬编码插入当然可以按预期工作。正如前面问题的答案所示,将对象传递给函数允许SQL语句通过@来识别对象的名称/值对,从而允许动态赋值:

var rowObj = {
    v0: 'value0',
    v1: 'value1',
    v2: 'value2'
}
var insertRow = edge.func('sql', function () {/*
    INSERT INTO dbo.table (column0, column1, column2)
    VALUES (@v0, @v1, @v2)
*/});
insertRow(rowObj);

按预期工作。我想做的是通过相同rowObj提供的属性,将表和列也变为变量。I tried:

var rowObj = {
    t: 'dbo.table',
    c0: 'column0',
    c1: 'column1',
    c2: 'column2',
    v0: 'value0',
    v1: 'value1',
    v2: 'value2'
}
var insertRow = edge.func('sql', function () {/*
    INSERT INTO @t (@c0, @c1, @c2)
    VALUES (@v0, @v1, @v2)
*/});
insertRow(rowObj);

但这不起作用。我试着让表自己动态,列自己,这也不起作用。

注意:我不知道SQL,我不知道Node.js/Edge.js的限制,我是非常新的编程一般(所以如果我的命名法不一致/错误,让我知道,但请不要撕裂我分开)我只是想知道我想做的事情是否可以做到。

我建议您根据需要不同的选择标准多次调用edge.func。如果事先不知道列名,可以动态构造传递给edge.func的T-SQL字符串。使用这种方法,您通常会对预编译的SQL语句进行一些优化,但是考虑到MS SQL在服务器上优化查询执行的方式,节省的时间很少。

相关内容

  • 没有找到相关文章

最新更新