Tedious: Error de tipo 0 desconocido con sqlserver 2000

Creado en 19 feb. 2016  ·  6Comentarios  ·  Fuente: tediousjs/tedious

Acabo de actualizar de la versión 0.2.4 a la última en el entendimiento de que ahora es compatible con el SQL2000 anterior, que no creo que fuera compatible anteriormente.

Puedo conectarme a 2008 sin problema, pero tan pronto como intento conectarme a 2000, el motor se bloquea con un error de 'tipo desconocido: 0', este error no es detectado por el controlador de errores.

aquí está la información de conexión y el error, el motor y la fuente son un par de vars adicionales que uso y no están relacionadas con tedious:

{ server: '192.168.42.4',
  userName: 'XXX',
  password: 'xxx',
  engine: 'MSSQL',
  source: 'sqlite',
  options: 
   { database: 'xxx',
     textsize: '2147483647',
     connectTimeout: 15000,
     requestTimeout: 15000,
     cancelTimeout: 5000,
     packetSize: 4096,
     tdsVersion: '7_4',
     isolationLevel: 2,
     encrypt: false,
     cryptoCredentialsDetails: {},
     useUTC: true,
     useColumnNames: false,
     connectionIsolationLevel: 2,
     readOnlyIntent: false,
     enableAnsiNullDefault: true,
     port: 1433 } 
}

Error: Unknown type: 0
    at Parser.parseTokens (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/token/stream-parser.js:94:30)
    at Parser._transform (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/token/stream-parser.js:67:14)
    at Parser.Transform._read (/usr/share/nodejs/dev/run/pure/node_modules/readable-stream/lib/_stream_transform.js:172:10)
    at Parser.Transform._write (/usr/share/nodejs/dev/run/pure/node_modules/readable-stream/lib/_stream_transform.js:160:12)
    at doWrite (/usr/share/nodejs/dev/run/pure/node_modules/readable-stream/lib/_stream_writable.js:335:12)
    at writeOrBuffer (/usr/share/nodejs/dev/run/pure/node_modules/readable-stream/lib/_stream_writable.js:321:5)
    at Parser.Writable.write (/usr/share/nodejs/dev/run/pure/node_modules/readable-stream/lib/_stream_writable.js:248:11)
    at Parser.addBuffer (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/token/token-stream-parser.js:59:26)
    at Connection.sendDataToTokenStreamParser (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/connection.js:684:37)
    at Connection.data (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/connection.js:1108:21)
    at Connection.dispatchEvent (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/connection.js:559:45)
    at MessageIO.<anonymous> (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/connection.js:476:16)
    at emitOne (events.js:90:13)
    at MessageIO.emit (events.js:182:7)
    at ReadablePacketStream.<anonymous> (/usr/share/nodejs/dev/run/pure/node_modules/tedious/lib/message-io.js:101:13)
    at emitOne (events.js:90:13)

¿Alguna idea sobre cuál puede ser la causa?

bug

Comentario más útil

OK, he encontrado la causa, parece que la negociación automática no funciona en 2000 (seleccionó 7.4 en lugar de 7.1) y, por lo tanto, es necesario especificar la versión en la conexión.

Una vez que hice esto, se conectó sin problemas, creo que esto puede ser un error.

Todos 6 comentarios

OK, he encontrado la causa, parece que la negociación automática no funciona en 2000 (seleccionó 7.4 en lugar de 7.1) y, por lo tanto, es necesario especificar la versión en la conexión.

Una vez que hice esto, se conectó sin problemas, creo que esto puede ser un error.

Sí, esto debe ser un error en el código de negociación / detección de versión. No ejecutamos pruebas unitarias / de integración contra SQLServer 2000 (solo 2008 y posteriores), así que tendré que configurarlo en mi máquina de alguna manera para probar esto.

Gracias @diginfo . Esto resolvió mi problema dos años después.

Sería genial si hubiera un mensaje de error más descriptivo para depurar esto.

¡Esta es una posibilidad muy remota!

Estoy usando node-red-contrib-sqldbs para hablar con mis DB, y tengo uno que es 2000. ¿Alguien sabe cómo puedo configurar el TDS en este tipo de instancia?

¡salud!

var config = {
opciones: {
tdsVersion: '7_1'
}
}

Actualicé los documentos para aclarar el uso de tdsVersion: '7_1' para SQL Server 2000. ¡Gracias @diginfo por el puntero!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ghost picture ghost  ·  5Comentarios

GuyHarwood picture GuyHarwood  ·  7Comentarios

cdibbs picture cdibbs  ·  6Comentarios

jstephens7 picture jstephens7  ·  5Comentarios

SaloniSonpal picture SaloniSonpal  ·  5Comentarios