@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.
Files changed (282) hide show
  1. package/README.md +12 -10
  2. package/lib/Db2PluginLifeCycle.d.ts +11 -9
  3. package/lib/Db2PluginLifeCycle.js +18 -13
  4. package/lib/Db2PluginLifeCycle.js.map +1 -1
  5. package/node_modules/adm-zip/adm-zip.js +32 -6
  6. package/node_modules/adm-zip/headers/entryHeader.js +13 -1
  7. package/node_modules/adm-zip/methods/inflater.js +33 -3
  8. package/node_modules/adm-zip/package.json +2 -2
  9. package/node_modules/adm-zip/util/errors.js +3 -0
  10. package/node_modules/adm-zip/util/utils.js +102 -14
  11. package/node_modules/adm-zip/zipEntry.js +43 -18
  12. package/node_modules/adm-zip/zipFile.js +10 -0
  13. package/node_modules/axios/CHANGELOG.md +62 -0
  14. package/node_modules/axios/README.md +236 -73
  15. package/node_modules/axios/dist/axios.js +1308 -357
  16. package/node_modules/axios/dist/axios.min.js +3 -3
  17. package/node_modules/axios/dist/axios.min.js.map +1 -1
  18. package/node_modules/axios/dist/browser/axios.cjs +1443 -403
  19. package/node_modules/axios/dist/esm/axios.js +1443 -403
  20. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  21. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  22. package/node_modules/axios/dist/node/axios.cjs +1483 -348
  23. package/node_modules/axios/index.d.cts +24 -1
  24. package/node_modules/axios/index.d.ts +22 -1
  25. package/node_modules/axios/lib/adapters/fetch.js +136 -30
  26. package/node_modules/axios/lib/adapters/http.js +277 -74
  27. package/node_modules/axios/lib/adapters/xhr.js +172 -16
  28. package/node_modules/axios/lib/core/Axios.js +87 -27
  29. package/node_modules/axios/lib/core/AxiosError.js +59 -0
  30. package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
  31. package/node_modules/axios/lib/core/InterceptorManager.js +118 -8
  32. package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
  33. package/node_modules/axios/lib/core/buildFullPath.js +1 -13
  34. package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
  35. package/node_modules/axios/lib/core/dispatchRequest.js +28 -2
  36. package/node_modules/axios/lib/core/mergeConfig.js +183 -120
  37. package/node_modules/axios/lib/core/methodList.js +17 -0
  38. package/node_modules/axios/lib/defaults/index.js +2 -1
  39. package/node_modules/axios/lib/defaults/transitional.js +1 -0
  40. package/node_modules/axios/lib/env/data.js +1 -1
  41. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
  42. package/node_modules/axios/lib/helpers/Http2Sessions.js +4 -1
  43. package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
  44. package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
  45. package/node_modules/axios/lib/helpers/cookies.js +30 -6
  46. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
  47. package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
  48. package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
  49. package/node_modules/axios/lib/helpers/fromDataURI.js +11 -4
  50. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
  51. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  52. package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
  53. package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
  54. package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
  55. package/node_modules/axios/lib/helpers/resolveConfig.js +20 -5
  56. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +197 -6
  57. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  58. package/node_modules/axios/lib/helpers/toFormData.js +14 -21
  59. package/node_modules/axios/lib/utils.js +192 -20
  60. package/node_modules/axios/package.json +1 -2
  61. package/node_modules/follow-redirects/README.md +27 -1
  62. package/node_modules/follow-redirects/index.js +11 -6
  63. package/node_modules/follow-redirects/package.json +1 -1
  64. package/node_modules/fs-extra/README.md +0 -1
  65. package/node_modules/fs-extra/lib/empty/index.js +4 -2
  66. package/node_modules/fs-extra/lib/util/stat.js +12 -2
  67. package/node_modules/fs-extra/package.json +1 -1
  68. package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
  69. package/node_modules/ibm_db/LICENSE +23 -23
  70. package/node_modules/ibm_db/README.md +735 -735
  71. package/node_modules/ibm_db/binding.gyp +99 -98
  72. package/node_modules/ibm_db/installer/driverInstall.js +984 -958
  73. package/node_modules/ibm_db/installer/ifx.sh +38 -38
  74. package/node_modules/ibm_db/installer/setenv.sh +23 -23
  75. package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
  76. package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
  77. package/node_modules/ibm_db/lib/climacros.js +431 -431
  78. package/node_modules/ibm_db/lib/odbc.js +4293 -3487
  79. package/node_modules/ibm_db/lib/simple-queue.js +41 -41
  80. package/node_modules/ibm_db/package.json +70 -70
  81. package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
  82. package/node_modules/ibm_db/src/odbc.h +477 -473
  83. package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
  84. package/node_modules/ibm_db/src/odbc_connection.h +228 -215
  85. package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
  86. package/node_modules/ibm_db/src/odbc_result.h +152 -152
  87. package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
  88. package/node_modules/ibm_db/src/odbc_statement.h +257 -135
  89. package/node_modules/ibm_db/src/strptime.c +389 -389
  90. package/node_modules/ibm_db/src/strptime.h +46 -46
  91. package/node_modules/ibm_db/test/README +23 -23
  92. package/node_modules/ibm_db/test/bench-insert.js +62 -62
  93. package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
  94. package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
  95. package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
  96. package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
  97. package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
  98. package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
  99. package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
  100. package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
  101. package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
  102. package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
  103. package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
  104. package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
  105. package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
  106. package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
  107. package/node_modules/ibm_db/test/bench-query.js +40 -40
  108. package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
  109. package/node_modules/ibm_db/test/bench-querySync.js +29 -29
  110. package/node_modules/ibm_db/test/common.d.ts +10 -10
  111. package/node_modules/ibm_db/test/common.js +127 -127
  112. package/node_modules/ibm_db/test/config.json +7 -7
  113. package/node_modules/ibm_db/test/config.zos.json +4 -4
  114. package/node_modules/ibm_db/test/data/sample1.txt +9 -9
  115. package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
  116. package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
  117. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
  118. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
  119. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
  120. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
  121. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
  122. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
  123. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
  124. package/node_modules/ibm_db/test/odbc-bench.c +123 -123
  125. package/node_modules/ibm_db/test/perfTest.js +53 -53
  126. package/node_modules/ibm_db/test/quick-example.sh +30 -30
  127. package/node_modules/ibm_db/test/quick-example.ts +80 -80
  128. package/node_modules/ibm_db/test/run-bench.js +96 -96
  129. package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
  130. package/node_modules/ibm_db/test/run-tests.js +132 -138
  131. package/node_modules/ibm_db/test/sql-cli.js +28 -28
  132. package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
  133. package/node_modules/ibm_db/test/test-array-insert.js +178 -178
  134. package/node_modules/ibm_db/test/test-async-await.js +105 -105
  135. package/node_modules/ibm_db/test/test-attributes.js +34 -34
  136. package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
  137. package/node_modules/ibm_db/test/test-basic-test.js +138 -138
  138. package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
  139. package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
  140. package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
  141. package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
  142. package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
  143. package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
  144. package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
  145. package/node_modules/ibm_db/test/test-call-async.js +64 -64
  146. package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
  147. package/node_modules/ibm_db/test/test-cancel.js +703 -0
  148. package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
  149. package/node_modules/ibm_db/test/test-connection.js +306 -0
  150. package/node_modules/ibm_db/test/test-date.js +32 -32
  151. package/node_modules/ibm_db/test/test-dbclob.js +93 -93
  152. package/node_modules/ibm_db/test/test-decimals.js +135 -135
  153. package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
  154. package/node_modules/ibm_db/test/test-executeFile.js +167 -167
  155. package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
  156. package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
  157. package/node_modules/ibm_db/test/test-fetchN.js +130 -130
  158. package/node_modules/ibm_db/test/test-getinfo.js +197 -197
  159. package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
  160. package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
  161. package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
  162. package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
  163. package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
  164. package/node_modules/ibm_db/test/test-issue-54.js +39 -39
  165. package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
  166. package/node_modules/ibm_db/test/test-issue211.js +80 -80
  167. package/node_modules/ibm_db/test/test-issue253.js +39 -39
  168. package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
  169. package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
  170. package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
  171. package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
  172. package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
  173. package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
  174. package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
  175. package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
  176. package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
  177. package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
  178. package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
  179. package/node_modules/ibm_db/test/test-procedures.js +243 -0
  180. package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
  181. package/node_modules/ibm_db/test/test-query-operations.js +405 -0
  182. package/node_modules/ibm_db/test/test-quick-example.js +25 -25
  183. package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
  184. package/node_modules/ibm_db/test/test-sp-array.js +54 -54
  185. package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
  186. package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
  187. package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
  188. package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
  189. package/node_modules/ibm_db/test/test-transactions.js +261 -0
  190. package/node_modules/ibm_db/test/test-typescript.js +48 -48
  191. package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
  192. package/node_modules/ibm_db/test/testWebApp.js +56 -56
  193. package/node_modules/ibm_db/test/trace +51 -51
  194. package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
  195. package/node_modules/ibm_db/test/webapp.html +17 -17
  196. package/node_modules/ibm_db/test/webapp.js +79 -79
  197. package/node_modules/ibm_db/typescript/README.md +28 -28
  198. package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
  199. package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
  200. package/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +21 -0
  201. package/node_modules/string_decoder/node_modules/safe-buffer/README.md +584 -0
  202. package/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +187 -0
  203. package/node_modules/string_decoder/node_modules/safe-buffer/index.js +62 -0
  204. package/node_modules/string_decoder/node_modules/safe-buffer/package.json +37 -0
  205. package/node_modules/which-typed-array/CHANGELOG.md +14 -0
  206. package/node_modules/which-typed-array/README.md +0 -2
  207. package/node_modules/which-typed-array/index.d.ts +288 -11
  208. package/node_modules/which-typed-array/index.js +6 -7
  209. package/node_modules/which-typed-array/package.json +12 -11
  210. package/package.json +10 -11
  211. package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
  212. package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
  213. package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
  214. package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
  215. package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
  216. package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
  217. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
  218. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
  219. package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
  220. package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
  221. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
  222. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
  223. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
  224. package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
  225. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
  226. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
  227. package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
  228. package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
  229. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
  230. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
  231. package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
  232. package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
  233. package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
  234. package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
  235. package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
  236. package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
  237. package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
  238. package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
  239. package/node_modules/ibm_db/test/test-closed.js +0 -14
  240. package/node_modules/ibm_db/test/test-connection-object.js +0 -16
  241. package/node_modules/ibm_db/test/test-describe-column.js +0 -92
  242. package/node_modules/ibm_db/test/test-describe-database.js +0 -18
  243. package/node_modules/ibm_db/test/test-describe-table.js +0 -31
  244. package/node_modules/ibm_db/test/test-domains-open.js +0 -19
  245. package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
  246. package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
  247. package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
  248. package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
  249. package/node_modules/ibm_db/test/test-open-close.js +0 -29
  250. package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
  251. package/node_modules/ibm_db/test/test-openSync.js +0 -31
  252. package/node_modules/ibm_db/test/test-pool-close.js +0 -120
  253. package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
  254. package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
  255. package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
  256. package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
  257. package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
  258. package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
  259. package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
  260. package/node_modules/ibm_db/test/test-query-insert.js +0 -38
  261. package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
  262. package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
  263. package/node_modules/ibm_db/test/test-query-select.js +0 -64
  264. package/node_modules/ibm_db/test/test-queryResult.js +0 -35
  265. package/node_modules/ibm_db/test/test-queryStream.js +0 -43
  266. package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
  267. package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
  268. package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
  269. package/node_modules/ibm_db/test/test-statement-close.js +0 -118
  270. package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
  271. package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
  272. package/node_modules/which-typed-array/eslint.config.mjs +0 -12
  273. package/node_modules/which-typed-array/test/index.js +0 -105
  274. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/LICENSE +0 -0
  275. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/README.md +0 -0
  276. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/chownr.js +0 -0
  277. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/package.json +0 -0
  278. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/.travis.yml +0 -0
  279. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/LICENSE +0 -0
  280. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/README.md +0 -0
  281. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/lib/string_decoder.js +0 -0
  282. /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
+ }