这是原始问题。
好的,我正在使用 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提供的属性使表和列也可变。我试过了:
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 的局限性,而且我对一般编程很陌生(所以如果我的命名法不一致/错误,请告诉我,但请不要撕裂我)我只是想知道我正在尝试做的事情是否可以完成。