tedious 1.13.2 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/appveyor.yml +2 -0
- package/lib/all-headers.js +2 -5
- package/lib/buffertools.js +1 -1
- package/lib/bulk-load.js +18 -27
- package/lib/collation.js +78 -6
- package/lib/connection.js +120 -159
- package/lib/data-type.js +73 -72
- package/lib/debug.js +5 -17
- package/lib/errors.js +8 -16
- package/lib/guid-parser.js +2 -5
- package/lib/instance-lookup.js +7 -16
- package/lib/library.js +1 -5
- package/lib/login7-payload.js +16 -34
- package/lib/message-io.js +21 -35
- package/lib/metadata-parser.js +22 -18
- package/lib/ntlm-payload.js +9 -24
- package/lib/packet.js +11 -18
- package/lib/prelogin-payload.js +10 -19
- package/lib/request.js +15 -24
- package/lib/rpcrequest-payload.js +7 -16
- package/lib/special-stored-procedure.js +3 -7
- package/lib/sqlbatch-payload.js +7 -16
- package/lib/stream-parser.js +24 -36
- package/lib/tds-versions.js +2 -8
- package/lib/tedious.js +8 -52
- package/lib/token/colmetadata-token-parser.js +4 -14
- package/lib/token/done-token-parser.js +6 -9
- package/lib/token/env-change-token-parser.js +4 -9
- package/lib/token/infoerror-token-parser.js +9 -12
- package/lib/token/loginack-token-parser.js +8 -8
- package/lib/token/nbcrow-token-parser.js +5 -15
- package/lib/token/order-token-parser.js +3 -9
- package/lib/token/returnstatus-token-parser.js +3 -9
- package/lib/token/returnvalue-token-parser.js +7 -20
- package/lib/token/row-token-parser.js +5 -15
- package/lib/token/sspi-token-parser.js +3 -8
- package/lib/token/stream-parser.js +60 -58
- package/lib/token/token-stream-parser.js +14 -23
- package/lib/token/token.js +3 -7
- package/lib/tracking-buffer/bigint.js +2 -5
- package/lib/tracking-buffer/readable-tracking-buffer.js +6 -13
- package/lib/tracking-buffer/tracking-buffer.js +2 -16
- package/lib/tracking-buffer/writable-tracking-buffer.js +3 -15
- package/lib/transaction.js +7 -12
- package/lib/value-parser.js +95 -69
- package/package.json +6 -1
package/lib/request.js
CHANGED
|
@@ -8,17 +8,11 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
|
|
|
8
8
|
|
|
9
9
|
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
var EventEmitter = require('events').EventEmitter;
|
|
12
|
+
var TYPES = require('./data-type').typeByName;
|
|
13
|
+
var RequestError = require('./errors').RequestError;
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var _dataType = require('./data-type');
|
|
18
|
-
|
|
19
|
-
var _errors = require('./errors');
|
|
20
|
-
|
|
21
|
-
var Request = (function (_EventEmitter) {
|
|
15
|
+
module.exports = (function (_EventEmitter) {
|
|
22
16
|
_inherits(Request, _EventEmitter);
|
|
23
17
|
|
|
24
18
|
function Request(sqlTextOrProcedure, callback) {
|
|
@@ -79,7 +73,7 @@ var Request = (function (_EventEmitter) {
|
|
|
79
73
|
if (paramsParameter.length > 0) {
|
|
80
74
|
paramsParameter += ', ';
|
|
81
75
|
}
|
|
82
|
-
paramsParameter +=
|
|
76
|
+
paramsParameter += '@' + parameter.name + ' ';
|
|
83
77
|
paramsParameter += parameter.type.declaration(parameter);
|
|
84
78
|
if (parameter.output) {
|
|
85
79
|
paramsParameter += ' OUTPUT';
|
|
@@ -96,9 +90,9 @@ var Request = (function (_EventEmitter) {
|
|
|
96
90
|
|
|
97
91
|
this.originalParameters = this.parameters;
|
|
98
92
|
this.parameters = [];
|
|
99
|
-
this.addParameter('statement',
|
|
93
|
+
this.addParameter('statement', TYPES.NVarChar, this.sqlTextOrProcedure);
|
|
100
94
|
if (this.originalParameters.length) {
|
|
101
|
-
this.addParameter('params',
|
|
95
|
+
this.addParameter('params', TYPES.NVarChar, this.makeParamsParameter(this.originalParameters));
|
|
102
96
|
}
|
|
103
97
|
|
|
104
98
|
for (var i = 0, len = this.originalParameters.length; i < len; i++) {
|
|
@@ -114,16 +108,16 @@ var Request = (function (_EventEmitter) {
|
|
|
114
108
|
|
|
115
109
|
this.originalParameters = this.parameters;
|
|
116
110
|
this.parameters = [];
|
|
117
|
-
this.addOutputParameter('handle',
|
|
118
|
-
this.addParameter('params',
|
|
119
|
-
this.addParameter('stmt',
|
|
111
|
+
this.addOutputParameter('handle', TYPES.Int);
|
|
112
|
+
this.addParameter('params', TYPES.NVarChar, this.makeParamsParameter(this.originalParameters));
|
|
113
|
+
this.addParameter('stmt', TYPES.NVarChar, this.sqlTextOrProcedure);
|
|
120
114
|
this.sqlTextOrProcedure = 'sp_prepare';
|
|
121
115
|
this.preparing = true;
|
|
122
116
|
return this.on('returnValue', function (name, value) {
|
|
123
117
|
if (name === 'handle') {
|
|
124
118
|
return _this.handle = value;
|
|
125
119
|
} else {
|
|
126
|
-
return _this.error =
|
|
120
|
+
return _this.error = RequestError('Tedious > Unexpected output parameter ' + name + ' from sp_prepare');
|
|
127
121
|
}
|
|
128
122
|
});
|
|
129
123
|
}
|
|
@@ -131,14 +125,14 @@ var Request = (function (_EventEmitter) {
|
|
|
131
125
|
key: 'transformIntoUnprepareRpc',
|
|
132
126
|
value: function transformIntoUnprepareRpc() {
|
|
133
127
|
this.parameters = [];
|
|
134
|
-
this.addParameter('handle',
|
|
128
|
+
this.addParameter('handle', TYPES.Int, this.handle);
|
|
135
129
|
return this.sqlTextOrProcedure = 'sp_unprepare';
|
|
136
130
|
}
|
|
137
131
|
}, {
|
|
138
132
|
key: 'transformIntoExecuteRpc',
|
|
139
133
|
value: function transformIntoExecuteRpc(parameters) {
|
|
140
134
|
this.parameters = [];
|
|
141
|
-
this.addParameter('handle',
|
|
135
|
+
this.addParameter('handle', TYPES.Int, this.handle);
|
|
142
136
|
|
|
143
137
|
for (var i = 0, len = this.originalParameters.length; i < len; i++) {
|
|
144
138
|
var parameter = this.originalParameters[i];
|
|
@@ -159,7 +153,7 @@ var Request = (function (_EventEmitter) {
|
|
|
159
153
|
var parameter = this.parameters[i];
|
|
160
154
|
var value = parameter.type.validate(parameter.value);
|
|
161
155
|
if (value instanceof TypeError) {
|
|
162
|
-
return this.error = new
|
|
156
|
+
return this.error = new RequestError('Validation failed for parameter \'' + parameter.name + '\'. ' + value.message, 'EPARAM');
|
|
163
157
|
}
|
|
164
158
|
parameter.value = value;
|
|
165
159
|
}
|
|
@@ -168,7 +162,4 @@ var Request = (function (_EventEmitter) {
|
|
|
168
162
|
}]);
|
|
169
163
|
|
|
170
164
|
return Request;
|
|
171
|
-
})(
|
|
172
|
-
|
|
173
|
-
exports['default'] = Request;
|
|
174
|
-
module.exports = exports['default'];
|
|
165
|
+
})(EventEmitter);
|
|
@@ -4,13 +4,8 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
|
|
|
4
4
|
|
|
5
5
|
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
var _trackingBufferTrackingBuffer = require('./tracking-buffer/tracking-buffer');
|
|
12
|
-
|
|
13
|
-
var _allHeaders = require('./all-headers');
|
|
7
|
+
var WritableTrackingBuffer = require('./tracking-buffer/tracking-buffer').WritableTrackingBuffer;
|
|
8
|
+
var writeAllHeaders = require('./all-headers').writeToTrackingBuffer;
|
|
14
9
|
|
|
15
10
|
// const OPTION = {
|
|
16
11
|
// WITH_RECOMPILE: 0x01,
|
|
@@ -26,18 +21,17 @@ var STATUS = {
|
|
|
26
21
|
/*
|
|
27
22
|
s2.2.6.5
|
|
28
23
|
*/
|
|
29
|
-
|
|
30
|
-
var RpcRequestPayload = (function () {
|
|
24
|
+
module.exports = (function () {
|
|
31
25
|
function RpcRequestPayload(request, txnDescriptor, options) {
|
|
32
26
|
_classCallCheck(this, RpcRequestPayload);
|
|
33
27
|
|
|
34
28
|
this.request = request;
|
|
35
29
|
this.procedure = this.request.sqlTextOrProcedure;
|
|
36
30
|
|
|
37
|
-
var buffer = new
|
|
31
|
+
var buffer = new WritableTrackingBuffer(500);
|
|
38
32
|
if (options.tdsVersion >= '7_2') {
|
|
39
33
|
var outstandingRequestCount = 1;
|
|
40
|
-
(
|
|
34
|
+
writeAllHeaders(buffer, txnDescriptor, outstandingRequestCount);
|
|
41
35
|
}
|
|
42
36
|
|
|
43
37
|
if (typeof this.procedure === 'string') {
|
|
@@ -102,12 +96,9 @@ var RpcRequestPayload = (function () {
|
|
|
102
96
|
key: 'toString',
|
|
103
97
|
value: function toString(indent) {
|
|
104
98
|
indent || (indent = '');
|
|
105
|
-
return indent + (
|
|
99
|
+
return indent + ('RPC Request - ' + this.procedure);
|
|
106
100
|
}
|
|
107
101
|
}]);
|
|
108
102
|
|
|
109
103
|
return RpcRequestPayload;
|
|
110
|
-
})();
|
|
111
|
-
|
|
112
|
-
exports['default'] = RpcRequestPayload;
|
|
113
|
-
module.exports = exports['default'];
|
|
104
|
+
})();
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = {
|
|
3
|
+
module.exports = {
|
|
7
4
|
Sp_Cursor: 1,
|
|
8
5
|
Sp_CursorOpen: 2,
|
|
9
6
|
Sp_CursorPrepare: 3,
|
|
@@ -19,5 +16,4 @@ exports["default"] = {
|
|
|
19
16
|
Sp_PrepExec: 13,
|
|
20
17
|
Sp_PrepExecRpc: 14,
|
|
21
18
|
Sp_Unprepare: 15
|
|
22
|
-
};
|
|
23
|
-
module.exports = exports["default"];
|
|
19
|
+
};
|
package/lib/sqlbatch-payload.js
CHANGED
|
@@ -4,28 +4,22 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
|
|
|
4
4
|
|
|
5
5
|
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
var _trackingBufferTrackingBuffer = require('./tracking-buffer/tracking-buffer');
|
|
12
|
-
|
|
13
|
-
var _allHeaders = require('./all-headers');
|
|
7
|
+
var WritableTrackingBuffer = require('./tracking-buffer/tracking-buffer').WritableTrackingBuffer;
|
|
8
|
+
var writeAllHeaders = require('./all-headers').writeToTrackingBuffer;
|
|
14
9
|
|
|
15
10
|
/*
|
|
16
11
|
s2.2.6.6
|
|
17
12
|
*/
|
|
18
|
-
|
|
19
|
-
var SqlBatchPayload = (function () {
|
|
13
|
+
module.exports = (function () {
|
|
20
14
|
function SqlBatchPayload(sqlText, txnDescriptor, options) {
|
|
21
15
|
_classCallCheck(this, SqlBatchPayload);
|
|
22
16
|
|
|
23
17
|
this.sqlText = sqlText;
|
|
24
18
|
|
|
25
|
-
var buffer = new
|
|
19
|
+
var buffer = new WritableTrackingBuffer(100 + 2 * this.sqlText.length, 'ucs2');
|
|
26
20
|
if (options.tdsVersion >= '7_2') {
|
|
27
21
|
var outstandingRequestCount = 1;
|
|
28
|
-
(
|
|
22
|
+
writeAllHeaders(buffer, txnDescriptor, outstandingRequestCount);
|
|
29
23
|
}
|
|
30
24
|
buffer.writeString(this.sqlText, 'ucs2');
|
|
31
25
|
this.data = buffer.data;
|
|
@@ -35,12 +29,9 @@ var SqlBatchPayload = (function () {
|
|
|
35
29
|
key: 'toString',
|
|
36
30
|
value: function toString(indent) {
|
|
37
31
|
indent || (indent = '');
|
|
38
|
-
return indent + (
|
|
32
|
+
return indent + ('SQL Batch - ' + this.sqlText);
|
|
39
33
|
}
|
|
40
34
|
}]);
|
|
41
35
|
|
|
42
36
|
return SqlBatchPayload;
|
|
43
|
-
})();
|
|
44
|
-
|
|
45
|
-
exports['default'] = SqlBatchPayload;
|
|
46
|
-
module.exports = exports['default'];
|
|
37
|
+
})();
|
package/lib/stream-parser.js
CHANGED
|
@@ -10,19 +10,8 @@ var _createClass = require('babel-runtime/helpers/create-class')['default'];
|
|
|
10
10
|
|
|
11
11
|
var _Object$keys = require('babel-runtime/core-js/object/keys')['default'];
|
|
12
12
|
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
Object.defineProperty(exports, '__esModule', {
|
|
16
|
-
value: true
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
var _readableStream = require('readable-stream');
|
|
20
|
-
|
|
21
|
-
var _readableStream2 = _interopRequireDefault(_readableStream);
|
|
22
|
-
|
|
23
|
-
var _bl = require('bl');
|
|
24
|
-
|
|
25
|
-
var _bl2 = _interopRequireDefault(_bl);
|
|
13
|
+
var stream = require('readable-stream');
|
|
14
|
+
var BufferList = require('bl');
|
|
26
15
|
|
|
27
16
|
var Job = function Job(length, execute) {
|
|
28
17
|
_classCallCheck(this, Job);
|
|
@@ -37,58 +26,58 @@ var Job = function Job(length, execute) {
|
|
|
37
26
|
;
|
|
38
27
|
|
|
39
28
|
var JOBS = {
|
|
40
|
-
|
|
29
|
+
readInt8: new Job(1, function (buffer, offset) {
|
|
41
30
|
return buffer.readInt8(offset);
|
|
42
31
|
}),
|
|
43
|
-
|
|
32
|
+
readUInt8: new Job(1, function (buffer, offset) {
|
|
44
33
|
return buffer.readUInt8(offset);
|
|
45
34
|
}),
|
|
46
|
-
|
|
35
|
+
readInt16LE: new Job(2, function (buffer, offset) {
|
|
47
36
|
return buffer.readInt16LE(offset);
|
|
48
37
|
}),
|
|
49
|
-
|
|
38
|
+
readInt16BE: new Job(2, function (buffer, offset) {
|
|
50
39
|
return buffer.readInt16BE(offset);
|
|
51
40
|
}),
|
|
52
|
-
|
|
41
|
+
readUInt16LE: new Job(2, function (buffer, offset) {
|
|
53
42
|
return buffer.readUInt16LE(offset);
|
|
54
43
|
}),
|
|
55
|
-
|
|
44
|
+
readUInt16BE: new Job(2, function (buffer, offset) {
|
|
56
45
|
return buffer.readUInt16BE(offset);
|
|
57
46
|
}),
|
|
58
|
-
|
|
47
|
+
readInt32LE: new Job(4, function (buffer, offset) {
|
|
59
48
|
return buffer.readInt32LE(offset);
|
|
60
49
|
}),
|
|
61
|
-
|
|
50
|
+
readInt32BE: new Job(4, function (buffer, offset) {
|
|
62
51
|
return buffer.readInt32BE(offset);
|
|
63
52
|
}),
|
|
64
|
-
|
|
53
|
+
readUInt32LE: new Job(4, function (buffer, offset) {
|
|
65
54
|
return buffer.readUInt32LE(offset);
|
|
66
55
|
}),
|
|
67
|
-
|
|
56
|
+
readUInt32BE: new Job(4, function (buffer, offset) {
|
|
68
57
|
return buffer.readUInt32BE(offset);
|
|
69
58
|
}),
|
|
70
|
-
|
|
59
|
+
readInt64LE: new Job(8, function (buffer, offset) {
|
|
71
60
|
return Math.pow(2, 32) * buffer.readInt32LE(offset + 4) + (buffer[offset + 4] & 0x80 === 0x80 ? 1 : -1) * buffer.readUInt32LE(offset);
|
|
72
61
|
}),
|
|
73
|
-
|
|
62
|
+
readInt64BE: new Job(8, function (buffer, offset) {
|
|
74
63
|
return Math.pow(2, 32) * buffer.readInt32BE(offset) + (buffer[offset] & 0x80 === 0x80 ? 1 : -1) * buffer.readUInt32BE(offset + 4);
|
|
75
64
|
}),
|
|
76
|
-
|
|
65
|
+
readUInt64LE: new Job(8, function (buffer, offset) {
|
|
77
66
|
return Math.pow(2, 32) * buffer.readUInt32LE(offset + 4) + buffer.readUInt32LE(offset);
|
|
78
67
|
}),
|
|
79
|
-
|
|
68
|
+
readUInt64BE: new Job(8, function (buffer, offset) {
|
|
80
69
|
return Math.pow(2, 32) * buffer.readUInt32BE(offset) + buffer.readUInt32BE(offset + 4);
|
|
81
70
|
}),
|
|
82
|
-
|
|
71
|
+
readFloatLE: new Job(4, function (buffer, offset) {
|
|
83
72
|
return buffer.readFloatLE(offset);
|
|
84
73
|
}),
|
|
85
|
-
|
|
74
|
+
readFloatBE: new Job(4, function (buffer, offset) {
|
|
86
75
|
return buffer.readFloatBE(offset);
|
|
87
76
|
}),
|
|
88
|
-
|
|
77
|
+
readDoubleLE: new Job(8, function (buffer, offset) {
|
|
89
78
|
return buffer.readDoubleLE(offset);
|
|
90
79
|
}),
|
|
91
|
-
|
|
80
|
+
readDoubleBE: new Job(8, function (buffer, offset) {
|
|
92
81
|
return buffer.readDoubleBE(offset);
|
|
93
82
|
})
|
|
94
83
|
};
|
|
@@ -107,7 +96,7 @@ var StreamParser = (function (_stream$Transform) {
|
|
|
107
96
|
|
|
108
97
|
_get(Object.getPrototypeOf(StreamParser.prototype), 'constructor', this).call(this, options);
|
|
109
98
|
|
|
110
|
-
this.buffer = new
|
|
99
|
+
this.buffer = new BufferList();
|
|
111
100
|
this.generator = undefined;
|
|
112
101
|
this.currentStep = undefined;
|
|
113
102
|
}
|
|
@@ -174,13 +163,12 @@ var StreamParser = (function (_stream$Transform) {
|
|
|
174
163
|
}]);
|
|
175
164
|
|
|
176
165
|
return StreamParser;
|
|
177
|
-
})(
|
|
166
|
+
})(stream.Transform);
|
|
178
167
|
|
|
179
|
-
exports
|
|
168
|
+
module.exports = StreamParser;
|
|
180
169
|
|
|
181
170
|
_Object$keys(JOBS).forEach(function (jobName) {
|
|
182
171
|
return StreamParser.prototype[jobName] = function () {
|
|
183
172
|
return JOBS[jobName];
|
|
184
173
|
};
|
|
185
|
-
});
|
|
186
|
-
module.exports = exports['default'];
|
|
174
|
+
});
|
package/lib/tds-versions.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
// Generated by CoffeeScript 1.9.3
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
var versions = {
|
|
3
|
+
var versions = module.exports.versions = {
|
|
8
4
|
'7_1': 0x71000001,
|
|
9
5
|
'7_2': 0x72090002,
|
|
10
6
|
'7_3_A': 0x730A0003,
|
|
@@ -12,10 +8,8 @@ var versions = {
|
|
|
12
8
|
'7_4': 0x74000004
|
|
13
9
|
};
|
|
14
10
|
|
|
15
|
-
exports.
|
|
16
|
-
var versionsByValue = {};
|
|
11
|
+
var versionsByValue = module.exports.versionsByValue = {};
|
|
17
12
|
|
|
18
|
-
exports.versionsByValue = versionsByValue;
|
|
19
13
|
for (var _name in versions) {
|
|
20
14
|
versionsByValue[versions[_name]] = _name;
|
|
21
15
|
}
|
package/lib/tedious.js
CHANGED
|
@@ -1,54 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _bulkLoad2 = _interopRequireDefault(_bulkLoad);
|
|
12
|
-
|
|
13
|
-
var _connection = require('./connection');
|
|
14
|
-
|
|
15
|
-
var _connection2 = _interopRequireDefault(_connection);
|
|
16
|
-
|
|
17
|
-
var _request = require('./request');
|
|
18
|
-
|
|
19
|
-
var _request2 = _interopRequireDefault(_request);
|
|
20
|
-
|
|
21
|
-
var _library = require('./library');
|
|
22
|
-
|
|
23
|
-
var _library2 = _interopRequireDefault(_library);
|
|
24
|
-
|
|
25
|
-
var _dataType = require('./data-type');
|
|
26
|
-
|
|
27
|
-
Object.defineProperty(exports, 'TYPES', {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function get() {
|
|
30
|
-
return _dataType.typeByName;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
var _transaction = require('./transaction');
|
|
35
|
-
|
|
36
|
-
Object.defineProperty(exports, 'ISOLATION_LEVEL', {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function get() {
|
|
39
|
-
return _transaction.ISOLATION_LEVEL;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
var _tdsVersions = require('./tds-versions');
|
|
44
|
-
|
|
45
|
-
Object.defineProperty(exports, 'TDS_VERSION', {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
get: function get() {
|
|
48
|
-
return _tdsVersions.versions;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
exports.BulkLoad = _bulkLoad2['default'];
|
|
52
|
-
exports.Connection = _connection2['default'];
|
|
53
|
-
exports.Request = _request2['default'];
|
|
54
|
-
exports.library = _library2['default'];
|
|
3
|
+
module.exports.BulkLoad = require('./bulk-load');
|
|
4
|
+
module.exports.Connection = require('./connection');
|
|
5
|
+
module.exports.Request = require('./request');
|
|
6
|
+
module.exports.library = require('./library');
|
|
7
|
+
|
|
8
|
+
module.exports.TYPES = require('./data-type').typeByName;
|
|
9
|
+
module.exports.ISOLATION_LEVEL = require('./transaction').ISOLATION_LEVEL;
|
|
10
|
+
module.exports.TDS_VERSION = require('./tds-versions').versions;
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, '__esModule', {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
var _metadataParser = require('../metadata-parser');
|
|
10
|
-
|
|
11
|
-
var _metadataParser2 = _interopRequireDefault(_metadataParser);
|
|
3
|
+
var metadataParse = require('../metadata-parser');
|
|
12
4
|
|
|
13
5
|
function readTableName(parser, options, metadata, callback) {
|
|
14
6
|
if (metadata.type.hasTableName) {
|
|
@@ -58,7 +50,7 @@ function readColumnName(parser, options, index, metadata, callback) {
|
|
|
58
50
|
}
|
|
59
51
|
|
|
60
52
|
function readColumn(parser, options, index, callback) {
|
|
61
|
-
(
|
|
53
|
+
metadataParse(parser, options, function (metadata) {
|
|
62
54
|
readTableName(parser, options, metadata, function (tableName) {
|
|
63
55
|
readColumnName(parser, options, index, metadata, function (colName) {
|
|
64
56
|
callback({
|
|
@@ -78,7 +70,7 @@ function readColumn(parser, options, index, callback) {
|
|
|
78
70
|
});
|
|
79
71
|
}
|
|
80
72
|
|
|
81
|
-
exports
|
|
73
|
+
module.exports = function (parser, colMetadata, options, callback) {
|
|
82
74
|
parser.readUInt16LE(function (columnCount) {
|
|
83
75
|
var columns = [];
|
|
84
76
|
|
|
@@ -104,6 +96,4 @@ exports['default'] = function (parser, colMetadata, options, callback) {
|
|
|
104
96
|
});
|
|
105
97
|
});
|
|
106
98
|
});
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
module.exports = exports['default'];
|
|
99
|
+
};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
// s2.2.7.5/6/7
|
|
2
|
-
|
|
3
1
|
'use strict';
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
-
exports.doneParser = doneParser;
|
|
9
|
-
exports.doneInProcParser = doneInProcParser;
|
|
10
|
-
exports.doneProcParser = doneProcParser;
|
|
3
|
+
// s2.2.7.5/6/7
|
|
4
|
+
|
|
11
5
|
var STATUS = {
|
|
12
6
|
MORE: 0x0001,
|
|
13
7
|
ERROR: 0x0002,
|
|
@@ -27,7 +21,7 @@ function parseToken(parser, options, callback) {
|
|
|
27
21
|
var serverError = !!(status & STATUS.SRVERROR);
|
|
28
22
|
|
|
29
23
|
parser.readUInt16LE(function (curCmd) {
|
|
30
|
-
(options.tdsVersion <
|
|
24
|
+
(options.tdsVersion < '7_2' ? parser.readUInt32LE : parser.readUInt64LE).call(parser, function (rowCount) {
|
|
31
25
|
callback({
|
|
32
26
|
name: 'DONE',
|
|
33
27
|
event: 'done',
|
|
@@ -43,6 +37,7 @@ function parseToken(parser, options, callback) {
|
|
|
43
37
|
});
|
|
44
38
|
}
|
|
45
39
|
|
|
40
|
+
module.exports.doneParser = doneParser;
|
|
46
41
|
function doneParser(parser, colMetadata, options, callback) {
|
|
47
42
|
parseToken(parser, options, function (token) {
|
|
48
43
|
token.name = 'DONE';
|
|
@@ -51,6 +46,7 @@ function doneParser(parser, colMetadata, options, callback) {
|
|
|
51
46
|
});
|
|
52
47
|
}
|
|
53
48
|
|
|
49
|
+
module.exports.doneInProcParser = doneInProcParser;
|
|
54
50
|
function doneInProcParser(parser, colMetadata, options, callback) {
|
|
55
51
|
parseToken(parser, options, function (token) {
|
|
56
52
|
token.name = 'DONEINPROC';
|
|
@@ -59,6 +55,7 @@ function doneInProcParser(parser, colMetadata, options, callback) {
|
|
|
59
55
|
});
|
|
60
56
|
}
|
|
61
57
|
|
|
58
|
+
module.exports.doneProcParser = doneProcParser;
|
|
62
59
|
function doneProcParser(parser, colMetadata, options, callback) {
|
|
63
60
|
parseToken(parser, options, function (token) {
|
|
64
61
|
token.name = 'DONEPROC';
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
3
|
var types = {
|
|
7
4
|
1: {
|
|
8
5
|
name: 'DATABASE',
|
|
@@ -117,7 +114,7 @@ function readNewAndOldValue(parser, length, type, callback) {
|
|
|
117
114
|
break;
|
|
118
115
|
|
|
119
116
|
default:
|
|
120
|
-
console.error(
|
|
117
|
+
console.error('Tedious > Unsupported ENVCHANGE type ' + type.name);
|
|
121
118
|
// skip unknown bytes
|
|
122
119
|
parser.readBuffer(length - 1, function () {
|
|
123
120
|
callback(undefined, undefined);
|
|
@@ -125,13 +122,13 @@ function readNewAndOldValue(parser, length, type, callback) {
|
|
|
125
122
|
}
|
|
126
123
|
}
|
|
127
124
|
|
|
128
|
-
exports
|
|
125
|
+
module.exports = function (parser, colMetadata, options, callback) {
|
|
129
126
|
parser.readUInt16LE(function (length) {
|
|
130
127
|
parser.readUInt8(function (typeNumber) {
|
|
131
128
|
var type = types[typeNumber];
|
|
132
129
|
|
|
133
130
|
if (!type) {
|
|
134
|
-
console.error(
|
|
131
|
+
console.error('Tedious > Unsupported ENVCHANGE type ' + typeNumber);
|
|
135
132
|
// skip unknown bytes
|
|
136
133
|
return parser.readBuffer(length - 1, function () {
|
|
137
134
|
callback();
|
|
@@ -149,6 +146,4 @@ exports['default'] = function (parser, colMetadata, options, callback) {
|
|
|
149
146
|
});
|
|
150
147
|
});
|
|
151
148
|
});
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
module.exports = exports['default'];
|
|
149
|
+
};
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.infoParser = infoParser;
|
|
7
|
-
exports.errorParser = errorParser;
|
|
8
3
|
function parseToken(parser, options, callback) {
|
|
9
4
|
// length
|
|
10
5
|
parser.readUInt16LE(function () {
|
|
@@ -16,13 +11,13 @@ function parseToken(parser, options, callback) {
|
|
|
16
11
|
parser.readBVarChar(function (procName) {
|
|
17
12
|
(options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, function (lineNumber) {
|
|
18
13
|
callback({
|
|
19
|
-
number: number,
|
|
20
|
-
state: state,
|
|
21
|
-
|
|
22
|
-
message: message,
|
|
23
|
-
serverName: serverName,
|
|
24
|
-
procName: procName,
|
|
25
|
-
lineNumber: lineNumber
|
|
14
|
+
'number': number,
|
|
15
|
+
'state': state,
|
|
16
|
+
'class': clazz,
|
|
17
|
+
'message': message,
|
|
18
|
+
'serverName': serverName,
|
|
19
|
+
'procName': procName,
|
|
20
|
+
'lineNumber': lineNumber
|
|
26
21
|
});
|
|
27
22
|
});
|
|
28
23
|
});
|
|
@@ -34,6 +29,7 @@ function parseToken(parser, options, callback) {
|
|
|
34
29
|
});
|
|
35
30
|
}
|
|
36
31
|
|
|
32
|
+
module.exports.infoParser = infoParser;
|
|
37
33
|
function infoParser(parser, colMetadata, options, callback) {
|
|
38
34
|
parseToken(parser, options, function (token) {
|
|
39
35
|
token.name = 'INFO';
|
|
@@ -42,6 +38,7 @@ function infoParser(parser, colMetadata, options, callback) {
|
|
|
42
38
|
});
|
|
43
39
|
}
|
|
44
40
|
|
|
41
|
+
module.exports.errorParser = errorParser;
|
|
45
42
|
function errorParser(parser, colMetadata, options, callback) {
|
|
46
43
|
parseToken(parser, options, function (token) {
|
|
47
44
|
token.name = 'ERROR';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var versions = require('../tds-versions').versionsByValue;
|
|
4
4
|
|
|
5
5
|
var interfaceTypes = {
|
|
6
6
|
0: 'SQL_DFLT',
|
|
@@ -13,19 +13,19 @@ module.exports = function (parser, colMetadata, options, callback) {
|
|
|
13
13
|
parser.readUInt8(function (interfaceNumber) {
|
|
14
14
|
var interfaceType = interfaceTypes[interfaceNumber];
|
|
15
15
|
parser.readUInt32BE(function (tdsVersionNumber) {
|
|
16
|
-
var tdsVersion =
|
|
16
|
+
var tdsVersion = versions[tdsVersionNumber];
|
|
17
17
|
parser.readBVarChar(function (progName) {
|
|
18
18
|
parser.readUInt8(function (major) {
|
|
19
19
|
parser.readUInt8(function (minor) {
|
|
20
20
|
parser.readUInt8(function (buildNumHi) {
|
|
21
21
|
parser.readUInt8(function (buildNumLow) {
|
|
22
22
|
callback({
|
|
23
|
-
name: 'LOGINACK',
|
|
24
|
-
event: 'loginack',
|
|
25
|
-
|
|
26
|
-
tdsVersion: tdsVersion,
|
|
27
|
-
progName: progName,
|
|
28
|
-
progVersion: {
|
|
23
|
+
'name': 'LOGINACK',
|
|
24
|
+
'event': 'loginack',
|
|
25
|
+
'interface': interfaceType,
|
|
26
|
+
'tdsVersion': tdsVersion,
|
|
27
|
+
'progName': progName,
|
|
28
|
+
'progVersion': {
|
|
29
29
|
major: major,
|
|
30
30
|
minor: minor,
|
|
31
31
|
buildNumHi: buildNumHi,
|