@zowe/db2-for-zowe-cli 6.1.17 → 6.1.18
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/README.md +12 -10
- package/lib/Db2PluginLifeCycle.d.ts +11 -9
- package/lib/Db2PluginLifeCycle.js +18 -13
- package/lib/Db2PluginLifeCycle.js.map +1 -1
- package/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/axios/README.md +233 -5
- package/node_modules/axios/dist/axios.js +387 -89
- package/node_modules/axios/dist/axios.min.js +3 -3
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +458 -98
- package/node_modules/axios/dist/esm/axios.js +458 -98
- package/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +568 -116
- package/node_modules/axios/index.d.cts +4 -0
- package/node_modules/axios/index.d.ts +4 -0
- package/node_modules/axios/lib/adapters/fetch.js +64 -11
- package/node_modules/axios/lib/adapters/http.js +134 -50
- package/node_modules/axios/lib/adapters/xhr.js +52 -3
- package/node_modules/axios/lib/core/Axios.js +19 -14
- package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
- package/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
- package/node_modules/axios/lib/core/mergeConfig.js +1 -1
- package/node_modules/axios/lib/core/methodList.js +17 -0
- package/node_modules/axios/lib/defaults/index.js +2 -1
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
- package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
- package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
- package/node_modules/axios/lib/helpers/throttle.js +3 -2
- package/node_modules/axios/lib/helpers/toFormData.js +14 -21
- package/node_modules/axios/lib/utils.js +134 -13
- package/node_modules/axios/package.json +1 -1
- package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
- package/node_modules/ibm_db/LICENSE +23 -23
- package/node_modules/ibm_db/README.md +735 -735
- package/node_modules/ibm_db/binding.gyp +99 -98
- package/node_modules/ibm_db/installer/driverInstall.js +984 -958
- package/node_modules/ibm_db/installer/ifx.sh +38 -38
- package/node_modules/ibm_db/installer/setenv.sh +23 -23
- package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
- package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
- package/node_modules/ibm_db/lib/climacros.js +431 -431
- package/node_modules/ibm_db/lib/odbc.js +4293 -3487
- package/node_modules/ibm_db/lib/simple-queue.js +41 -41
- package/node_modules/ibm_db/package.json +70 -70
- package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
- package/node_modules/ibm_db/src/odbc.h +477 -473
- package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
- package/node_modules/ibm_db/src/odbc_connection.h +228 -215
- package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
- package/node_modules/ibm_db/src/odbc_result.h +152 -152
- package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
- package/node_modules/ibm_db/src/odbc_statement.h +257 -135
- package/node_modules/ibm_db/src/strptime.c +389 -389
- package/node_modules/ibm_db/src/strptime.h +46 -46
- package/node_modules/ibm_db/test/README +23 -23
- package/node_modules/ibm_db/test/bench-insert.js +62 -62
- package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
- package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
- package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
- package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
- package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
- package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
- package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
- package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
- package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
- package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
- package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
- package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
- package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
- package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
- package/node_modules/ibm_db/test/bench-query.js +40 -40
- package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
- package/node_modules/ibm_db/test/bench-querySync.js +29 -29
- package/node_modules/ibm_db/test/common.d.ts +10 -10
- package/node_modules/ibm_db/test/common.js +127 -127
- package/node_modules/ibm_db/test/config.json +7 -7
- package/node_modules/ibm_db/test/config.zos.json +4 -4
- package/node_modules/ibm_db/test/data/sample1.txt +9 -9
- package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
- package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
- package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
- package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
- package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
- package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
- package/node_modules/ibm_db/test/odbc-bench.c +123 -123
- package/node_modules/ibm_db/test/perfTest.js +53 -53
- package/node_modules/ibm_db/test/quick-example.sh +30 -30
- package/node_modules/ibm_db/test/quick-example.ts +80 -80
- package/node_modules/ibm_db/test/run-bench.js +96 -96
- package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
- package/node_modules/ibm_db/test/run-tests.js +132 -138
- package/node_modules/ibm_db/test/sql-cli.js +28 -28
- package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
- package/node_modules/ibm_db/test/test-array-insert.js +178 -178
- package/node_modules/ibm_db/test/test-async-await.js +105 -105
- package/node_modules/ibm_db/test/test-attributes.js +34 -34
- package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
- package/node_modules/ibm_db/test/test-basic-test.js +138 -138
- package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
- package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
- package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
- package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
- package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
- package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
- package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
- package/node_modules/ibm_db/test/test-call-async.js +64 -64
- package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
- package/node_modules/ibm_db/test/test-cancel.js +703 -0
- package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
- package/node_modules/ibm_db/test/test-connection.js +306 -0
- package/node_modules/ibm_db/test/test-date.js +32 -32
- package/node_modules/ibm_db/test/test-dbclob.js +93 -93
- package/node_modules/ibm_db/test/test-decimals.js +135 -135
- package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
- package/node_modules/ibm_db/test/test-executeFile.js +167 -167
- package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
- package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
- package/node_modules/ibm_db/test/test-fetchN.js +130 -130
- package/node_modules/ibm_db/test/test-getinfo.js +197 -197
- package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
- package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
- package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
- package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
- package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
- package/node_modules/ibm_db/test/test-issue-54.js +39 -39
- package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
- package/node_modules/ibm_db/test/test-issue211.js +80 -80
- package/node_modules/ibm_db/test/test-issue253.js +39 -39
- package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
- package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
- package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
- package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
- package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
- package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
- package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
- package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
- package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
- package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
- package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
- package/node_modules/ibm_db/test/test-procedures.js +243 -0
- package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
- package/node_modules/ibm_db/test/test-query-operations.js +405 -0
- package/node_modules/ibm_db/test/test-quick-example.js +25 -25
- package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
- package/node_modules/ibm_db/test/test-sp-array.js +54 -54
- package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
- package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
- package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
- package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
- package/node_modules/ibm_db/test/test-transactions.js +261 -0
- package/node_modules/ibm_db/test/test-typescript.js +48 -48
- package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
- package/node_modules/ibm_db/test/testWebApp.js +56 -56
- package/node_modules/ibm_db/test/trace +51 -51
- package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
- package/node_modules/ibm_db/test/webapp.html +17 -17
- package/node_modules/ibm_db/test/webapp.js +79 -79
- package/node_modules/ibm_db/typescript/README.md +28 -28
- package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
- package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
- package/package.json +10 -6
- package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
- package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
- package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
- package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
- package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
- package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
- package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
- package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
- package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
- package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
- package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
- package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
- package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
- package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
- package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
- package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
- package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
- package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
- package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
- package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
- package/node_modules/ibm_db/test/test-closed.js +0 -14
- package/node_modules/ibm_db/test/test-connection-object.js +0 -16
- package/node_modules/ibm_db/test/test-describe-column.js +0 -92
- package/node_modules/ibm_db/test/test-describe-database.js +0 -18
- package/node_modules/ibm_db/test/test-describe-table.js +0 -31
- package/node_modules/ibm_db/test/test-domains-open.js +0 -19
- package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
- package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
- package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
- package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
- package/node_modules/ibm_db/test/test-open-close.js +0 -29
- package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
- package/node_modules/ibm_db/test/test-openSync.js +0 -31
- package/node_modules/ibm_db/test/test-pool-close.js +0 -120
- package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
- package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
- package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
- package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
- package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
- package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
- package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
- package/node_modules/ibm_db/test/test-query-insert.js +0 -38
- package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
- package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
- package/node_modules/ibm_db/test/test-query-select.js +0 -64
- package/node_modules/ibm_db/test/test-queryResult.js +0 -35
- package/node_modules/ibm_db/test/test-queryStream.js +0 -43
- package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
- package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
- package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
- package/node_modules/ibm_db/test/test-statement-close.js +0 -118
- package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
- package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (c) 2013, Dan VerWeire<dverweire@gmail.com>
|
|
3
|
-
|
|
4
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
5
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
6
|
-
copyright notice and this permission notice appear in all copies.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
9
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
10
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
11
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
12
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
13
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
14
|
-
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
#ifndef _SRC_ODBC_RESULT_H
|
|
18
|
-
#define _SRC_ODBC_RESULT_H
|
|
19
|
-
|
|
20
|
-
#include <napi.h>
|
|
21
|
-
#include <sqlext.h>
|
|
22
|
-
|
|
23
|
-
typedef struct {
|
|
24
|
-
SQLPOINTER data;
|
|
25
|
-
SQLLEN *indicators;
|
|
26
|
-
SQLSMALLINT cType;
|
|
27
|
-
SQLLEN elementSize;
|
|
28
|
-
} BoundColumn;
|
|
29
|
-
|
|
30
|
-
#define FILE_COL_MAX_PATH 1024
|
|
31
|
-
typedef struct {
|
|
32
|
-
bool bound;
|
|
33
|
-
char fileName[FILE_COL_MAX_PATH];
|
|
34
|
-
SQLSMALLINT fileNameLength;
|
|
35
|
-
SQLUINTEGER fileOption;
|
|
36
|
-
SQLINTEGER stringLength;
|
|
37
|
-
SQLINTEGER indicator;
|
|
38
|
-
} FileColumnBinding;
|
|
39
|
-
|
|
40
|
-
class ODBCResult : public Napi::ObjectWrap<ODBCResult>
|
|
41
|
-
{
|
|
42
|
-
public:
|
|
43
|
-
static Napi::FunctionReference constructor;
|
|
44
|
-
static Napi::Object Init(Napi::Env env, Napi::Object exports);
|
|
45
|
-
|
|
46
|
-
ODBCResult(const Napi::CallbackInfo &info);
|
|
47
|
-
~ODBCResult();
|
|
48
|
-
void Free();
|
|
49
|
-
|
|
50
|
-
// Instance methods
|
|
51
|
-
Napi::Value Fetch(const Napi::CallbackInfo &info);
|
|
52
|
-
Napi::Value FetchSync(const Napi::CallbackInfo &info);
|
|
53
|
-
Napi::Value FetchAll(const Napi::CallbackInfo &info);
|
|
54
|
-
Napi::Value FetchAllSync(const Napi::CallbackInfo &info);
|
|
55
|
-
Napi::Value FetchN(const Napi::CallbackInfo &info);
|
|
56
|
-
Napi::Value FetchNSync(const Napi::CallbackInfo &info);
|
|
57
|
-
Napi::Value GetData(const Napi::CallbackInfo &info);
|
|
58
|
-
Napi::Value GetDataSync(const Napi::CallbackInfo &info);
|
|
59
|
-
Napi::Value Close(const Napi::CallbackInfo &info);
|
|
60
|
-
Napi::Value CloseSync(const Napi::CallbackInfo &info);
|
|
61
|
-
Napi::Value MoreResultsSync(const Napi::CallbackInfo &info);
|
|
62
|
-
Napi::Value GetColumnNamesSync(const Napi::CallbackInfo &info);
|
|
63
|
-
Napi::Value GetColumnMetadataSync(const Napi::CallbackInfo &info);
|
|
64
|
-
Napi::Value GetSQLErrorSync(const Napi::CallbackInfo &info);
|
|
65
|
-
Napi::Value GetAffectedRowsSync(const Napi::CallbackInfo &info);
|
|
66
|
-
Napi::Value BindFileToColSync(const Napi::CallbackInfo &info);
|
|
67
|
-
|
|
68
|
-
// Property getter/setter
|
|
69
|
-
Napi::Value FetchModeGetter(const Napi::CallbackInfo &info);
|
|
70
|
-
void FetchModeSetter(const Napi::CallbackInfo &info, const Napi::Value &value);
|
|
71
|
-
|
|
72
|
-
// UV callbacks
|
|
73
|
-
static void UV_Fetch(uv_work_t *work_req);
|
|
74
|
-
static void UV_AfterFetch(uv_work_t *work_req, int status);
|
|
75
|
-
static void UV_FetchAll(uv_work_t *work_req);
|
|
76
|
-
static void UV_AfterFetchAll(uv_work_t *work_req, int status);
|
|
77
|
-
static void UV_FetchN(uv_work_t *work_req);
|
|
78
|
-
static void UV_AfterFetchN(uv_work_t *work_req, int status);
|
|
79
|
-
static void UV_GetData(uv_work_t *work_req);
|
|
80
|
-
static void UV_AfterGetData(uv_work_t *work_req, int status);
|
|
81
|
-
static void UV_Close(uv_work_t *work_req);
|
|
82
|
-
static void UV_AfterClose(uv_work_t *work_req, int status);
|
|
83
|
-
|
|
84
|
-
void OverrideFileColumns(Napi::Env env, Napi::Value row, int fetchMode);
|
|
85
|
-
|
|
86
|
-
struct fetch_work_data
|
|
87
|
-
{
|
|
88
|
-
napi_env env;
|
|
89
|
-
Napi::FunctionReference *cb;
|
|
90
|
-
ODBCResult *objResult;
|
|
91
|
-
SQLRETURN result;
|
|
92
|
-
uint16_t fetchMode;
|
|
93
|
-
int count;
|
|
94
|
-
int maxCount;
|
|
95
|
-
int errorCount;
|
|
96
|
-
Napi::Reference<Napi::Array> *rows;
|
|
97
|
-
Napi::Reference<Napi::Object> *objError;
|
|
98
|
-
bool useBlockFetch;
|
|
99
|
-
SQLULEN blockRowIndex;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
struct getdata_work_data
|
|
103
|
-
{
|
|
104
|
-
napi_env env;
|
|
105
|
-
Napi::FunctionReference *cb;
|
|
106
|
-
ODBCResult *objResult;
|
|
107
|
-
SQLUINTEGER colNum;
|
|
108
|
-
SQLUINTEGER dataSize;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
struct close_result_work_data
|
|
112
|
-
{
|
|
113
|
-
napi_env env;
|
|
114
|
-
Napi::FunctionReference *cb;
|
|
115
|
-
ODBCResult *objResult;
|
|
116
|
-
SQLUSMALLINT closeOption;
|
|
117
|
-
int result;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
ODBCResult *self(void) { return this; }
|
|
121
|
-
|
|
122
|
-
// Block fetch support
|
|
123
|
-
bool InitBlockFetch();
|
|
124
|
-
void FreeBlockFetchBuffers();
|
|
125
|
-
bool BindColumnsForBlockFetch();
|
|
126
|
-
Napi::Value GetBoundColumnValue(Napi::Env env, int colIndex, SQLULEN rowIndex);
|
|
127
|
-
SQLRETURN BlockFetchNextRow(SQLULEN *outRowIndex);
|
|
128
|
-
|
|
129
|
-
SQLHENV m_hENV;
|
|
130
|
-
SQLHDBC m_hDBC;
|
|
131
|
-
SQLHSTMT m_hSTMT;
|
|
132
|
-
bool m_canFreeHandle;
|
|
133
|
-
uint16_t m_fetchMode;
|
|
134
|
-
|
|
135
|
-
uint16_t *buffer;
|
|
136
|
-
size_t bufferLength;
|
|
137
|
-
Column *columns;
|
|
138
|
-
short colCount;
|
|
139
|
-
|
|
140
|
-
SQLULEN m_rowArraySize;
|
|
141
|
-
SQLULEN m_rowsFetched;
|
|
142
|
-
SQLULEN m_currentRowInBlock;
|
|
143
|
-
SQLUSMALLINT *m_rowStatusArray;
|
|
144
|
-
BoundColumn *m_boundCols;
|
|
145
|
-
bool m_blockFetchInitialized;
|
|
146
|
-
bool m_blockExhausted;
|
|
147
|
-
|
|
148
|
-
FileColumnBinding *m_fileColBindings;
|
|
149
|
-
int m_fileColCount;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
#endif
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2013, Dan VerWeire<dverweire@gmail.com>
|
|
3
|
+
|
|
4
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
5
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
6
|
+
copyright notice and this permission notice appear in all copies.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
9
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
10
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
11
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
12
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
13
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
14
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#ifndef _SRC_ODBC_RESULT_H
|
|
18
|
+
#define _SRC_ODBC_RESULT_H
|
|
19
|
+
|
|
20
|
+
#include <napi.h>
|
|
21
|
+
#include <sqlext.h>
|
|
22
|
+
|
|
23
|
+
typedef struct {
|
|
24
|
+
SQLPOINTER data;
|
|
25
|
+
SQLLEN *indicators;
|
|
26
|
+
SQLSMALLINT cType;
|
|
27
|
+
SQLLEN elementSize;
|
|
28
|
+
} BoundColumn;
|
|
29
|
+
|
|
30
|
+
#define FILE_COL_MAX_PATH 1024
|
|
31
|
+
typedef struct {
|
|
32
|
+
bool bound;
|
|
33
|
+
char fileName[FILE_COL_MAX_PATH];
|
|
34
|
+
SQLSMALLINT fileNameLength;
|
|
35
|
+
SQLUINTEGER fileOption;
|
|
36
|
+
SQLINTEGER stringLength;
|
|
37
|
+
SQLINTEGER indicator;
|
|
38
|
+
} FileColumnBinding;
|
|
39
|
+
|
|
40
|
+
class ODBCResult : public Napi::ObjectWrap<ODBCResult>
|
|
41
|
+
{
|
|
42
|
+
public:
|
|
43
|
+
static Napi::FunctionReference constructor;
|
|
44
|
+
static Napi::Object Init(Napi::Env env, Napi::Object exports);
|
|
45
|
+
|
|
46
|
+
ODBCResult(const Napi::CallbackInfo &info);
|
|
47
|
+
~ODBCResult();
|
|
48
|
+
void Free();
|
|
49
|
+
|
|
50
|
+
// Instance methods
|
|
51
|
+
Napi::Value Fetch(const Napi::CallbackInfo &info);
|
|
52
|
+
Napi::Value FetchSync(const Napi::CallbackInfo &info);
|
|
53
|
+
Napi::Value FetchAll(const Napi::CallbackInfo &info);
|
|
54
|
+
Napi::Value FetchAllSync(const Napi::CallbackInfo &info);
|
|
55
|
+
Napi::Value FetchN(const Napi::CallbackInfo &info);
|
|
56
|
+
Napi::Value FetchNSync(const Napi::CallbackInfo &info);
|
|
57
|
+
Napi::Value GetData(const Napi::CallbackInfo &info);
|
|
58
|
+
Napi::Value GetDataSync(const Napi::CallbackInfo &info);
|
|
59
|
+
Napi::Value Close(const Napi::CallbackInfo &info);
|
|
60
|
+
Napi::Value CloseSync(const Napi::CallbackInfo &info);
|
|
61
|
+
Napi::Value MoreResultsSync(const Napi::CallbackInfo &info);
|
|
62
|
+
Napi::Value GetColumnNamesSync(const Napi::CallbackInfo &info);
|
|
63
|
+
Napi::Value GetColumnMetadataSync(const Napi::CallbackInfo &info);
|
|
64
|
+
Napi::Value GetSQLErrorSync(const Napi::CallbackInfo &info);
|
|
65
|
+
Napi::Value GetAffectedRowsSync(const Napi::CallbackInfo &info);
|
|
66
|
+
Napi::Value BindFileToColSync(const Napi::CallbackInfo &info);
|
|
67
|
+
|
|
68
|
+
// Property getter/setter
|
|
69
|
+
Napi::Value FetchModeGetter(const Napi::CallbackInfo &info);
|
|
70
|
+
void FetchModeSetter(const Napi::CallbackInfo &info, const Napi::Value &value);
|
|
71
|
+
|
|
72
|
+
// UV callbacks
|
|
73
|
+
static void UV_Fetch(uv_work_t *work_req);
|
|
74
|
+
static void UV_AfterFetch(uv_work_t *work_req, int status);
|
|
75
|
+
static void UV_FetchAll(uv_work_t *work_req);
|
|
76
|
+
static void UV_AfterFetchAll(uv_work_t *work_req, int status);
|
|
77
|
+
static void UV_FetchN(uv_work_t *work_req);
|
|
78
|
+
static void UV_AfterFetchN(uv_work_t *work_req, int status);
|
|
79
|
+
static void UV_GetData(uv_work_t *work_req);
|
|
80
|
+
static void UV_AfterGetData(uv_work_t *work_req, int status);
|
|
81
|
+
static void UV_Close(uv_work_t *work_req);
|
|
82
|
+
static void UV_AfterClose(uv_work_t *work_req, int status);
|
|
83
|
+
|
|
84
|
+
void OverrideFileColumns(Napi::Env env, Napi::Value row, int fetchMode);
|
|
85
|
+
|
|
86
|
+
struct fetch_work_data
|
|
87
|
+
{
|
|
88
|
+
napi_env env;
|
|
89
|
+
Napi::FunctionReference *cb;
|
|
90
|
+
ODBCResult *objResult;
|
|
91
|
+
SQLRETURN result;
|
|
92
|
+
uint16_t fetchMode;
|
|
93
|
+
int count;
|
|
94
|
+
int maxCount;
|
|
95
|
+
int errorCount;
|
|
96
|
+
Napi::Reference<Napi::Array> *rows;
|
|
97
|
+
Napi::Reference<Napi::Object> *objError;
|
|
98
|
+
bool useBlockFetch;
|
|
99
|
+
SQLULEN blockRowIndex;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
struct getdata_work_data
|
|
103
|
+
{
|
|
104
|
+
napi_env env;
|
|
105
|
+
Napi::FunctionReference *cb;
|
|
106
|
+
ODBCResult *objResult;
|
|
107
|
+
SQLUINTEGER colNum;
|
|
108
|
+
SQLUINTEGER dataSize;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
struct close_result_work_data
|
|
112
|
+
{
|
|
113
|
+
napi_env env;
|
|
114
|
+
Napi::FunctionReference *cb;
|
|
115
|
+
ODBCResult *objResult;
|
|
116
|
+
SQLUSMALLINT closeOption;
|
|
117
|
+
int result;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
ODBCResult *self(void) { return this; }
|
|
121
|
+
|
|
122
|
+
// Block fetch support
|
|
123
|
+
bool InitBlockFetch();
|
|
124
|
+
void FreeBlockFetchBuffers();
|
|
125
|
+
bool BindColumnsForBlockFetch();
|
|
126
|
+
Napi::Value GetBoundColumnValue(Napi::Env env, int colIndex, SQLULEN rowIndex);
|
|
127
|
+
SQLRETURN BlockFetchNextRow(SQLULEN *outRowIndex);
|
|
128
|
+
|
|
129
|
+
SQLHENV m_hENV;
|
|
130
|
+
SQLHDBC m_hDBC;
|
|
131
|
+
SQLHSTMT m_hSTMT;
|
|
132
|
+
bool m_canFreeHandle;
|
|
133
|
+
uint16_t m_fetchMode;
|
|
134
|
+
|
|
135
|
+
uint16_t *buffer;
|
|
136
|
+
size_t bufferLength;
|
|
137
|
+
Column *columns;
|
|
138
|
+
short colCount;
|
|
139
|
+
|
|
140
|
+
SQLULEN m_rowArraySize;
|
|
141
|
+
SQLULEN m_rowsFetched;
|
|
142
|
+
SQLULEN m_currentRowInBlock;
|
|
143
|
+
SQLUSMALLINT *m_rowStatusArray;
|
|
144
|
+
BoundColumn *m_boundCols;
|
|
145
|
+
bool m_blockFetchInitialized;
|
|
146
|
+
bool m_blockExhausted;
|
|
147
|
+
|
|
148
|
+
FileColumnBinding *m_fileColBindings;
|
|
149
|
+
int m_fileColCount;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
#endif
|