@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,123 +1,123 @@
|
|
|
1
|
-
var common = require("./common")
|
|
2
|
-
, ibmdb = require("../")
|
|
3
|
-
, pool = new ibmdb.Pool()
|
|
4
|
-
, connectionString = common.connectionString
|
|
5
|
-
, iszos = common.isZOS
|
|
6
|
-
, assert = require("assert")
|
|
7
|
-
, connections = []
|
|
8
|
-
, connectCount = 2;
|
|
9
|
-
|
|
10
|
-
var startTime1, startTime2, totalTime1, totalTime2, dropTable = 0;
|
|
11
|
-
var elapsedTime = ibmdb.getElapsedTime;
|
|
12
|
-
var ret = pool.init(connectCount, connectionString);
|
|
13
|
-
if(typeof ret === 'object') assert.equal(ret.message, undefined);
|
|
14
|
-
|
|
15
|
-
//moment().format("YYYY-MM-DD HH:mm:ss.SSS"));
|
|
16
|
-
console.log(elapsedTime(), "Started pool.open, populate a table MTAB1 of 2330 rows.");
|
|
17
|
-
pool.open(connectionString, function( err, conn) {
|
|
18
|
-
try { conn.querySync("drop table mtab1");
|
|
19
|
-
conn.querySync("drop table mtab2"); } catch(e) {};
|
|
20
|
-
conn.querySync("create table mtab1(c1 varchar(30), c2 varchar(20))");
|
|
21
|
-
conn.querySync("create table mtab2(c1 varchar(30), c2 varchar(20))");
|
|
22
|
-
if (iszos) {
|
|
23
|
-
// Db2 on z/OS does not support multi-row inserts
|
|
24
|
-
conn.querySync("Insert into mtab1 values ('1', 'bimal')");
|
|
25
|
-
conn.querySync("Insert into mtab1 values ('2', 'kumar')");
|
|
26
|
-
conn.querySync("Insert into mtab1 values ('3', 'jha')");
|
|
27
|
-
conn.querySync("Insert into mtab1 values ('4', 'kamal')");
|
|
28
|
-
conn.querySync("Insert into mtab1 values ('5', 'ibm')");
|
|
29
|
-
|
|
30
|
-
conn.querySync("Insert into mtab1 values ('1', 'bimal')");
|
|
31
|
-
conn.querySync("Insert into mtab1 values ('2', 'kumar')");
|
|
32
|
-
conn.querySync("Insert into mtab1 values ('3', 'jha')");
|
|
33
|
-
conn.querySync("Insert into mtab1 values ('4', 'kamal')");
|
|
34
|
-
conn.querySync("Insert into mtab1 values ('5', 'ibm')");
|
|
35
|
-
} else {
|
|
36
|
-
conn.querySync("Insert into mtab1 values ('1', 'bimal'),('2','kumar'),('3', 'jha'), ('4', 'kamal'), ('5', 'ibm')");
|
|
37
|
-
conn.querySync("Insert into mtab1 values ('1', 'bimal'),('2','kumar'),('3', 'jha'), ('4', 'kamal'), ('5', 'ibm')");
|
|
38
|
-
}
|
|
39
|
-
for(var i = 0; i < 6 ; i++) {
|
|
40
|
-
conn.querySync("insert into mtab2 (select * from mtab1)");
|
|
41
|
-
conn.querySync("insert into mtab1 (select * from mtab2)");
|
|
42
|
-
}
|
|
43
|
-
conn.querySync("drop table mtab2");
|
|
44
|
-
console.log(elapsedTime(), "Inserted rows in mtab1 = ", conn.querySync("select count(*) from mtab1")[0]['1']);
|
|
45
|
-
conn.close(function(err){});
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
ibmdb.debug(true);
|
|
49
|
-
var q1time, q2time;
|
|
50
|
-
console.log(elapsedTime(), "Opening connection #1");
|
|
51
|
-
pool.open(connectionString, function (err, connection) {
|
|
52
|
-
console.log(elapsedTime(), "Connection 1 opened. Start execution of Query1");
|
|
53
|
-
startTime1 = new Date();
|
|
54
|
-
connection.query("select * from mtab1", function(err, data) {
|
|
55
|
-
if(err) console.log(err);
|
|
56
|
-
totalTime1 = (new Date() - startTime1)/1000;
|
|
57
|
-
q1time = parseInt(totalTime1%60);
|
|
58
|
-
console.log(elapsedTime(), "Total execution time for Query1 = ", q1time, "sec.");
|
|
59
|
-
dropTable++;
|
|
60
|
-
if(dropTable == 2) {
|
|
61
|
-
if( q2time > 1 ) {
|
|
62
|
-
assert.equal(q1time >= 2 * q2time , false); // Do queries executed in sequence?
|
|
63
|
-
}
|
|
64
|
-
testLongTime(connection);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
pool.open(connectionString, function (err, connection) {
|
|
69
|
-
console.log(elapsedTime(), "Connection 2 opened. Start execution of Query2");
|
|
70
|
-
startTime2 = new Date();
|
|
71
|
-
connection.query("select c1, c2 from mtab1", function(err, data) {
|
|
72
|
-
if(err) console.log(err);
|
|
73
|
-
totalTime2 = (new Date() - startTime2)/1000;
|
|
74
|
-
q2time = parseInt(totalTime2%60);
|
|
75
|
-
console.log(elapsedTime(), "Total execution time for Query2 = ", q2time, "sec.");
|
|
76
|
-
dropTable++;
|
|
77
|
-
if(dropTable == 2) {
|
|
78
|
-
if( q1time > 1 ) {
|
|
79
|
-
assert.equal(q2time >= 2 * q1time, false); // Do queries executed in sequence?
|
|
80
|
-
}
|
|
81
|
-
testLongTime(connection);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
// Test case for issue #230 - ? takes long time. Found a server issue.
|
|
87
|
-
var testLongTime = function(conn) {
|
|
88
|
-
if (iszos) {
|
|
89
|
-
// Db2 on z/OS does not support multi-row inserts
|
|
90
|
-
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910')");
|
|
91
|
-
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910')");
|
|
92
|
-
conn.querySync("insert into mtab1 values ('330107196906080910', '')");
|
|
93
|
-
} else {
|
|
94
|
-
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910'), "+
|
|
95
|
-
"('330107196906080910', '330107196906080910'), ('330107196906080910', '')");
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
var query1 = "select c1, c2 from mtab1 where (c1 in (?, ?) or c2 in (?, ?) and (? is null or c2 = ?))";
|
|
99
|
-
var query2 = "select c1, c2 from mtab1 where (c1 in ('330107196906080910', '330107196906080910') " +
|
|
100
|
-
"or c2 in ('330107196906080910', '330107196906080910') and ('' is null or c2 = ''))";
|
|
101
|
-
var params = ['330107196906080910', '330107196906080910', '330107196906080910','330107196906080910', '', ''];
|
|
102
|
-
startTime1 = new Date();
|
|
103
|
-
conn.query(query1, params, function(err, rows) {
|
|
104
|
-
if(err) console.log(err);
|
|
105
|
-
else console.log(rows);
|
|
106
|
-
totalTime1 = (new Date() - startTime1)/1000;
|
|
107
|
-
console.log(elapsedTime(), "Total execution time for Query3 = ", totalTime1, "sec. **** <<==");
|
|
108
|
-
startTime2 = new Date();
|
|
109
|
-
conn.query(query2, function(err, rows) {
|
|
110
|
-
if(err) console.log(err);
|
|
111
|
-
else console.log(rows);
|
|
112
|
-
totalTime2 = (new Date() - startTime2)/1000;
|
|
113
|
-
console.log(elapsedTime(), "Total execution time for Query4 = ", totalTime2, "sec. **** <<==");
|
|
114
|
-
|
|
115
|
-
// Clean up
|
|
116
|
-
conn.querySync("drop table mtab1");
|
|
117
|
-
ibmdb.debug(false);
|
|
118
|
-
pool.close();
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
console.log(elapsedTime(), " **** All lines of test file executed, waiting for callback functions to finish. ");
|
|
123
|
-
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, ibmdb = require("../")
|
|
3
|
+
, pool = new ibmdb.Pool()
|
|
4
|
+
, connectionString = common.connectionString
|
|
5
|
+
, iszos = common.isZOS
|
|
6
|
+
, assert = require("assert")
|
|
7
|
+
, connections = []
|
|
8
|
+
, connectCount = 2;
|
|
9
|
+
|
|
10
|
+
var startTime1, startTime2, totalTime1, totalTime2, dropTable = 0;
|
|
11
|
+
var elapsedTime = ibmdb.getElapsedTime;
|
|
12
|
+
var ret = pool.init(connectCount, connectionString);
|
|
13
|
+
if(typeof ret === 'object') assert.equal(ret.message, undefined);
|
|
14
|
+
|
|
15
|
+
//moment().format("YYYY-MM-DD HH:mm:ss.SSS"));
|
|
16
|
+
console.log(elapsedTime(), "Started pool.open, populate a table MTAB1 of 2330 rows.");
|
|
17
|
+
pool.open(connectionString, function( err, conn) {
|
|
18
|
+
try { conn.querySync("drop table mtab1");
|
|
19
|
+
conn.querySync("drop table mtab2"); } catch(e) {};
|
|
20
|
+
conn.querySync("create table mtab1(c1 varchar(30), c2 varchar(20))");
|
|
21
|
+
conn.querySync("create table mtab2(c1 varchar(30), c2 varchar(20))");
|
|
22
|
+
if (iszos) {
|
|
23
|
+
// Db2 on z/OS does not support multi-row inserts
|
|
24
|
+
conn.querySync("Insert into mtab1 values ('1', 'bimal')");
|
|
25
|
+
conn.querySync("Insert into mtab1 values ('2', 'kumar')");
|
|
26
|
+
conn.querySync("Insert into mtab1 values ('3', 'jha')");
|
|
27
|
+
conn.querySync("Insert into mtab1 values ('4', 'kamal')");
|
|
28
|
+
conn.querySync("Insert into mtab1 values ('5', 'ibm')");
|
|
29
|
+
|
|
30
|
+
conn.querySync("Insert into mtab1 values ('1', 'bimal')");
|
|
31
|
+
conn.querySync("Insert into mtab1 values ('2', 'kumar')");
|
|
32
|
+
conn.querySync("Insert into mtab1 values ('3', 'jha')");
|
|
33
|
+
conn.querySync("Insert into mtab1 values ('4', 'kamal')");
|
|
34
|
+
conn.querySync("Insert into mtab1 values ('5', 'ibm')");
|
|
35
|
+
} else {
|
|
36
|
+
conn.querySync("Insert into mtab1 values ('1', 'bimal'),('2','kumar'),('3', 'jha'), ('4', 'kamal'), ('5', 'ibm')");
|
|
37
|
+
conn.querySync("Insert into mtab1 values ('1', 'bimal'),('2','kumar'),('3', 'jha'), ('4', 'kamal'), ('5', 'ibm')");
|
|
38
|
+
}
|
|
39
|
+
for(var i = 0; i < 6 ; i++) {
|
|
40
|
+
conn.querySync("insert into mtab2 (select * from mtab1)");
|
|
41
|
+
conn.querySync("insert into mtab1 (select * from mtab2)");
|
|
42
|
+
}
|
|
43
|
+
conn.querySync("drop table mtab2");
|
|
44
|
+
console.log(elapsedTime(), "Inserted rows in mtab1 = ", conn.querySync("select count(*) from mtab1")[0]['1']);
|
|
45
|
+
conn.close(function(err){});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
ibmdb.debug(true);
|
|
49
|
+
var q1time, q2time;
|
|
50
|
+
console.log(elapsedTime(), "Opening connection #1");
|
|
51
|
+
pool.open(connectionString, function (err, connection) {
|
|
52
|
+
console.log(elapsedTime(), "Connection 1 opened. Start execution of Query1");
|
|
53
|
+
startTime1 = new Date();
|
|
54
|
+
connection.query("select * from mtab1", function(err, data) {
|
|
55
|
+
if(err) console.log(err);
|
|
56
|
+
totalTime1 = (new Date() - startTime1)/1000;
|
|
57
|
+
q1time = parseInt(totalTime1%60);
|
|
58
|
+
console.log(elapsedTime(), "Total execution time for Query1 = ", q1time, "sec.");
|
|
59
|
+
dropTable++;
|
|
60
|
+
if(dropTable == 2) {
|
|
61
|
+
if( q2time > 1 ) {
|
|
62
|
+
assert.equal(q1time >= 2 * q2time , false); // Do queries executed in sequence?
|
|
63
|
+
}
|
|
64
|
+
testLongTime(connection);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
pool.open(connectionString, function (err, connection) {
|
|
69
|
+
console.log(elapsedTime(), "Connection 2 opened. Start execution of Query2");
|
|
70
|
+
startTime2 = new Date();
|
|
71
|
+
connection.query("select c1, c2 from mtab1", function(err, data) {
|
|
72
|
+
if(err) console.log(err);
|
|
73
|
+
totalTime2 = (new Date() - startTime2)/1000;
|
|
74
|
+
q2time = parseInt(totalTime2%60);
|
|
75
|
+
console.log(elapsedTime(), "Total execution time for Query2 = ", q2time, "sec.");
|
|
76
|
+
dropTable++;
|
|
77
|
+
if(dropTable == 2) {
|
|
78
|
+
if( q1time > 1 ) {
|
|
79
|
+
assert.equal(q2time >= 2 * q1time, false); // Do queries executed in sequence?
|
|
80
|
+
}
|
|
81
|
+
testLongTime(connection);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Test case for issue #230 - ? takes long time. Found a server issue.
|
|
87
|
+
var testLongTime = function(conn) {
|
|
88
|
+
if (iszos) {
|
|
89
|
+
// Db2 on z/OS does not support multi-row inserts
|
|
90
|
+
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910')");
|
|
91
|
+
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910')");
|
|
92
|
+
conn.querySync("insert into mtab1 values ('330107196906080910', '')");
|
|
93
|
+
} else {
|
|
94
|
+
conn.querySync("insert into mtab1 values ('330107196906080910', '330107196906080910'), "+
|
|
95
|
+
"('330107196906080910', '330107196906080910'), ('330107196906080910', '')");
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
var query1 = "select c1, c2 from mtab1 where (c1 in (?, ?) or c2 in (?, ?) and (? is null or c2 = ?))";
|
|
99
|
+
var query2 = "select c1, c2 from mtab1 where (c1 in ('330107196906080910', '330107196906080910') " +
|
|
100
|
+
"or c2 in ('330107196906080910', '330107196906080910') and ('' is null or c2 = ''))";
|
|
101
|
+
var params = ['330107196906080910', '330107196906080910', '330107196906080910','330107196906080910', '', ''];
|
|
102
|
+
startTime1 = new Date();
|
|
103
|
+
conn.query(query1, params, function(err, rows) {
|
|
104
|
+
if(err) console.log(err);
|
|
105
|
+
else console.log(rows);
|
|
106
|
+
totalTime1 = (new Date() - startTime1)/1000;
|
|
107
|
+
console.log(elapsedTime(), "Total execution time for Query3 = ", totalTime1, "sec. **** <<==");
|
|
108
|
+
startTime2 = new Date();
|
|
109
|
+
conn.query(query2, function(err, rows) {
|
|
110
|
+
if(err) console.log(err);
|
|
111
|
+
else console.log(rows);
|
|
112
|
+
totalTime2 = (new Date() - startTime2)/1000;
|
|
113
|
+
console.log(elapsedTime(), "Total execution time for Query4 = ", totalTime2, "sec. **** <<==");
|
|
114
|
+
|
|
115
|
+
// Clean up
|
|
116
|
+
conn.querySync("drop table mtab1");
|
|
117
|
+
ibmdb.debug(false);
|
|
118
|
+
pool.close();
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
console.log(elapsedTime(), " **** All lines of test file executed, waiting for callback functions to finish. ");
|
|
123
|
+
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
// Test case to verify result of OUT and INOUT Parameters in a Strored Procedure.
|
|
2
|
-
// When SP is called using conn.query() assynchronously.
|
|
3
|
-
|
|
4
|
-
var common = require("./common")
|
|
5
|
-
, ibmdb = require("../")
|
|
6
|
-
, assert = require("assert")
|
|
7
|
-
, cn = common.connectionString
|
|
8
|
-
, iszos = common.isZOS
|
|
9
|
-
, schema = common.connectionObject.CURRENTSCHEMA;
|
|
10
|
-
|
|
11
|
-
ibmdb.open(cn, function (err, conn)
|
|
12
|
-
{
|
|
13
|
-
if(err) console.log(err);
|
|
14
|
-
assert.equal(err, null);
|
|
15
|
-
var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
|
|
16
|
-
var proc1 = "create procedure " + schema + ".PROC1 " +
|
|
17
|
-
"(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 VARCHAR(20)) " +
|
|
18
|
-
"BEGIN set v2 = v1 + 1; set v3 = 'verygood'; END";
|
|
19
|
-
var proc2 = "create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END";
|
|
20
|
-
var dropProc1 = "drop procedure " + schema + ".PROC1(INT, INT, VARCHAR(20))";
|
|
21
|
-
var dropProc2 = "drop procedure " + schema + ".PROC2(INT)";
|
|
22
|
-
|
|
23
|
-
if (iszos) {
|
|
24
|
-
// The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
|
|
25
|
-
dropProc1 = "drop procedure " + schema + ".PROC1";
|
|
26
|
-
dropProc2 = "drop procedure " + schema + ".PROC2";
|
|
27
|
-
proc1 = common.sanitizeSP(proc1);
|
|
28
|
-
proc2 = common.sanitizeSP(proc2);
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
conn.querySync(dropProc1);
|
|
32
|
-
console.log("PROC1 dropped.\n");
|
|
33
|
-
} catch(e) { }
|
|
34
|
-
|
|
35
|
-
conn.querySync(proc1);
|
|
36
|
-
console.log("created PROC1...\n");
|
|
37
|
-
conn.commitTransactionSync();
|
|
38
|
-
var param1 = {ParamType:"INPUT", DataType:1, Data:3};
|
|
39
|
-
var param2 = {ParamType:"OUTPUT", DataType:1, Data:0};
|
|
40
|
-
var param3 = {ParamType:"INOUT", DataType:1, Data:"abc", Length:30};
|
|
41
|
-
|
|
42
|
-
conn.query(query, [param1, param2, param3], function(err, result){
|
|
43
|
-
if(err) console.log(err);
|
|
44
|
-
else {
|
|
45
|
-
console.log("return value = ", result[0], result[1]);
|
|
46
|
-
}
|
|
47
|
-
conn.querySync(dropProc1);
|
|
48
|
-
assert.deepEqual(result, [ 4, 'verygood' ]);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
conn.querySync(dropProc2);
|
|
53
|
-
console.log("PROC2 dropped.\n");
|
|
54
|
-
} catch(e) { }
|
|
55
|
-
conn.querySync(proc2);
|
|
56
|
-
query = "call " + schema + ".PROC2(?)";
|
|
57
|
-
conn.query({"sql":query, "params" : [param1]}, function(err, result){
|
|
58
|
-
if(err) console.log(err);
|
|
59
|
-
conn.querySync(dropProc2);
|
|
60
|
-
conn.closeSync();
|
|
61
|
-
assert.equal(result.length, 0);
|
|
62
|
-
console.log('done');
|
|
63
|
-
});
|
|
64
|
-
});
|
|
1
|
+
// Test case to verify result of OUT and INOUT Parameters in a Strored Procedure.
|
|
2
|
+
// When SP is called using conn.query() assynchronously.
|
|
3
|
+
|
|
4
|
+
var common = require("./common")
|
|
5
|
+
, ibmdb = require("../")
|
|
6
|
+
, assert = require("assert")
|
|
7
|
+
, cn = common.connectionString
|
|
8
|
+
, iszos = common.isZOS
|
|
9
|
+
, schema = common.connectionObject.CURRENTSCHEMA;
|
|
10
|
+
|
|
11
|
+
ibmdb.open(cn, function (err, conn)
|
|
12
|
+
{
|
|
13
|
+
if(err) console.log(err);
|
|
14
|
+
assert.equal(err, null);
|
|
15
|
+
var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
|
|
16
|
+
var proc1 = "create procedure " + schema + ".PROC1 " +
|
|
17
|
+
"(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 VARCHAR(20)) " +
|
|
18
|
+
"BEGIN set v2 = v1 + 1; set v3 = 'verygood'; END";
|
|
19
|
+
var proc2 = "create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END";
|
|
20
|
+
var dropProc1 = "drop procedure " + schema + ".PROC1(INT, INT, VARCHAR(20))";
|
|
21
|
+
var dropProc2 = "drop procedure " + schema + ".PROC2(INT)";
|
|
22
|
+
|
|
23
|
+
if (iszos) {
|
|
24
|
+
// The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
|
|
25
|
+
dropProc1 = "drop procedure " + schema + ".PROC1";
|
|
26
|
+
dropProc2 = "drop procedure " + schema + ".PROC2";
|
|
27
|
+
proc1 = common.sanitizeSP(proc1);
|
|
28
|
+
proc2 = common.sanitizeSP(proc2);
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
conn.querySync(dropProc1);
|
|
32
|
+
console.log("PROC1 dropped.\n");
|
|
33
|
+
} catch(e) { }
|
|
34
|
+
|
|
35
|
+
conn.querySync(proc1);
|
|
36
|
+
console.log("created PROC1...\n");
|
|
37
|
+
conn.commitTransactionSync();
|
|
38
|
+
var param1 = {ParamType:"INPUT", DataType:1, Data:3};
|
|
39
|
+
var param2 = {ParamType:"OUTPUT", DataType:1, Data:0};
|
|
40
|
+
var param3 = {ParamType:"INOUT", DataType:1, Data:"abc", Length:30};
|
|
41
|
+
|
|
42
|
+
conn.query(query, [param1, param2, param3], function(err, result){
|
|
43
|
+
if(err) console.log(err);
|
|
44
|
+
else {
|
|
45
|
+
console.log("return value = ", result[0], result[1]);
|
|
46
|
+
}
|
|
47
|
+
conn.querySync(dropProc1);
|
|
48
|
+
assert.deepEqual(result, [ 4, 'verygood' ]);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
conn.querySync(dropProc2);
|
|
53
|
+
console.log("PROC2 dropped.\n");
|
|
54
|
+
} catch(e) { }
|
|
55
|
+
conn.querySync(proc2);
|
|
56
|
+
query = "call " + schema + ".PROC2(?)";
|
|
57
|
+
conn.query({"sql":query, "params" : [param1]}, function(err, result){
|
|
58
|
+
if(err) console.log(err);
|
|
59
|
+
conn.querySync(dropProc2);
|
|
60
|
+
conn.closeSync();
|
|
61
|
+
assert.equal(result.length, 0);
|
|
62
|
+
console.log('done');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
// Test case to verify result of OUT and INOUT Parameters in a Strored Procedure.
|
|
2
|
-
|
|
3
|
-
var common = require("./common")
|
|
4
|
-
, ibmdb = require("../")
|
|
5
|
-
, assert = require("assert")
|
|
6
|
-
, cn = common.connectionString
|
|
7
|
-
, iszos = common.isZOS
|
|
8
|
-
, schema = common.connectionObject.CURRENTSCHEMA;
|
|
9
|
-
|
|
10
|
-
var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
|
|
11
|
-
ibmdb.open(cn, function (err, conn)
|
|
12
|
-
{
|
|
13
|
-
if(err) console.log(err);
|
|
14
|
-
assert.equal(err, null);
|
|
15
|
-
let proc1 = "create or replace procedure " + schema + ".PROC1 " +
|
|
16
|
-
"(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 VARCHAR(20)) " +
|
|
17
|
-
"BEGIN set v2 = v1 + 1; set v3 = 'verygood'; END";
|
|
18
|
-
let proc2 = "create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END";
|
|
19
|
-
let dropProc1 = "drop procedure " + schema + ".PROC1(INT, INT, VARCHAR(20))";
|
|
20
|
-
let dropProc2 = "drop procedure " + schema + ".PROC2(INT)";
|
|
21
|
-
|
|
22
|
-
if (iszos) {
|
|
23
|
-
proc1 = common.sanitizeSP(proc1);
|
|
24
|
-
proc2 = common.sanitizeSP(proc2);
|
|
25
|
-
dropProc1 = "drop procedure " + schema + ".PROC1";
|
|
26
|
-
dropProc2 = "drop procedure " + schema + ".PROC2";
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
try {
|
|
30
|
-
conn.querySync(dropProc1);
|
|
31
|
-
} catch(e) {}
|
|
32
|
-
conn.querySync(proc1);
|
|
33
|
-
|
|
34
|
-
var param1 = {ParamType:"INPUT", DataType:1, Data:0};
|
|
35
|
-
var param2 = {ParamType:"OUTPUT", DataType:1, Data:0};
|
|
36
|
-
var param3 = {ParamType:"INOUT", DataType:1, Data:"abc", Length:30};
|
|
37
|
-
|
|
38
|
-
result = conn.querySync(query, [param1, param2, param3]);
|
|
39
|
-
assert.deepEqual(result, [ 1, 'verygood' ]);
|
|
40
|
-
console.log("Output Parameters V2 = ", result[0], ", V3 = ", result[1]);
|
|
41
|
-
conn.querySync(dropProc1);
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
conn.querySync(dropProc2);
|
|
45
|
-
} catch(e) {}
|
|
46
|
-
conn.querySync(proc2);
|
|
47
|
-
|
|
48
|
-
result = conn.querySync("call " + schema + ".PROC2(?)", [param1]);
|
|
49
|
-
assert.deepEqual(result, []);
|
|
50
|
-
conn.querySync(dropProc2);
|
|
51
|
-
conn.closeSync();
|
|
52
|
-
console.log('done');
|
|
53
|
-
});
|
|
1
|
+
// Test case to verify result of OUT and INOUT Parameters in a Strored Procedure.
|
|
2
|
+
|
|
3
|
+
var common = require("./common")
|
|
4
|
+
, ibmdb = require("../")
|
|
5
|
+
, assert = require("assert")
|
|
6
|
+
, cn = common.connectionString
|
|
7
|
+
, iszos = common.isZOS
|
|
8
|
+
, schema = common.connectionObject.CURRENTSCHEMA;
|
|
9
|
+
|
|
10
|
+
var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
|
|
11
|
+
ibmdb.open(cn, function (err, conn)
|
|
12
|
+
{
|
|
13
|
+
if(err) console.log(err);
|
|
14
|
+
assert.equal(err, null);
|
|
15
|
+
let proc1 = "create or replace procedure " + schema + ".PROC1 " +
|
|
16
|
+
"(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 VARCHAR(20)) " +
|
|
17
|
+
"BEGIN set v2 = v1 + 1; set v3 = 'verygood'; END";
|
|
18
|
+
let proc2 = "create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END";
|
|
19
|
+
let dropProc1 = "drop procedure " + schema + ".PROC1(INT, INT, VARCHAR(20))";
|
|
20
|
+
let dropProc2 = "drop procedure " + schema + ".PROC2(INT)";
|
|
21
|
+
|
|
22
|
+
if (iszos) {
|
|
23
|
+
proc1 = common.sanitizeSP(proc1);
|
|
24
|
+
proc2 = common.sanitizeSP(proc2);
|
|
25
|
+
dropProc1 = "drop procedure " + schema + ".PROC1";
|
|
26
|
+
dropProc2 = "drop procedure " + schema + ".PROC2";
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
conn.querySync(dropProc1);
|
|
31
|
+
} catch(e) {}
|
|
32
|
+
conn.querySync(proc1);
|
|
33
|
+
|
|
34
|
+
var param1 = {ParamType:"INPUT", DataType:1, Data:0};
|
|
35
|
+
var param2 = {ParamType:"OUTPUT", DataType:1, Data:0};
|
|
36
|
+
var param3 = {ParamType:"INOUT", DataType:1, Data:"abc", Length:30};
|
|
37
|
+
|
|
38
|
+
result = conn.querySync(query, [param1, param2, param3]);
|
|
39
|
+
assert.deepEqual(result, [ 1, 'verygood' ]);
|
|
40
|
+
console.log("Output Parameters V2 = ", result[0], ", V3 = ", result[1]);
|
|
41
|
+
conn.querySync(dropProc1);
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
conn.querySync(dropProc2);
|
|
45
|
+
} catch(e) {}
|
|
46
|
+
conn.querySync(proc2);
|
|
47
|
+
|
|
48
|
+
result = conn.querySync("call " + schema + ".PROC2(?)", [param1]);
|
|
49
|
+
assert.deepEqual(result, []);
|
|
50
|
+
conn.querySync(dropProc2);
|
|
51
|
+
conn.closeSync();
|
|
52
|
+
console.log('done');
|
|
53
|
+
});
|