标签: tedious

使用Node.js连接到Microsoft SQL Server 2008(MSSQL)数据库

可能重复:
从Node.js连接到远程Microsoft SQL服务器

我正在寻找有关如何使用Node.js连接到MS SQL Sever 2008的最新说明(v0.5.7)

我在GitHub上尝试了两个Node.js项目:

https://github.com/vivina/node-mssql

https://github.com/orenmazor/node-tds

node-tds是一个废弃的项目,node-mssql似乎不完整,或者至少代码库似乎与最新版本的Node.js已经过时了

有没有人实际上有Node.js连接和查询Microsoft SQL Server 2008?

我很想看到一些配置细节(版本,插件等)和代码示例.

谢谢,

P.

关于SO的过时答案: Node.js和Microsoft SQL Server,从Node.js连接到远程Microsoft SQL服务器

sql-server sql-server-2008 node.js node-mssql tedious

5
推荐指数
1
解决办法
1万
查看次数

Tedious或Sequelize使用`findOne()`的错误语法

我正在使用Sequelize with Tedious来访问SQL Server 2008.

当我这样做时,sequelizeModel.findOne()我得到了这个例外 -

未处理的拒绝SequelizeDatabaseError:FETCH语句中NEXT选项的使用无效.

我知道SQL Server 2008不支持OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY,这就是抛出异常的原因.

但我也明确地设置tdsVersion了繁琐的选项7_3_B.

如此处所述 -
http://pekim.github.io/tedious/api-connection.html

我已经尝试了所有tds版本,生成的查询语法总是包含FETCH/NEXT语法.

我错过了什么吗?

语法不应该特定于tds版本吗?

我还验证了该tdsVersion选项是从sequelize成功传递到繁琐的连接库.

生成的查询语法示例 -

SELECT 
    [id], [FIRST_NAME], [LAST_NAME]  
FROM  
    [USERs] AS [USERS] 
ORDER BY 
    [id]  
    OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 node.js sequelize.js tedious

5
推荐指数
1
解决办法
2379
查看次数

使用"始终加密"启用NodeJS的MS SQL Server数据

如何使用NodeJS(ExpressJS)实现MS SQL连接和CRUD操作?

我通过设置它来尝试使用乏味options.encrypt = true.但它仍然从我的本地开发服务器返回加密数据.

var config = {
  userName: 'sa',
  password: 'password',
  server: 'localhost',
  options: {
    database: 'Employees',
    encrypt: true
  }
}
Run Code Online (Sandbox Code Playgroud)

sql-server encryption node.js tedious

5
推荐指数
0
解决办法
750
查看次数

如何使用express保留一个数据库实例

我正在使用express 和sequelize 来创建REST API。我想只保留数据库的一个实例,并在我可能创建的所有路由中使用它。我的第一个想法是应用程序运行后立即创建实例。像这样的东西。

const express = require('express')
const databaseService = require( './services/database')
const config = require( './config')

const userRoute = require( './routes/user')

const app = express()

databaseService.connect(config.db_options).then(
    connectionInstance => {
        app.use('user', userRoute(connectionInstance))
        app.listen(3000)
    }
)
Run Code Online (Sandbox Code Playgroud)

我还没有见过这样的事情,所以我相信这不是一个好方法。

有任何想法吗 ?

database instance node.js express tedious

5
推荐指数
1
解决办法
2545
查看次数

错误:请手动安装繁琐的包

当我运行使用 sequelize 库连接 MSSQL 数据库的节点应用程序时,出现此错误。

我已经尝试在本地和全局手动安装繁琐,但错误仍然存​​在。

完整的错误堆栈如下:

Error: Please install tedious package manually
at new ConnectionManager (D:\medibookr-api\node_modules\sequelize\lib\dialects\mssql\connection-manager.js:27:15)
at new MssqlDialect (D:\medibookr-api\node_modules\sequelize\lib\dialects\mssql\index.js:14:30)
at new Sequelize (D:\medibookr-api\node_modules\sequelize\lib\sequelize.js:239:20)
at Object.<anonymous> (D:\medibookr-api\models\index.js:30:17)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (D:\medibookr-api\repositories\users.js:4:16)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (D:\medibookr-api\routes\middleware\authenticated.js:3:25)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js tedious

5
推荐指数
1
解决办法
1836
查看次数

节点mssql临时表丢失-RequestError:无效的对象名'#myTempTable'

我正在使用node-mssql并从docker连接到2017 sql服务器。

问题

在我的整个脚本中,

var test = await dbRequest().batch("SELECT * FROM #myTestTable");

间歇地,我得到了错误RequestError: Invalid object name '#myTempTable'。因此,我在sql.ConnectionPool上放了一些手表以识别发生什么情况导致错误。事实证明,在大多数执行行中,pool.pool.available变量为1,如下所示。

在此处输入图片说明

无论何时发生错误,在逐步进入下一行之前,pool.pool.available都将为0,如下所示:

在此处输入图片说明

如果在运行前立即发生这种情况 var test = await dbRequest().batch("SELECT * FROM #myTestTable");

它将失败 RequestError: Invalid object name '#myTempTable'

我尝试过的

我曾尝试通过将池配置发送到Tedious {min: 100, max: 1000, log: true},但不幸的是,它似乎被忽略了(https://www.npmjs.com/package/mssql#connection-pools

var sqlServerProperty = {
    user: '',
    password: '',
    server: '192.168.1.13',
    database: 'CCTDB',
    pool: {min: 1, 
        max: 100, 
        idleTimeoutMillis: 30000}
};
Run Code Online (Sandbox Code Playgroud)

我还尝试了一个pool.request()并从中运行所有dbRequest。没有骰子!

任何帮助表示赞赏!

dbRequest()是什么样的?

// the entire script is wrapped in an async function
        var …
Run Code Online (Sandbox Code Playgroud)

sql-server temp-tables node.js tedious

5
推荐指数
1
解决办法
416
查看次数

如何将node.js日期转换为与SQL Server兼容的日期时间?

我有一个使用ExpressTedious的Web Api 在Azure SQL数据库上存储一些数据。使用nvarchar类型和int类型可以很好地工作,但是当我尝试保存DateTime值时,我收到一条错误消息:

Insert into Proxy (Ip, RequisitionDate) 
values ('1', '2016-05-18 3:32:21' )
Run Code Online (Sandbox Code Playgroud)

错误:

RequestError:参数'RequisitionDate'的验证失败。日期无效。]消息:“参数\'RequisitionDate \'的验证失败。日期无效。”,代码:“ EPARAM”}

好吧,有趣的是

Insert into Proxy (Ip, RequisitionDate) 
values ('1', '2016-05-18 3:32:21')
Run Code Online (Sandbox Code Playgroud)

是我在node.js api中执行的查询:

var query = "Insert into Proxy (Ip,RequisitionDate) values ( '"+ ip + "', '"+ date + "' )";
console.log(query); // Insert into Proxy (Ip,RequisitionDate) values ( '1', '2016-05-18 3:32:21' )

request = new Request(query, function(err) {
    if (err) {
        console.log(err);} …
Run Code Online (Sandbox Code Playgroud)

sql-server azure node.js tedious

4
推荐指数
1
解决办法
6912
查看次数

只能在 LoggedIn 状态下发出请求,不能在 SentClientRequest 状态下发出请求

我试图从数据库获取数据,但出现以下错误 { message: 'Requests can only be made in the LoggedIn state, not the SentClientRequest state', code: 'EINVALIDSTATE' }。如果我只调用一个查询函数,那么它可以工作,但不能用于多个

下面是我的代码

var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
if(!err)
{
    console.log("Connected");
    executeStatement();
    executeStatement2();
}
else
{
    console.log(err);
}
});

var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;

function executeStatement() {
request = new Request("Select p.product_name, s.product_id, s.price,   s.create_date, s.update_date from products p left join sale s on (p.id = s.product_id) order by …
Run Code Online (Sandbox Code Playgroud)

node.js tedious

4
推荐指数
1
解决办法
3万
查看次数

NW.js / Node.js 在使用 node-mssql / 乏味时抛出“SSL 例程:ssl_choose_client_version:不支持的协议”错误

我已经找到了这个问题的答案,只想记录我的发现。

使用最新版本的NW.js(和Node.js)时,我遇到了node-mssql / tedious模块的问题。即使是连接到SQL Server服务器这样简单的任务也会抛出SSL 例程:ssl_choose_client_version:unsupported protocol错误。

sql-server node.js node-webkit tedious

4
推荐指数
1
解决办法
2018
查看次数

如何从NodeJS/Tedious连接到SQL Azure?

我有一个SQL Azure数据库,我正在尝试从Azure Linux VM中运行的NodeJS应用程序连接到该数据库.当我在本地SQL数据库/本地机器上运行NodeJS时,一切正常.但是,当我从我的虚拟机运行时,我得到以下输出(我的跟踪输出加上繁琐的调试事件):

connected to XXXXXXX.database.windows.net:1433
State change: Connecting -> SentPrelogin
State change: SentPrelogin -> SentLogin7WithStandardLogin
connection to XXXXXXX.database.windows.net:1433 closed
State change: SentLogin7WithStandardLogin -> Final
Writing CSV files....
connection to XXXXXXX.database.windows.net:1433 closed
State change: Final -> Final
All Done!
Run Code Online (Sandbox Code Playgroud)

问题是没有出现任何错误,但连接似乎自动关闭.

有关这里可能发生的事情或我如何得出实际错误的任何想法?

node.js tedious azure-sql-database

3
推荐指数
1
解决办法
2465
查看次数