tediousjs / tedious

Node TDS module for connecting to SQL Server databases.
http://tediousjs.github.io/tedious/
MIT License
1.58k stars 438 forks source link

Token parser for TABNAME (0xA4) non-existent #410

Open n3rd253 opened 8 years ago

n3rd253 commented 8 years ago

I'm trying to run a stored proc utilizing NO_BROWSETABLE and FMTONLY

SET NO_BROWSETABLE ON; SET FMTONLY ON; EXEC {0}; SET FMTONLY OFF; SET NO_BROWSETABLE OFF

And receive the following:

[1] events.js:160 [1] throw er; // Unhandled 'error' event [1] ^ [1] [1] Error: Unknown type: 164 [1] at Parser.parseTokens (C:\Development\Angular Seed\angular2-seed\node_modules\tedious\lib\token\stream-parser.js:99:30) [1] at Parser._transform (C:\Development\Angular Seed\angular2-seed\node_modules\tedious\lib\token\stream-parser.js:72:14) [1] at Parser.Transform._read (C:\Development\Angular Seed\angular2-seed\node_modules\readable-stream\lib_stream_transform.js:159:10) [1] at Parser.Transform._write (C:\Development\Angular Seed\angular2-seed\node_modules\readable-stream\lib_stream_transform.js:147:83) [1] at doWrite (C:\Development\Angular Seed\angular2-seed\node_modules\readable-stream\lib_stream_writable.js:319:64) [1] at writeOrBuffer (C:\Development\Angular Seed\angular2-seed\node_modules\readable-stream\lib_stream_writable.js:308:5) [1] at Parser.Writable.write (C:\Development\Angular Seed\angular2-seed\node_modules\readable-stream\lib_stream_writable.js:246:11) [1] at Parser.addBuffer (C:\Development\Angular Seed\angular2-seed\node_modules\tedious\lib\token\token-stream-parser.js:50:26) [1] at Connection.sendDataToTokenStreamParser (C:\Development\Angular Seed\angular2-seed\node_modules\tedious\lib\connection.js:644:37) [1] at Connection.data (C:\Development\Angular Seed\angular2-seed\node_modules\tedious\lib\connection.js:1172:21)

{ user: 'mike', password: 'Inspur1234', server: 'MININT-MT0DKDT', database: 'ContosoRetailDW', engine: 'MSSQL', options: { tdsVersion: '7_4', database: 'ContosoRetailDW' } }

A simple query such as "SELECT TOP (10) * FROM dbo.DimStore" returns fine as expected so I don't believe its an issue with connection to the DB; any assistance would be greatly appreciated.

Suraiya-Hameed commented 7 years ago

At present there is no implementation to handle the TDS token TABNAME (0xA4) in the driver. This token is received only when using browse mode or sp_cursoropen, avoiding them is the only alternative till the token is fully supported.