为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:windows server 2016
【CPU】: x86
【问题描述】*:
使用Node.js dmdb 模块查询数据库时,得到的结果列名被强制转换成大写。而实际SQL中列名为大小写混合模式。代码及连接字符串配置如下:
const db = require("dmdb");
db.createPool({
connectString: "dm://SYSDBA:PASSWORD\@localhost:5236?columnNameUpperCase=false",
poolMin: 1,
poolMax: 100,
}).then(function(pool) {
pool.getConnection(function(err, conn) {
if (err) {
console.error('Failed to get Connection.');
console.error(err);
return
}
var sql = 'SELECT PRODUCTID as Product_Id, NAME as name FROM PRODUCTION.PRODUCT WHERE LIMIT 1';
conn.execute(sql, [], function(err, result) {
if (err) {
console.error('SQL ERROR')
console.error(err);
return
}
conn.release();
console.log(result);
})
});
}) .catch(function(err) {
console.log(err);
});
查询结果如下:
{
metaData: [ { name: 'PRODUCT_ID' }, { name: 'NAME' } ],
rows: [ [ 1, '红楼梦' ] ]
}
在达梦数据库是可以设置大小写敏感的,如使用驼峰那种命名方式,一般就只能 数据库初始化的时候 选择大小写不敏感,这样你建表的时候,不管加不加引号,都会保持你创建文本的样式的。