tedious

Node TDS module for connecting to SQL Server databases.

MIT License

Downloads
7.7M
Stars
1.6K
Committers
96

Bot releases are visible (Hide)

tedious - 2.0.0

Published by arthurschreiber over 7 years ago

Breaking Changes

  • We are dropping support for Node.js versions that are
    no longer supported. Please upgrade to Node.js 4+ or keep using
    tedious 1.x.

    Status of various versions of node may be seen at:
    https://github.com/nodejs/LTS

    Per that, versions v0.10, v0.12 and v5 fell out of maintenance mode.

(c44d42e1)

tedious - 1.15.0 (Alive and Kicking)

Published by arthurschreiber over 7 years ago

What's New

  • #362 tedious now has better support for SQLServer instances configured for High Availability! If the DNS name for the SQLServer instance you're connecting to resolves to multiple IP addresses, tedious will now sequentially try to connect to each of them, and will stop after the first successful connection. There's now also support for the multiSubnetFailover connection option, which allows to connect to all resolved IP addresses in parallel and will use whichever connection was established first. Thanks @chrislukkk and @tvrprasad!
  • #419 When establishing an encrypted connection to a server, tedious never actually verified the certificate presented by the server. As this is probably not a good idea from a security standpoint, there is a new trustServerCertificate connection option that you can set to false to enforce certificate verification. The default behaviour did not change, but will in a future release. Thanks @SimonHooker!
  • #503 The datefirst connection option can now modified when opening a new connection via the datefirst connection option. Thanks @edwardsmit!
  • #501 The arithabort connection option can now modified when opening a new connection via the enableArithAbort connection option. Thanks @carlosman!
  • #505 If a connection is closed prematurely, in-flight requests will have their callback invoked with a RequestError instead of never being called. Thanks @tvrprasad!
  • #489 RequestError and ConnectionError are now exposed as part of the tedious package. Thanks @jeffrosenberg!

Fixed

  • #461 We accidentally broke support for TDS 7.1 (used by SQLServer 2000) a few versions ago. If you're still running software from the year 2000, rejoice - TDS 7.1 support is back! Thanks @tvrprasad!
  • #367 Encrypted connections and NTLM authentication didn't work together, at all - but now they do! Thanks @leerlemoniii and @mcrummey!
  • #417 When authenticating via NTLM, the domain name was sent to the server as provided in the connection options. As it turns out, NTLM prefers domain names to be specified in upper case, so that's what we're doing now. Thanks @tvrprasad!
  • #440 #443 Parsing and writing the contents of GUID columns was pretty slow. Now it's many times faster! Thanks @jdanyow!
  • #445 The configuration object that was passed to the Connection constructor was modified in multiple places. That was pretty careless and unexpected, so tedious now will keep an internal copy of the configuration. Thanks @tvrprasad!
  • #504 Range validation on BigInt data type to prevent silent data corruption. JavaScript only supports precision to 53 bits where BigInt is 64 bits. This used to cause imprecise data being inserted, now this is detected and an error message with work-around presented. Thanks @tvrprasad!
  • #530 The per-request timeout was not cancelled directly after receiving the data (as defined by the TDS specification), so when receiving a large amount of data the request might time out during processing. This will not happen anymore thanks to @chdh!
  • #517 The millisecond value for DateTime fields is now getting rounded down correctly. Thanks @fuga!
  • #514 Failure of establishing an encrypted connection is no longer silently ignored. Thanks @tvrprasad!

Note

This will be the last version of tedious to support Node.js versions < 4.

tedious - 1.14.0

Published by patriksimek over 8 years ago

This release adds support for Variant data type and fixes problems with some SQL collations.

Detailed Changelog

#350 Add Variant data type support
#376 Fix parsing of SQL collations
#361 Align to code style used in Node 4+

tedious - 1.13.2

Published by arthurschreiber almost 9 years ago

Another small bugfix release for an issue introduced in 1.13.0.

Detailed Changelog

#340 Fix handling of null values in nvarchar(max) columns.

tedious - 1.13.1

Published by arthurschreiber almost 9 years ago

Small bugfix release for an issue introduced in 1.13.0.

Detailed Changelog

  • #336 Fix issues with DateTime2 parameters.
tedious - 1.13.0

Published by arthurschreiber almost 9 years ago

This release addresses some issues with the generator based packet and stream parsing code that was introduced in the 1.12.0 release.

As it turns out, the generator based code performed great when parsing single large values, but performed a lot worse than the previous parser code when a lot of small values were parsed. To work around this problem, the generator based code was fully rewritten to be callback based. This does not quite bring us back on previous performance levels in all situations, but should be a step in the right direction. We'll continually release new versions of tedious with further performance improvements.

Another big change is that the internals of tedious were fully rewritten from CoffeeScript to next-gen JavaScript.

Additionally, this release comes with a few other fixes and new functionality:

  • #308 Token and packet debugging works again.
  • #290 Convert all code to next-gen JavaScript.
  • #322 Don't truncate Binary parameters.
  • #330 Forward socket errors to request callbacks.
tedious - 1.11.5

Published by arthurschreiber about 9 years ago

  • #309 #310 Fix a long-standing bug in the handling of rerouting events. This was most noticeable on Azure SQL v12. See #262, #307, #258 and #269 for more information.
tedious - 1.12.3

Published by arthurschreiber about 9 years ago

  • #309 #310 Fix a long-standing bug in the handling of rerouting events. This was most noticeable on Azure SQL v12. See #262, #307, #258 and #269 for more information.
tedious - 1.12.2

Published by arthurschreiber about 9 years ago

  • #297 Fix #295 (Windows Domain Authentication no longer working). This issue was accidentally introduced by #285.
tedious - 1.12.1

Published by arthurschreiber about 9 years ago

  • Fixes #121 (TypeError: Cannot read property 'useUTC' of undefined). This was accidentally introduced with the internal refactorings made for 0.12.0.
tedious - 0.0.3

Published by arthurschreiber about 9 years ago

  • Added support for Order tokens, meaning that select statements with an order clause can now be used.
  • Added support for more data types in result sets: uniqueidentifier, text, ntext, image, smallmoney, money,
  • Fixed bug that prevented new Requests from being initiated from a Request's completion callback.
tedious - 0.0.4

Published by arthurschreiber about 9 years ago

  • On successful connection, set textsize (by default, to 2147483647). This allows long values to be returned for varchar(max), nvarchar(max), varbinary(max), text, ntext, and image datatypes.
  • Honour the defined locale for char, varchar and text datatypes. iconv is used to perform the conversion, and is included as an optional dependency. If it is not available, then ascii is used as fallback when converting the buffers to strings.
  • #14 Added support for executing parameterised statements.
  • #16 Added support for calling procedures with parameters.
  • #20 Support connecting by instance name (instead of port).
  • Expose the total number of rows returned, in Request's completion callback.
tedious - 0.0.5

Published by arthurschreiber about 9 years ago

  • Instead of publishing CoffeeScript files and compiling them at runtime, the CoffeeScript is compiled before publishing. Only Javascript files are pubslished and installed.
  • Support for preparing and executing SQL.
  • #25 When the value of tinyint, smallint or int parameters are 0, do not send their value as null.
  • #22 Support for DATABASE_MIRRORING_PARTNER environment change notification.
  • Support for using bit, smalldatetime and datetime types in parameterised statements.
  • #32 Support for using varchar(max) and nvarchar(max) in parameterised statements.
  • Use iconv-lite instead of iconv. This means that tedious is back to pure Javascript, including its dependencies.
tedious - 0.0.6

Published by arthurschreiber about 9 years ago

  • Remove post-install script hook. It won't run (as is) on Windows, and doesn't really add anything useful.
tedious - 0.0.7

Published by arthurschreiber about 9 years ago

  • Support for transactions.
  • Experimental support for secure connections.
  • Some support for TDS 7.1, for connecting to SQL Server 2000. (Phil Dodderidge)
tedious - 0.1.0

Published by arthurschreiber about 9 years ago

  • Support GUID, BigInt and Float as a parameter types. (Zach Aller)
  • Support for windows936 encoding. (lastonesky)
  • Same format for GUIDs in results and parameters. (Cort Fritz)
tedious - 0.1.2

Published by arthurschreiber about 9 years ago

  • #66 Column not accessible by column name when the name is numeric.
  • #67 Support for XML data type in result sets.
tedious - 0.1.3

Published by arthurschreiber about 9 years ago

  • #75 Support Text as a parameter type. (Zach Aller)
  • #72 New example, showing insert statement using parameters of different types. (Will Munn)
  • #70 Support for duplicate column names in result sets. (Nadeem)
tedious - 0.1.4

Published by arthurschreiber about 9 years ago

  • #80 Add placeholder event handlers to suppress crash in final. (Nicholas Penree)
  • #83 Better default values for options in default sql statement. (Kevin Pullin)
  • #73 Expose collected rows in request callback and done* events.
  • #85 Add connection.reset function, to reset connection to initial state.
  • #86 Make encrypted connections work with node v0.10.
  • #91 Honour optional appName property in config.options.
  • Add support for using Real in parameterized statements.
  • Correct value for Request's completion callback's rowCount argument for statements other than select.
tedious - 0.1.5

Published by arthurschreiber about 9 years ago

  • #94 Emit connect event with error (if connecting) or emit errorMessage event on socket error. (Daniel Rapp)
  • #96 Emit event after request callback. (Matheus Kautzmann)