@zowe/db2-for-zowe-cli 6.1.17 → 6.1.19
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/adm-zip/adm-zip.js +32 -6
- package/node_modules/adm-zip/headers/entryHeader.js +13 -1
- package/node_modules/adm-zip/methods/inflater.js +33 -3
- package/node_modules/adm-zip/package.json +2 -2
- package/node_modules/adm-zip/util/errors.js +3 -0
- package/node_modules/adm-zip/util/utils.js +102 -14
- package/node_modules/adm-zip/zipEntry.js +43 -18
- package/node_modules/adm-zip/zipFile.js +10 -0
- package/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/axios/README.md +236 -73
- package/node_modules/axios/dist/axios.js +1308 -357
- 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 +1443 -403
- package/node_modules/axios/dist/esm/axios.js +1443 -403
- 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 +1483 -348
- package/node_modules/axios/index.d.cts +24 -1
- package/node_modules/axios/index.d.ts +22 -1
- package/node_modules/axios/lib/adapters/fetch.js +136 -30
- package/node_modules/axios/lib/adapters/http.js +277 -74
- package/node_modules/axios/lib/adapters/xhr.js +172 -16
- package/node_modules/axios/lib/core/Axios.js +87 -27
- package/node_modules/axios/lib/core/AxiosError.js +59 -0
- package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
- package/node_modules/axios/lib/core/InterceptorManager.js +118 -8
- package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
- package/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
- package/node_modules/axios/lib/core/dispatchRequest.js +28 -2
- package/node_modules/axios/lib/core/mergeConfig.js +183 -120
- 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/defaults/transitional.js +1 -0
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
- package/node_modules/axios/lib/helpers/Http2Sessions.js +4 -1
- package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
- package/node_modules/axios/lib/helpers/cookies.js +30 -6
- package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
- package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
- package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +11 -4
- package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
- package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
- package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
- package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +20 -5
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +197 -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 +192 -20
- package/node_modules/axios/package.json +1 -2
- package/node_modules/follow-redirects/README.md +27 -1
- package/node_modules/follow-redirects/index.js +11 -6
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/fs-extra/README.md +0 -1
- package/node_modules/fs-extra/lib/empty/index.js +4 -2
- package/node_modules/fs-extra/lib/util/stat.js +12 -2
- package/node_modules/fs-extra/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/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/index.js +62 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/package.json +37 -0
- package/node_modules/which-typed-array/CHANGELOG.md +14 -0
- package/node_modules/which-typed-array/README.md +0 -2
- package/node_modules/which-typed-array/index.d.ts +288 -11
- package/node_modules/which-typed-array/index.js +6 -7
- package/node_modules/which-typed-array/package.json +12 -11
- package/package.json +10 -11
- 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
- package/node_modules/which-typed-array/eslint.config.mjs +0 -12
- package/node_modules/which-typed-array/test/index.js +0 -105
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/LICENSE +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/README.md +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/chownr.js +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/package.json +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/.travis.yml +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/LICENSE +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/README.md +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/lib/string_decoder.js +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/package.json +0 -0
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
/*require the ibm_db module*/
|
|
2
|
-
var common = require("./common")
|
|
3
|
-
, ibmdb = require("../")
|
|
4
|
-
, assert = require("assert")
|
|
5
|
-
, db = new ibmdb.Database();
|
|
6
|
-
|
|
7
|
-
var connString = 'DRIVER={DB2 ODBC Driver};DATABASE=SAMPLE;UID=db2admin;PWD=db2admin;HOSTNAME=localhost;port=50000;PROTOCOL=TCPIP';
|
|
8
|
-
|
|
9
|
-
console.log("Test program to access DB2 sample database");
|
|
10
|
-
|
|
11
|
-
/*Connect to the database server
|
|
12
|
-
param 1: The DSN string which has the details of database name to connect to, user id, password, hostname, portnumber
|
|
13
|
-
param 2: The Callback function to execute when connection attempt to the specified database is completed
|
|
14
|
-
*/
|
|
15
|
-
ibmdb.open(common.connectionString, function(err, conn)
|
|
16
|
-
{
|
|
17
|
-
if(err) {
|
|
18
|
-
console.error("error: ", err.message);
|
|
19
|
-
assert.equal(err.message, null);
|
|
20
|
-
} else {
|
|
21
|
-
|
|
22
|
-
console.log('Connection to DB2 machine successful');
|
|
23
|
-
|
|
24
|
-
/*
|
|
25
|
-
On successful connection issue the SQL query by calling the query() function on Database
|
|
26
|
-
param 1: The SQL query to be issued
|
|
27
|
-
param 2: The callback function to execute when the database server responds
|
|
28
|
-
*/
|
|
29
|
-
conn.query("SELECT TIMESTAMP_FORMAT('1999-12-31 23:59:59.123', 'YYYY-MM-DD HH24:MI:SS.FF') AS TD FROM SYSIBM.SYSDUMMY1;", function(err, nodetest, moreResultSets) {
|
|
30
|
-
|
|
31
|
-
if(err) {
|
|
32
|
-
console.log('Error: '+err);
|
|
33
|
-
process.exit(0);
|
|
34
|
-
}
|
|
35
|
-
console.log('Fetched Row Count: '+nodetest.length);
|
|
36
|
-
console.log("TIME");
|
|
37
|
-
console.log("-----------------------");
|
|
38
|
-
|
|
39
|
-
for (var i=0;i<nodetest.length;i++)
|
|
40
|
-
{
|
|
41
|
-
console.log(nodetest[i].TD);
|
|
42
|
-
}
|
|
43
|
-
console.log("-----------------------");
|
|
44
|
-
|
|
45
|
-
/*
|
|
46
|
-
Close the connection to the database
|
|
47
|
-
param 1: The callback function to execute on completion of close function.
|
|
48
|
-
*/
|
|
49
|
-
conn.close(function(){
|
|
50
|
-
console.log("Connection Closed");
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
});
|
|
1
|
+
/*require the ibm_db module*/
|
|
2
|
+
var common = require("./common")
|
|
3
|
+
, ibmdb = require("../")
|
|
4
|
+
, assert = require("assert")
|
|
5
|
+
, db = new ibmdb.Database();
|
|
6
|
+
|
|
7
|
+
var connString = 'DRIVER={DB2 ODBC Driver};DATABASE=SAMPLE;UID=db2admin;PWD=db2admin;HOSTNAME=localhost;port=50000;PROTOCOL=TCPIP';
|
|
8
|
+
|
|
9
|
+
console.log("Test program to access DB2 sample database");
|
|
10
|
+
|
|
11
|
+
/*Connect to the database server
|
|
12
|
+
param 1: The DSN string which has the details of database name to connect to, user id, password, hostname, portnumber
|
|
13
|
+
param 2: The Callback function to execute when connection attempt to the specified database is completed
|
|
14
|
+
*/
|
|
15
|
+
ibmdb.open(common.connectionString, function(err, conn)
|
|
16
|
+
{
|
|
17
|
+
if(err) {
|
|
18
|
+
console.error("error: ", err.message);
|
|
19
|
+
assert.equal(err.message, null);
|
|
20
|
+
} else {
|
|
21
|
+
|
|
22
|
+
console.log('Connection to DB2 machine successful');
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
On successful connection issue the SQL query by calling the query() function on Database
|
|
26
|
+
param 1: The SQL query to be issued
|
|
27
|
+
param 2: The callback function to execute when the database server responds
|
|
28
|
+
*/
|
|
29
|
+
conn.query("SELECT TIMESTAMP_FORMAT('1999-12-31 23:59:59.123', 'YYYY-MM-DD HH24:MI:SS.FF') AS TD FROM SYSIBM.SYSDUMMY1;", function(err, nodetest, moreResultSets) {
|
|
30
|
+
|
|
31
|
+
if(err) {
|
|
32
|
+
console.log('Error: '+err);
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
console.log('Fetched Row Count: '+nodetest.length);
|
|
36
|
+
console.log("TIME");
|
|
37
|
+
console.log("-----------------------");
|
|
38
|
+
|
|
39
|
+
for (var i=0;i<nodetest.length;i++)
|
|
40
|
+
{
|
|
41
|
+
console.log(nodetest[i].TD);
|
|
42
|
+
}
|
|
43
|
+
console.log("-----------------------");
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
Close the connection to the database
|
|
47
|
+
param 1: The callback function to execute on completion of close function.
|
|
48
|
+
*/
|
|
49
|
+
conn.close(function(){
|
|
50
|
+
console.log("Connection Closed");
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
// Regression test for https://github.com/ibmdb/node-ibm_db/issues/1059
|
|
4
|
-
// Node.js 24+ returns undefined column values (row count correct).
|
|
5
|
-
|
|
6
|
-
var ibmdb = require("../");
|
|
7
|
-
var common = require("./common");
|
|
8
|
-
var assert = require("assert");
|
|
9
|
-
|
|
10
|
-
var rolesTable = "NODE1059_ROLES";
|
|
11
|
-
var userRolesTable = "NODE1059_USER_ROLES";
|
|
12
|
-
|
|
13
|
-
function setupTables(conn) {
|
|
14
|
-
console.log("Runtime =", process.version, "V8 =", process.versions.v8);
|
|
15
|
-
try {
|
|
16
|
-
conn.querySync("drop table " + userRolesTable);
|
|
17
|
-
conn.querySync("drop table " + rolesTable);
|
|
18
|
-
} catch (e) {}
|
|
19
|
-
|
|
20
|
-
conn.querySync(
|
|
21
|
-
"create table " + rolesTable +
|
|
22
|
-
" (ID INT NOT NULL, ROLE_NAME VARCHAR(50) NOT NULL, EMAIL VARCHAR(256) NOT NULL, PRIMARY KEY (ID))"
|
|
23
|
-
);
|
|
24
|
-
conn.querySync(
|
|
25
|
-
"create table " + userRolesTable +
|
|
26
|
-
" (ID INT NOT NULL, ROLE_ID INT NOT NULL, EMAIL VARCHAR(256) NOT NULL, PRIMARY KEY (ID))"
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [1, "ADMIN", "test.123@abc.com"]);
|
|
30
|
-
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [2, "USER", "test.123@abc.com"]);
|
|
31
|
-
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [3, "VIEWER", "xyz@abc.com"]);
|
|
32
|
-
|
|
33
|
-
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [1, 1, "test.123@abc.com"]);
|
|
34
|
-
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [2, 1, "test.123@abc.com"]);
|
|
35
|
-
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [3, 2, "xyz@abc.com"]);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
ibmdb.open(common.connectionString, function (err, conn) {
|
|
39
|
-
if (err) {
|
|
40
|
-
console.error("Connection error:", err);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
setupTables(conn);
|
|
45
|
-
} catch (e) {
|
|
46
|
-
console.error("Failed to set up tables: ", e);
|
|
47
|
-
conn.close();
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
var sql = "SELECT DISTINCT ROLE_NAME FROM " + userRolesTable + " a " +
|
|
51
|
-
"JOIN " + rolesTable + " r ON r.ID = a.ID WHERE a.EMAIL = ?";
|
|
52
|
-
|
|
53
|
-
conn.prepare(sql, function (err, stmt) {
|
|
54
|
-
stmt.execute(["test.123@abc.com"], function (err, result) {
|
|
55
|
-
result.fetchAll(function (err, data) {
|
|
56
|
-
console.log(data);
|
|
57
|
-
conn.querySync("drop table " + userRolesTable);
|
|
58
|
-
conn.querySync("drop table " + rolesTable);
|
|
59
|
-
conn.close();
|
|
60
|
-
assert.strictEqual(data.length, 2, "Expected 2 rows");
|
|
61
|
-
assert.strictEqual(data[0].ROLE_NAME, "ADMIN", "Expected first role to be ADMIN");
|
|
62
|
-
assert.strictEqual(data[1].ROLE_NAME, "USER", "Expected second role to be USER");
|
|
63
|
-
console.log("issue1059 test passed");
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Regression test for https://github.com/ibmdb/node-ibm_db/issues/1059
|
|
4
|
+
// Node.js 24+ returns undefined column values (row count correct).
|
|
5
|
+
|
|
6
|
+
var ibmdb = require("../");
|
|
7
|
+
var common = require("./common");
|
|
8
|
+
var assert = require("assert");
|
|
9
|
+
|
|
10
|
+
var rolesTable = "NODE1059_ROLES";
|
|
11
|
+
var userRolesTable = "NODE1059_USER_ROLES";
|
|
12
|
+
|
|
13
|
+
function setupTables(conn) {
|
|
14
|
+
console.log("Runtime =", process.version, "V8 =", process.versions.v8);
|
|
15
|
+
try {
|
|
16
|
+
conn.querySync("drop table " + userRolesTable);
|
|
17
|
+
conn.querySync("drop table " + rolesTable);
|
|
18
|
+
} catch (e) {}
|
|
19
|
+
|
|
20
|
+
conn.querySync(
|
|
21
|
+
"create table " + rolesTable +
|
|
22
|
+
" (ID INT NOT NULL, ROLE_NAME VARCHAR(50) NOT NULL, EMAIL VARCHAR(256) NOT NULL, PRIMARY KEY (ID))"
|
|
23
|
+
);
|
|
24
|
+
conn.querySync(
|
|
25
|
+
"create table " + userRolesTable +
|
|
26
|
+
" (ID INT NOT NULL, ROLE_ID INT NOT NULL, EMAIL VARCHAR(256) NOT NULL, PRIMARY KEY (ID))"
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [1, "ADMIN", "test.123@abc.com"]);
|
|
30
|
+
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [2, "USER", "test.123@abc.com"]);
|
|
31
|
+
conn.querySync("insert into " + rolesTable + " values (?, ?, ?)", [3, "VIEWER", "xyz@abc.com"]);
|
|
32
|
+
|
|
33
|
+
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [1, 1, "test.123@abc.com"]);
|
|
34
|
+
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [2, 1, "test.123@abc.com"]);
|
|
35
|
+
conn.querySync("insert into " + userRolesTable + " values (?, ?, ?)", [3, 2, "xyz@abc.com"]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
ibmdb.open(common.connectionString, function (err, conn) {
|
|
39
|
+
if (err) {
|
|
40
|
+
console.error("Connection error:", err);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
setupTables(conn);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.error("Failed to set up tables: ", e);
|
|
47
|
+
conn.close();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var sql = "SELECT DISTINCT ROLE_NAME FROM " + userRolesTable + " a " +
|
|
51
|
+
"JOIN " + rolesTable + " r ON r.ID = a.ID WHERE a.EMAIL = ?";
|
|
52
|
+
|
|
53
|
+
conn.prepare(sql, function (err, stmt) {
|
|
54
|
+
stmt.execute(["test.123@abc.com"], function (err, result) {
|
|
55
|
+
result.fetchAll(function (err, data) {
|
|
56
|
+
console.log(data);
|
|
57
|
+
conn.querySync("drop table " + userRolesTable);
|
|
58
|
+
conn.querySync("drop table " + rolesTable);
|
|
59
|
+
conn.close();
|
|
60
|
+
assert.strictEqual(data.length, 2, "Expected 2 rows");
|
|
61
|
+
assert.strictEqual(data[0].ROLE_NAME, "ADMIN", "Expected first role to be ADMIN");
|
|
62
|
+
assert.strictEqual(data[1].ROLE_NAME, "USER", "Expected second role to be USER");
|
|
63
|
+
console.log("issue1059 test passed");
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Regression test for issue #1080:
|
|
2
|
+
// Column-wise ARRAY insert of BLOB values (Data: array of per-row Buffers)
|
|
3
|
+
// was mis-detected as a data-at-exec chunked LOB insert because parseParams()
|
|
4
|
+
// only looked at the shape of Data and ignored ParamType:"ARRAY".
|
|
5
|
+
var common = require("./common")
|
|
6
|
+
, ibmdb = require("../")
|
|
7
|
+
, assert = require("assert");
|
|
8
|
+
|
|
9
|
+
ibmdb.open(common.connectionString, function(err, conn) {
|
|
10
|
+
if (err) {
|
|
11
|
+
console.log(err);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
try { conn.querySync("drop table array_blob_test"); } catch (e) {}
|
|
16
|
+
conn.querySync("create table array_blob_test (id integer, b blob(1M))");
|
|
17
|
+
|
|
18
|
+
var queryOptions = {
|
|
19
|
+
sql: "insert into array_blob_test values (?, ?)",
|
|
20
|
+
params: [
|
|
21
|
+
{ ParamType: "ARRAY", DataType: 1, Data: [1, 2, 3] },
|
|
22
|
+
{ ParamType: "ARRAY", SQLType: "BLOB", DataType: "BLOB",
|
|
23
|
+
Data: [Buffer.from("one"), Buffer.from("two"), Buffer.from("three")], Length: 5 }
|
|
24
|
+
],
|
|
25
|
+
ArraySize: 3
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
conn.querySync(queryOptions);
|
|
29
|
+
|
|
30
|
+
var data = conn.querySync("select id, b from array_blob_test order by id");
|
|
31
|
+
conn.querySync("drop table array_blob_test");
|
|
32
|
+
conn.closeSync();
|
|
33
|
+
|
|
34
|
+
assert.strictEqual(data.length, 3);
|
|
35
|
+
assert.strictEqual(data[0].B.toString(), "one");
|
|
36
|
+
assert.strictEqual(data[1].B.toString(), "two");
|
|
37
|
+
assert.strictEqual(data[2].B.toString(), "three");
|
|
38
|
+
|
|
39
|
+
console.log("Test 1080 : passed");
|
|
40
|
+
});
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
//NOTE: this does not assert anything that it should, please fix.
|
|
2
|
-
|
|
3
|
-
var common = require("./common")
|
|
4
|
-
, odbc = require("../")
|
|
5
|
-
, db = new odbc.Database()
|
|
6
|
-
, assert = require("assert")
|
|
7
|
-
, util = require('util')
|
|
8
|
-
, count = 0
|
|
9
|
-
;
|
|
10
|
-
|
|
11
|
-
var sql =
|
|
12
|
-
"declare @t table (x int); \
|
|
13
|
-
insert @t values (1); \
|
|
14
|
-
select 'You will get this message' \
|
|
15
|
-
raiserror('You will never get this error!', 16, 100); \
|
|
16
|
-
raiserror('Two errors in a row! WHAT?', 16, 100); \
|
|
17
|
-
select 'You will never get this message, either!' as msg; \
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
db.open(common.connectionString, function(err) {
|
|
21
|
-
console.log(err || "Connected");
|
|
22
|
-
assert.equal(err, null);
|
|
23
|
-
|
|
24
|
-
if (!err) {
|
|
25
|
-
db.query(sql, function (err, results, more) {
|
|
26
|
-
console.log("q1 result: ", err, results, more);
|
|
27
|
-
|
|
28
|
-
if (!more) {
|
|
29
|
-
console.log("Running second query");
|
|
30
|
-
|
|
31
|
-
db.query("select 1 as x", function(err, results, more) {
|
|
32
|
-
console.log("q2 result: ", err, results, more);
|
|
33
|
-
|
|
34
|
-
db.close(function(err) { console.log(err || "Closed"); })
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
})
|
|
38
|
-
}
|
|
39
|
-
});
|
|
1
|
+
//NOTE: this does not assert anything that it should, please fix.
|
|
2
|
+
|
|
3
|
+
var common = require("./common")
|
|
4
|
+
, odbc = require("../")
|
|
5
|
+
, db = new odbc.Database()
|
|
6
|
+
, assert = require("assert")
|
|
7
|
+
, util = require('util')
|
|
8
|
+
, count = 0
|
|
9
|
+
;
|
|
10
|
+
|
|
11
|
+
var sql =
|
|
12
|
+
"declare @t table (x int); \
|
|
13
|
+
insert @t values (1); \
|
|
14
|
+
select 'You will get this message' \
|
|
15
|
+
raiserror('You will never get this error!', 16, 100); \
|
|
16
|
+
raiserror('Two errors in a row! WHAT?', 16, 100); \
|
|
17
|
+
select 'You will never get this message, either!' as msg; \
|
|
18
|
+
"
|
|
19
|
+
|
|
20
|
+
db.open(common.connectionString, function(err) {
|
|
21
|
+
console.log(err || "Connected");
|
|
22
|
+
assert.equal(err, null);
|
|
23
|
+
|
|
24
|
+
if (!err) {
|
|
25
|
+
db.query(sql, function (err, results, more) {
|
|
26
|
+
console.log("q1 result: ", err, results, more);
|
|
27
|
+
|
|
28
|
+
if (!more) {
|
|
29
|
+
console.log("Running second query");
|
|
30
|
+
|
|
31
|
+
db.query("select 1 as x", function(err, results, more) {
|
|
32
|
+
console.log("q2 result: ", err, results, more);
|
|
33
|
+
|
|
34
|
+
db.close(function(err) { console.log(err || "Closed"); })
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
});
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
var common = require("./common")
|
|
2
|
-
, odbc = require("../")
|
|
3
|
-
, db = new odbc.Database()
|
|
4
|
-
, assert = require("assert")
|
|
5
|
-
, util = require('util')
|
|
6
|
-
, count = 0
|
|
7
|
-
;
|
|
8
|
-
|
|
9
|
-
var getSchema = function () {
|
|
10
|
-
var db = new odbc.Database();
|
|
11
|
-
|
|
12
|
-
console.log(util.format('Count %s, time %s', count, new Date()));
|
|
13
|
-
|
|
14
|
-
db.open(common.connectionString, function(err) {
|
|
15
|
-
if (err) {
|
|
16
|
-
console.error("connection error: ", err.message);
|
|
17
|
-
db.close(function(){});
|
|
18
|
-
assert(err.message, null);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
db.describe({database: 'SAMPLE', schema: 'NEWTON', table: "PRODUCT" }, function (err, rows) {
|
|
22
|
-
if (err) {
|
|
23
|
-
console.error("describe error: ", err.message);
|
|
24
|
-
db.close(function(){});
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
console.log(rows);
|
|
28
|
-
|
|
29
|
-
db.close(function() {
|
|
30
|
-
console.log("Connection Closed");
|
|
31
|
-
db = null;
|
|
32
|
-
count += 1;
|
|
33
|
-
if (count < 10) {
|
|
34
|
-
setImmediate(getSchema);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
process.exit(0);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
getSchema();
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, odbc = require("../")
|
|
3
|
+
, db = new odbc.Database()
|
|
4
|
+
, assert = require("assert")
|
|
5
|
+
, util = require('util')
|
|
6
|
+
, count = 0
|
|
7
|
+
;
|
|
8
|
+
|
|
9
|
+
var getSchema = function () {
|
|
10
|
+
var db = new odbc.Database();
|
|
11
|
+
|
|
12
|
+
console.log(util.format('Count %s, time %s', count, new Date()));
|
|
13
|
+
|
|
14
|
+
db.open(common.connectionString, function(err) {
|
|
15
|
+
if (err) {
|
|
16
|
+
console.error("connection error: ", err.message);
|
|
17
|
+
db.close(function(){});
|
|
18
|
+
assert(err.message, null);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
db.describe({database: 'SAMPLE', schema: 'NEWTON', table: "PRODUCT" }, function (err, rows) {
|
|
22
|
+
if (err) {
|
|
23
|
+
console.error("describe error: ", err.message);
|
|
24
|
+
db.close(function(){});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
console.log(rows);
|
|
28
|
+
|
|
29
|
+
db.close(function() {
|
|
30
|
+
console.log("Connection Closed");
|
|
31
|
+
db = null;
|
|
32
|
+
count += 1;
|
|
33
|
+
if (count < 10) {
|
|
34
|
+
setImmediate(getSchema);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
process.exit(0);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
getSchema();
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
var ibmdb = require("../")
|
|
2
|
-
, common = require("./common")
|
|
3
|
-
, assert = require("assert")
|
|
4
|
-
, cn = common.connectionString;
|
|
5
|
-
|
|
6
|
-
var stmt0 = {};
|
|
7
|
-
var stmt1 = {};
|
|
8
|
-
var stmt2 = {};
|
|
9
|
-
var queryExecuted = 0;
|
|
10
|
-
|
|
11
|
-
stmt1.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)';
|
|
12
|
-
stmt1.params = ['Joe', 'Tim'];
|
|
13
|
-
stmt1.noResults = false;
|
|
14
|
-
|
|
15
|
-
stmt2.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)';
|
|
16
|
-
stmt2.params = ['Jane', 'Joan'];
|
|
17
|
-
stmt2.noResults = false;
|
|
18
|
-
|
|
19
|
-
ibmdb.debug(true);
|
|
20
|
-
ibmdb.open(cn, function(err, conn1) {
|
|
21
|
-
if (err) console.log(err);
|
|
22
|
-
assert.equal(err, null);
|
|
23
|
-
|
|
24
|
-
stmt0.sql = 'DROP TABLE T1';
|
|
25
|
-
stmt0.noResults = true;
|
|
26
|
-
try{ conn1.querySync(stmt0.sql); } catch(e) { }
|
|
27
|
-
|
|
28
|
-
stmt0.sql = 'CREATE TABLE T1 (C1 INT PRIMARY KEY NOT NULL, C2 CHAR(50), C3 CHAR(50))';
|
|
29
|
-
conn1.querySync(stmt0.sql);
|
|
30
|
-
|
|
31
|
-
stmt0.sql = "INSERT INTO T1 VALUES (1, 'ABCDEF', 'GHIJK')";
|
|
32
|
-
conn1.querySync(stmt0.sql);
|
|
33
|
-
|
|
34
|
-
ibmdb.open(cn, function(err, conn2) {
|
|
35
|
-
if (err) return console.log(err);
|
|
36
|
-
|
|
37
|
-
conn1.beginTransaction(function(err) {
|
|
38
|
-
if (err) return console.log(err);
|
|
39
|
-
console.log('Transaction 1 opened');
|
|
40
|
-
conn2.beginTransaction(function(err) {
|
|
41
|
-
if (err) return console.log(err);
|
|
42
|
-
console.log('Transaction 2 opened');
|
|
43
|
-
|
|
44
|
-
conn1.query(stmt1, function(err, data) {
|
|
45
|
-
console.log('Query 1 executed');
|
|
46
|
-
if (err) {
|
|
47
|
-
conn1.rollbackTransactionSync();
|
|
48
|
-
console.log(err);
|
|
49
|
-
} else {
|
|
50
|
-
conn1.commitTransactionSync();
|
|
51
|
-
console.log('<<< DATA >>>:', data);
|
|
52
|
-
}
|
|
53
|
-
queryExecuted++;
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
conn2.query(stmt2, function(err, data) {
|
|
57
|
-
console.log('Query 2 executed');
|
|
58
|
-
if (err) {
|
|
59
|
-
conn2.rollbackTransactionSync();
|
|
60
|
-
console.log(err);
|
|
61
|
-
} else {
|
|
62
|
-
conn2.commitTransactionSync();
|
|
63
|
-
console.log('<<< DATA >>>:', data);
|
|
64
|
-
assert.deepEqual(data, [ { '1': 1 } ]);
|
|
65
|
-
}
|
|
66
|
-
conn2.closeSync();
|
|
67
|
-
queryExecuted++;
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
var interval = setInterval(function(){
|
|
73
|
-
if(queryExecuted === 2) {
|
|
74
|
-
conn1.querySync("drop table T1");
|
|
75
|
-
conn1.closeSync();
|
|
76
|
-
clearInterval(interval);
|
|
77
|
-
}
|
|
78
|
-
}, 1000);
|
|
79
|
-
});
|
|
80
|
-
|
|
1
|
+
var ibmdb = require("../")
|
|
2
|
+
, common = require("./common")
|
|
3
|
+
, assert = require("assert")
|
|
4
|
+
, cn = common.connectionString;
|
|
5
|
+
|
|
6
|
+
var stmt0 = {};
|
|
7
|
+
var stmt1 = {};
|
|
8
|
+
var stmt2 = {};
|
|
9
|
+
var queryExecuted = 0;
|
|
10
|
+
|
|
11
|
+
stmt1.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)';
|
|
12
|
+
stmt1.params = ['Joe', 'Tim'];
|
|
13
|
+
stmt1.noResults = false;
|
|
14
|
+
|
|
15
|
+
stmt2.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)';
|
|
16
|
+
stmt2.params = ['Jane', 'Joan'];
|
|
17
|
+
stmt2.noResults = false;
|
|
18
|
+
|
|
19
|
+
ibmdb.debug(true);
|
|
20
|
+
ibmdb.open(cn, function(err, conn1) {
|
|
21
|
+
if (err) console.log(err);
|
|
22
|
+
assert.equal(err, null);
|
|
23
|
+
|
|
24
|
+
stmt0.sql = 'DROP TABLE T1';
|
|
25
|
+
stmt0.noResults = true;
|
|
26
|
+
try{ conn1.querySync(stmt0.sql); } catch(e) { }
|
|
27
|
+
|
|
28
|
+
stmt0.sql = 'CREATE TABLE T1 (C1 INT PRIMARY KEY NOT NULL, C2 CHAR(50), C3 CHAR(50))';
|
|
29
|
+
conn1.querySync(stmt0.sql);
|
|
30
|
+
|
|
31
|
+
stmt0.sql = "INSERT INTO T1 VALUES (1, 'ABCDEF', 'GHIJK')";
|
|
32
|
+
conn1.querySync(stmt0.sql);
|
|
33
|
+
|
|
34
|
+
ibmdb.open(cn, function(err, conn2) {
|
|
35
|
+
if (err) return console.log(err);
|
|
36
|
+
|
|
37
|
+
conn1.beginTransaction(function(err) {
|
|
38
|
+
if (err) return console.log(err);
|
|
39
|
+
console.log('Transaction 1 opened');
|
|
40
|
+
conn2.beginTransaction(function(err) {
|
|
41
|
+
if (err) return console.log(err);
|
|
42
|
+
console.log('Transaction 2 opened');
|
|
43
|
+
|
|
44
|
+
conn1.query(stmt1, function(err, data) {
|
|
45
|
+
console.log('Query 1 executed');
|
|
46
|
+
if (err) {
|
|
47
|
+
conn1.rollbackTransactionSync();
|
|
48
|
+
console.log(err);
|
|
49
|
+
} else {
|
|
50
|
+
conn1.commitTransactionSync();
|
|
51
|
+
console.log('<<< DATA >>>:', data);
|
|
52
|
+
}
|
|
53
|
+
queryExecuted++;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
conn2.query(stmt2, function(err, data) {
|
|
57
|
+
console.log('Query 2 executed');
|
|
58
|
+
if (err) {
|
|
59
|
+
conn2.rollbackTransactionSync();
|
|
60
|
+
console.log(err);
|
|
61
|
+
} else {
|
|
62
|
+
conn2.commitTransactionSync();
|
|
63
|
+
console.log('<<< DATA >>>:', data);
|
|
64
|
+
assert.deepEqual(data, [ { '1': 1 } ]);
|
|
65
|
+
}
|
|
66
|
+
conn2.closeSync();
|
|
67
|
+
queryExecuted++;
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var interval = setInterval(function(){
|
|
73
|
+
if(queryExecuted === 2) {
|
|
74
|
+
conn1.querySync("drop table T1");
|
|
75
|
+
conn1.closeSync();
|
|
76
|
+
clearInterval(interval);
|
|
77
|
+
}
|
|
78
|
+
}, 1000);
|
|
79
|
+
});
|
|
80
|
+
|