@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,144 +1,144 @@
|
|
|
1
|
-
// Test insertion of BLOB and CLOB data using memory buffer.
|
|
2
|
-
// First read the file into buffer and then pass buffer to ibm_db.
|
|
3
|
-
// Author : bimaljha@in.ibm.com
|
|
4
|
-
|
|
5
|
-
var common = require("./common"),
|
|
6
|
-
ibmdb = require("../"),
|
|
7
|
-
assert = require("assert"),
|
|
8
|
-
fs = require('fs'),
|
|
9
|
-
path = require('path'),
|
|
10
|
-
connString = common.connectionString,
|
|
11
|
-
inputfile1 = path.join(__dirname, 'data', 'phool.jpg'),
|
|
12
|
-
inputfile2 = path.join(__dirname, 'data', 'trc.fmt'),
|
|
13
|
-
outputfile1 = 'phool2.jpg',
|
|
14
|
-
outputfile2 = 'trc2.fmt';
|
|
15
|
-
|
|
16
|
-
ibmdb.open(connString, function (err,conn) {
|
|
17
|
-
if (err) {
|
|
18
|
-
console.log(err);
|
|
19
|
-
}
|
|
20
|
-
assert.equal(err, null);
|
|
21
|
-
try {
|
|
22
|
-
conn.querySync("drop table mytab");
|
|
23
|
-
} catch (e) {};
|
|
24
|
-
try {
|
|
25
|
-
conn.querySync("create table mytab (empId int, photo BLOB(1M), trace CLOB(1M), buffer BLOB(1M))");
|
|
26
|
-
} catch (e) {};
|
|
27
|
-
|
|
28
|
-
var img1= fs.readFileSync(inputfile1,'binary');
|
|
29
|
-
var text= fs.readFileSync(inputfile2,'ascii');
|
|
30
|
-
var buf = Buffer.from('49 49 2A 00 C8 8C 00 00 73 C5 3C 13 83 39 98 35'.replace(/\s+/g, ''), 'hex');
|
|
31
|
-
var bufferInsert = buf.toString();
|
|
32
|
-
|
|
33
|
-
var len1 = img1.length;
|
|
34
|
-
var len2 = text.length;
|
|
35
|
-
console.log( "img1.length = " + len1);
|
|
36
|
-
console.log( "text.length = " + len2);
|
|
37
|
-
console.log("buffer data = " + bufferInsert);
|
|
38
|
-
|
|
39
|
-
conn.prepare("insert into mytab(empId, photo, trace, buffer) VALUES (?, ?, ?, ?)",
|
|
40
|
-
function (err, stmt) {
|
|
41
|
-
if (err) {
|
|
42
|
-
console.log(err);
|
|
43
|
-
return conn.closeSync();
|
|
44
|
-
}
|
|
45
|
-
//var photo = [1, -2, -98, img1]; // We can use such array too.
|
|
46
|
-
//var photo = {ParamType:"INPUT", CType:"BINARY", "SQLType:"BLOB", Data:img1};
|
|
47
|
-
/*
|
|
48
|
-
Default ParamType is 1(SQL_PARAM_INPUT)
|
|
49
|
-
Default CType is 1 (SQL_C_CHAR)
|
|
50
|
-
Default SQLType is 1. You must use SQLType or DataType
|
|
51
|
-
if value is passed as JSON Object or Array.
|
|
52
|
-
Except, numbers and string; all other datatypes like LOBS, GRAPHIC, File, etc
|
|
53
|
-
must be passed as JSON Object or Array.
|
|
54
|
-
*/
|
|
55
|
-
var photo = {ParamType:1, DataType: "BLOB", "Data":img1};
|
|
56
|
-
var tracefile = {DataType: "CLOB", Data: text};
|
|
57
|
-
var buffer = {CType: "BLOB", DataType: "BLOB", Data: buf};
|
|
58
|
-
|
|
59
|
-
stmt.execute([18, photo, tracefile, buffer], function (err, result) {
|
|
60
|
-
if( err ) console.log(err);
|
|
61
|
-
else result.closeSync();
|
|
62
|
-
|
|
63
|
-
conn.prepare("select * from mytab", function (err, stmt) {
|
|
64
|
-
if(err) {
|
|
65
|
-
console.log(err);
|
|
66
|
-
return conn.closeSync();
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
stmt.execute([], function(err, result) {
|
|
70
|
-
if(err) console.log(err);
|
|
71
|
-
else {
|
|
72
|
-
data = result.fetchAllSync();
|
|
73
|
-
fs.writeFileSync(outputfile1, data[0].PHOTO, 'binary');
|
|
74
|
-
fs.writeFileSync(outputfile2, data[0].TRACE, 'ascii');
|
|
75
|
-
var bufferReturn = data[0].BUFFER;
|
|
76
|
-
|
|
77
|
-
try {
|
|
78
|
-
conn.querySync("drop table mytab");
|
|
79
|
-
} catch (e) {};
|
|
80
|
-
result.closeSync();
|
|
81
|
-
conn.closeSync();
|
|
82
|
-
|
|
83
|
-
var size1 = fs.statSync(outputfile1)["size"];
|
|
84
|
-
var size2 = fs.statSync(outputfile2)["size"];
|
|
85
|
-
|
|
86
|
-
console.log("Lengths after select = " + size1+ ", " + size2);
|
|
87
|
-
console.log("buffer after select : " + bufferReturn);
|
|
88
|
-
|
|
89
|
-
assert.strictEqual(len1, size1);
|
|
90
|
-
assert.strictEqual(len2, size2);
|
|
91
|
-
assert.deepStrictEqual(buf, bufferReturn);
|
|
92
|
-
|
|
93
|
-
fs.unlinkSync(outputfile1);
|
|
94
|
-
fs.unlink(outputfile2, function () {});
|
|
95
|
-
}
|
|
96
|
-
testNullInsert();
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
function testNullInsert()
|
|
104
|
-
{
|
|
105
|
-
console.log("\n Test null value insert in BLOB coloum.");
|
|
106
|
-
console.log(" ======================================\n");
|
|
107
|
-
const createTable = `create table Aaa (
|
|
108
|
-
id CHAR(128) primary key not null,
|
|
109
|
-
derp BLOB(65536)
|
|
110
|
-
)`;
|
|
111
|
-
|
|
112
|
-
const updateBlob = `merge into Aaa as T
|
|
113
|
-
USING (VALUES(?, ?))
|
|
114
|
-
as V(id, derp)
|
|
115
|
-
on T.id = V.id
|
|
116
|
-
WHEN MATCHED THEN UPDATE SET
|
|
117
|
-
T.derp = V.derp
|
|
118
|
-
WHEN NOT MATCHED THEN
|
|
119
|
-
INSERT (id, derp)
|
|
120
|
-
VALUES (V.id, V.derp)
|
|
121
|
-
`;
|
|
122
|
-
let param = { CType: 'BLOB', DataType: 'BLOB', Data: null };
|
|
123
|
-
|
|
124
|
-
ibmdb.open(connString, (err, conn) => {
|
|
125
|
-
if (err) {
|
|
126
|
-
console.log(err);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
let result = conn.querySync(createTable);
|
|
131
|
-
|
|
132
|
-
let stmt = conn.prepareSync(updateBlob);
|
|
133
|
-
|
|
134
|
-
result = stmt.executeSync(['Aaa_123', param]);
|
|
135
|
-
|
|
136
|
-
result.closeSync();
|
|
137
|
-
|
|
138
|
-
data = conn.querySync('select * from Aaa;');
|
|
139
|
-
console.log(data);
|
|
140
|
-
conn.querySync('drop table Aaa;');
|
|
141
|
-
conn.closeSync();
|
|
142
|
-
assert.equal(data[0]['DERP'], null);
|
|
143
|
-
});
|
|
144
|
-
}
|
|
1
|
+
// Test insertion of BLOB and CLOB data using memory buffer.
|
|
2
|
+
// First read the file into buffer and then pass buffer to ibm_db.
|
|
3
|
+
// Author : bimaljha@in.ibm.com
|
|
4
|
+
|
|
5
|
+
var common = require("./common"),
|
|
6
|
+
ibmdb = require("../"),
|
|
7
|
+
assert = require("assert"),
|
|
8
|
+
fs = require('fs'),
|
|
9
|
+
path = require('path'),
|
|
10
|
+
connString = common.connectionString,
|
|
11
|
+
inputfile1 = path.join(__dirname, 'data', 'phool.jpg'),
|
|
12
|
+
inputfile2 = path.join(__dirname, 'data', 'trc.fmt'),
|
|
13
|
+
outputfile1 = 'phool2.jpg',
|
|
14
|
+
outputfile2 = 'trc2.fmt';
|
|
15
|
+
|
|
16
|
+
ibmdb.open(connString, function (err,conn) {
|
|
17
|
+
if (err) {
|
|
18
|
+
console.log(err);
|
|
19
|
+
}
|
|
20
|
+
assert.equal(err, null);
|
|
21
|
+
try {
|
|
22
|
+
conn.querySync("drop table mytab");
|
|
23
|
+
} catch (e) {};
|
|
24
|
+
try {
|
|
25
|
+
conn.querySync("create table mytab (empId int, photo BLOB(1M), trace CLOB(1M), buffer BLOB(1M))");
|
|
26
|
+
} catch (e) {};
|
|
27
|
+
|
|
28
|
+
var img1= fs.readFileSync(inputfile1,'binary');
|
|
29
|
+
var text= fs.readFileSync(inputfile2,'ascii');
|
|
30
|
+
var buf = Buffer.from('49 49 2A 00 C8 8C 00 00 73 C5 3C 13 83 39 98 35'.replace(/\s+/g, ''), 'hex');
|
|
31
|
+
var bufferInsert = buf.toString();
|
|
32
|
+
|
|
33
|
+
var len1 = img1.length;
|
|
34
|
+
var len2 = text.length;
|
|
35
|
+
console.log( "img1.length = " + len1);
|
|
36
|
+
console.log( "text.length = " + len2);
|
|
37
|
+
console.log("buffer data = " + bufferInsert);
|
|
38
|
+
|
|
39
|
+
conn.prepare("insert into mytab(empId, photo, trace, buffer) VALUES (?, ?, ?, ?)",
|
|
40
|
+
function (err, stmt) {
|
|
41
|
+
if (err) {
|
|
42
|
+
console.log(err);
|
|
43
|
+
return conn.closeSync();
|
|
44
|
+
}
|
|
45
|
+
//var photo = [1, -2, -98, img1]; // We can use such array too.
|
|
46
|
+
//var photo = {ParamType:"INPUT", CType:"BINARY", "SQLType:"BLOB", Data:img1};
|
|
47
|
+
/*
|
|
48
|
+
Default ParamType is 1(SQL_PARAM_INPUT)
|
|
49
|
+
Default CType is 1 (SQL_C_CHAR)
|
|
50
|
+
Default SQLType is 1. You must use SQLType or DataType
|
|
51
|
+
if value is passed as JSON Object or Array.
|
|
52
|
+
Except, numbers and string; all other datatypes like LOBS, GRAPHIC, File, etc
|
|
53
|
+
must be passed as JSON Object or Array.
|
|
54
|
+
*/
|
|
55
|
+
var photo = {ParamType:1, DataType: "BLOB", "Data":img1};
|
|
56
|
+
var tracefile = {DataType: "CLOB", Data: text};
|
|
57
|
+
var buffer = {CType: "BLOB", DataType: "BLOB", Data: buf};
|
|
58
|
+
|
|
59
|
+
stmt.execute([18, photo, tracefile, buffer], function (err, result) {
|
|
60
|
+
if( err ) console.log(err);
|
|
61
|
+
else result.closeSync();
|
|
62
|
+
|
|
63
|
+
conn.prepare("select * from mytab", function (err, stmt) {
|
|
64
|
+
if(err) {
|
|
65
|
+
console.log(err);
|
|
66
|
+
return conn.closeSync();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
stmt.execute([], function(err, result) {
|
|
70
|
+
if(err) console.log(err);
|
|
71
|
+
else {
|
|
72
|
+
data = result.fetchAllSync();
|
|
73
|
+
fs.writeFileSync(outputfile1, data[0].PHOTO, 'binary');
|
|
74
|
+
fs.writeFileSync(outputfile2, data[0].TRACE, 'ascii');
|
|
75
|
+
var bufferReturn = data[0].BUFFER;
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
conn.querySync("drop table mytab");
|
|
79
|
+
} catch (e) {};
|
|
80
|
+
result.closeSync();
|
|
81
|
+
conn.closeSync();
|
|
82
|
+
|
|
83
|
+
var size1 = fs.statSync(outputfile1)["size"];
|
|
84
|
+
var size2 = fs.statSync(outputfile2)["size"];
|
|
85
|
+
|
|
86
|
+
console.log("Lengths after select = " + size1+ ", " + size2);
|
|
87
|
+
console.log("buffer after select : " + bufferReturn);
|
|
88
|
+
|
|
89
|
+
assert.strictEqual(len1, size1);
|
|
90
|
+
assert.strictEqual(len2, size2);
|
|
91
|
+
assert.deepStrictEqual(buf, bufferReturn);
|
|
92
|
+
|
|
93
|
+
fs.unlinkSync(outputfile1);
|
|
94
|
+
fs.unlink(outputfile2, function () {});
|
|
95
|
+
}
|
|
96
|
+
testNullInsert();
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
function testNullInsert()
|
|
104
|
+
{
|
|
105
|
+
console.log("\n Test null value insert in BLOB coloum.");
|
|
106
|
+
console.log(" ======================================\n");
|
|
107
|
+
const createTable = `create table Aaa (
|
|
108
|
+
id CHAR(128) primary key not null,
|
|
109
|
+
derp BLOB(65536)
|
|
110
|
+
)`;
|
|
111
|
+
|
|
112
|
+
const updateBlob = `merge into Aaa as T
|
|
113
|
+
USING (VALUES(?, ?))
|
|
114
|
+
as V(id, derp)
|
|
115
|
+
on T.id = V.id
|
|
116
|
+
WHEN MATCHED THEN UPDATE SET
|
|
117
|
+
T.derp = V.derp
|
|
118
|
+
WHEN NOT MATCHED THEN
|
|
119
|
+
INSERT (id, derp)
|
|
120
|
+
VALUES (V.id, V.derp)
|
|
121
|
+
`;
|
|
122
|
+
let param = { CType: 'BLOB', DataType: 'BLOB', Data: null };
|
|
123
|
+
|
|
124
|
+
ibmdb.open(connString, (err, conn) => {
|
|
125
|
+
if (err) {
|
|
126
|
+
console.log(err);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
let result = conn.querySync(createTable);
|
|
131
|
+
|
|
132
|
+
let stmt = conn.prepareSync(updateBlob);
|
|
133
|
+
|
|
134
|
+
result = stmt.executeSync(['Aaa_123', param]);
|
|
135
|
+
|
|
136
|
+
result.closeSync();
|
|
137
|
+
|
|
138
|
+
data = conn.querySync('select * from Aaa;');
|
|
139
|
+
console.log(data);
|
|
140
|
+
conn.querySync('drop table Aaa;');
|
|
141
|
+
conn.closeSync();
|
|
142
|
+
assert.equal(data[0]['DERP'], null);
|
|
143
|
+
});
|
|
144
|
+
}
|