Есть ли способ указать базу данных при определении конфигурации Tedious (Node.js)?
Согласно Руководству по началу работы с Tedious, подключение к базе данных выполняется следующим образом:
var Connection = require('tedious').Connection;
var config = {
userName: 'test',
password: 'test',
server: '192.168.1.210',
// If you're on Windows Azure, you will need this:
options: {encrypt: true}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to go...
executeStatement();
}
);
Как только соединение установлено, запрос может быть выполнен следующим образом:
var Request = require('tedious').Request;
function executeStatement() {
request = new Request("select 42, 'hello world'", function(err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
});
request.on('row', function(columns) {
columns.forEach(function(column) {
console.log(column.value);
});
});
connection.execSql(request);
}
Это работает как шарм, однако я хочу изменить запрос на следующее:
request = new Request("select * from table", function(err, rowCount) {
Очевидно, что это не будет работать, поскольку в объекте config не определена база данных, поэтому SQL не будет распознавать таблицу.
Я попытался добавить следующее в объект конфигурации:
database: 'mydb'
Я все еще получаю следующую ошибку:
Неверное имя объекта "таблица".
Как правильно определить базу данных в объекте конфигурации?
1 ответ
Объект config должен выглядеть так:
var config = {
userName: 'username',
password: 'password',
server: 'server',
options: {
database: "databaseName",
}
};
Я подключаюсь с NodeJS к локальному SQL Server с помощью Tedious. Вышеупомянутая конфигурация не сработала для меня из-за того, как были указаны имя пользователя / пароль. Объекты с несколькими параметрами немного сбивают с толку.
В конце концов, это сработало:
var config = {
server: 'localhost',
options: {
database: "randomDB"
},
authentication: {
type: 'default',
options: {
userName: 'randomUser',
password: 'randomPassword'
}
}
}