账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mssql 连接报错 Cannot call write after a stream was destroyed问题
    17
    0
    原本是好的,后边被其他人好像改了数据库端口,后面改回来后就报这个错了。希望有大佬能看看数据库配置`let app = {user: ‘xx’,password: ‘xx’,server: ‘127.0.0.1’,database: ‘xxxx’,port: 2223, options: {encrypt: true,trustServerCertificate: true,},pool: { min: 0,max: 100,idleTimeoutMillis: 3000,},};数据库连接代码const mssql = require(‘mssql’);const config = require("./config.js");const pool1 = new mssql.ConnectionPool(config);const pool1Connect = pool1.connect();pool1.on(‘error’, err => {// … error handler})async function query(sql,callback ) {await pool1Connect; // ensures that the pool has been createdtry {const request = pool1.request(); // or: new sql.Request(pool1)const result = await request.query(sql)callback(null, result);} catch (err) {callback(err, null);console.error(‘SQL error’, err);}}`(node:11964) UnhandledPromiseRejectionWarning: ConnectionError: Failed to connect to 127.0.0.1:2223 - Cannot call write after a stream was destroyedat Connection.<anonymous> (D:\WX\wechatService - 副本\node_modules\mssql\lib\tedious.js:244:17)at Object.onceWrapper (events.js:422:26)at Connection.emit (events.js:315:20)at Connection.socketError (D:\WX\wechatService - 副本\node_modules\tedious\lib\connection.js:1095:12)at Socket.<anonymous> (D:\WX\wechatService - 副本\node_modules\tedious\lib\connection.js:971:14)at Socket.emit (events.js:327:22)at errorOrDestroy (internal/streams/destroy.js:108:12)at onwriteError (_stream_writable.js:418:5)at onwrite (_stream_writable.js:445:5)at doWrite (_stream_writable.js:399:11)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 朝花夕月 普通会员 1楼

      这个错误通常发生在你试图在使用SQL Server的MS Access数据库连接的时候。这个错误通常发生在你试图在读取或写入一个数据库的时候,而这个数据库的连接已经被断开。

      例如,你可能会尝试连接到一个正在关闭的数据库,或者你可能会尝试写入一个已经关闭的数据库。

      解决这个问题的方法是确保在使用数据库连接之前,数据库已经被正确地关闭。你可以使用MS Access的Close方法来关闭数据库连接。

      例如,如果你正在尝试连接到一个正在关闭的数据库,你可以这样做:

      sql Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\database.accdb;Jet OLEDB:4.0;Extended Properties='Text;HDR=Yes'"

      如果你正在尝试写入一个已经关闭的数据库,你可以这样做:

      sql Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\database.accdb;Jet OLEDB:4.0" conn.Close()

      记住,只有在你确定数据库已经被正确地关闭之后,你才能使用数据库连接。

    • Pasttense 普通会员 2楼

      这个错误通常发生在你试图在使用SQL Server的MS Access数据库连接的时候。这个错误通常发生在你试图在读取或写入一个数据库的时候,而这个数据库的连接已经被断开。

      例如,你可能会尝试连接到一个正在关闭的数据库,或者你可能会尝试写入一个已经关闭的数据库。

      解决这个问题的方法是确保在使用数据库连接之前,数据库已经被正确地关闭。你可以使用MS Access的Close方法来关闭数据库连接。

      例如,如果你正在尝试连接到一个正在关闭的数据库,你可以这样做:

      sql Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\database.accdb;Jet OLEDB:4.0;Extended Properties='Text;HDR=Yes'"

      如果你正在尝试写入一个已经关闭的数据库,你可以这样做:

      sql Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\database.accdb;Jet OLEDB:4.0" conn.Close()

      记住,只有在你确定数据库已经被正确地关闭之后,你才能使用数据库连接。

    更多回答
    扫一扫访问手机版