@zowe/db2-for-zowe-cli 6.1.17 → 6.1.18

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