Tedious: kesalahan tipe 0 yang tidak diketahui dengan sqlserver 2000

Dibuat pada 19 Feb 2016  ·  6Komentar  ·  Sumber: tediousjs/tedious

Saya baru saja memutakhirkan dari versi 0.2.4 ke yang terbaru dengan pemahaman bahwa sekarang mendukung SQL2000 yang lebih lama yang saya tidak percaya didukung sebelumnya.

Saya dapat terhubung ke 2008 tidak ada masalah, tetapi segera setelah saya mencoba dan terhubung ke 2000, mesin crash dengan kesalahan 'tipe tidak diketahui: 0', kesalahan ini tidak ditangkap oleh penangan kesalahan.

inilah info koneksi dan kesalahannya, mesin dan sumbernya adalah beberapa vars tambahan yang saya gunakan dan tidak terkait dengan membosankan:

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

Adakah ide tentang apa penyebabnya?

bug

Komentar yang paling membantu

Oke, saya telah menemukan penyebabnya, tampaknya negosiasi otomatis tidak berfungsi pada 2000 (ia memilih 7.4 alih-alih 7.1) dan oleh karena itu perlu untuk menentukan versi dalam koneksi.

Setelah saya melakukan ini, itu terhubung tidak ada masalah, saya pikir ini mungkin bug?

Semua 6 komentar

Oke, saya telah menemukan penyebabnya, tampaknya negosiasi otomatis tidak berfungsi pada 2000 (ia memilih 7.4 alih-alih 7.1) dan oleh karena itu perlu untuk menentukan versi dalam koneksi.

Setelah saya melakukan ini, itu terhubung tidak ada masalah, saya pikir ini mungkin bug?

Ya, ini pasti bug dalam kode negosiasi/deteksi versi. Kami tidak menjalankan tes unit/integrasi terhadap SQLServer 2000 (hanya 2008 dan yang lebih baru), jadi saya harus mengaturnya di mesin saya entah bagaimana untuk menguji ini.

Terima kasih @diginfo . Ini memecahkan masalah saya dua tahun kemudian.

Akan lebih bagus jika ada pesan kesalahan yang lebih deskriptif untuk men-debug ini.

Ini adalah tembakan yang sangat panjang!

Saya menggunakan node-red-contrib-sqldbs untuk berbicara dengan DB saya, dan saya punya satu yang 2000. ada yang tahu bagaimana saya bisa mengatur TDS dalam contoh semacam ini?

Bersulang!

konfigurasi var = {
pilihan: {
tdsVersi: '7_1'
}
}

Saya telah memperbarui dokumen untuk memperjelas penggunaan tdsVersion: '7_1' untuk SQL Server 2000. Terima kasih @diginfo untuk penunjuknya!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat