【发布时间】:2014-06-10 18:22:08
【问题描述】:
我编写了以下模块,它根据 Type var 值连接到 postgresql 或 SQLServer:
exports.GetQueryResult = function (type, Name,con,callback) {
var sql='';
if (Type ='PG') {
sql=sql + ' SELECT …………..';
pg.connect(con, function(err, client, done) {
if(err) {
console.log("Error :" + err);
return callback(err);
}
client.query(sql,[Name], function(err, Result) {
if(err) {
console.log("Error: " +err);
return callback(err);
}
return callback(null,Result);
done();
});
});
}
else
{
sql=sql + ' SELECT …..';
sql.open(con, function (err, conn,done) {
if (err) {
console.log("Error :" + err);
return callback(err);
}
conn.queryRaw(sql,Name, function (err, Result) {
if (err) {
console.log("Error ejecutando la consulta. Error: " +err);
return callback(err);
}
callback(null,Result);
done;
});
});
}
};
我从以下位置调用此函数:
var MultiBD = require('./MultiBD.js');
var LayerType=['PG','SQL','PG'];
var con=’’;
for (var i=1; i<=Layers.length; i++) {
if (Layers[i-1]!=undefined){
con=MultiBD.conexion(LayerType [i-1],server,BD);
MultiBD.GetQueryResult(LayerType[i-1], Name[i-1],con,
function (err,Result){
console.log('Result : ' + Result.rows.length);
}
);
}
}
结果是:
Result : 111
Result : 2888
Result : 5
我得到三个查询结果。第一个返回 111 行,第二个返回 2888 行,第三个返回 5 行。
我需要的是只获得一个包含所有 3004 行 (111+2888+5) 的唯一结果。
问候,
【问题讨论】:
-
如果你的意思是联合,查询在不同的数据库服务器中..我不知道该怎么做你所说的......
-
是什么阻止您合并结果?
-
我不知道如何合并所有结果
标签: node.js sql-server-2008 postgresql