Tedious: erro de tipo 0 desconhecido com sqlserver 2000

Criado em 19 fev. 2016  ·  6Comentários  ·  Fonte: tediousjs/tedious

Acabei de atualizar da versão 0.2.4 para a mais recente sabendo que agora ela oferece suporte ao SQL2000 mais antigo, que não creio que fosse compatível anteriormente.

Consigo me conectar ao 2008 sem problemas, mas assim que tento conectar ao 2000 ele trava o motor com um erro 'tipo desconhecido: 0', esse erro não é detectado pelo gerenciador de erros.

aqui estão as informações de conexão e o erro, o mecanismo e a fonte são alguns vars adicionais que utilizo e não estão relacionados ao tedioso:

{ 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)

Alguma ideia sobre qual pode ser a causa?

bug

Comentários muito úteis

OK, encontrei a causa, parece que a negociação automática não funciona no ano 2000 (selecionou 7,4 em vez de 7,1) e, portanto, é necessário especificar a versão na conexão.

Uma vez que fiz isso ele conectou sem problemas, acho que pode ser um bug?

Todos 6 comentários

OK, encontrei a causa, parece que a negociação automática não funciona no ano 2000 (selecionou 7,4 em vez de 7,1) e, portanto, é necessário especificar a versão na conexão.

Uma vez que fiz isso ele conectou sem problemas, acho que pode ser um bug?

Sim, deve ser um bug no código de detecção / negociação de versão. Não executamos testes de unidade / integração no SQLServer 2000 (apenas em 2008 e posteriores), então terei que configurá-lo em minha máquina de alguma forma para testar isso.

Obrigado @diginfo . Isso resolveu meu problema dois anos depois.

Seria ótimo se houvesse uma mensagem de erro mais descritiva para depurar isso.

Este é um tiro muito longo!

Estou usando node-red-contrib-sqldbs para falar com meus bancos de dados e tenho um que é 2000. Alguém sabe como posso definir o TDS neste tipo de instância?

Felicidades!

var config = {
opções: {
tdsVersion: '7_1'
}
}

Atualizei a documentação para esclarecer o uso de tdsVersion: '7_1' para SQL Server 2000. Obrigado @diginfo pelo ponteiro!

Esta página foi útil?
0 / 5 - 0 avaliações