@miatechnet/node-odbc 2.4.17 → 2.4.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/lib/odbc.d.ts +3 -3
- package/package.json +1 -1
- package/src/odbc_connection.cpp +38 -0
package/lib/odbc.d.ts
CHANGED
|
@@ -91,8 +91,8 @@ declare namespace odbc {
|
|
|
91
91
|
query<T, O extends QueryOptions>(sql: string, options: O, callback: (error: NodeOdbcError, result: O extends CursorQueryOptions ? Cursor : Result<T>) => undefined): undefined;
|
|
92
92
|
query<T, O extends QueryOptions>(sql: string, parameters: Array<number|string>, options: O, callback: (error: NodeOdbcError, result: O extends CursorQueryOptions ? Cursor : Result<T>) => undefined): undefined;
|
|
93
93
|
|
|
94
|
-
callProcedure<T>(catalog: string|null, schema: string|null, name: string, callback: (error: NodeOdbcError, result: Result<T
|
|
95
|
-
callProcedure<T>(catalog: string|null, schema: string|null, name: string, parameters: Array<number|string>, callback: (error: NodeOdbcError, result: Result<T
|
|
94
|
+
callProcedure<T>(catalog: string|null, schema: string|null, name: string, callback: (error: NodeOdbcError, result: Array<Result<T>>) => undefined): undefined;
|
|
95
|
+
callProcedure<T>(catalog: string|null, schema: string|null, name: string, parameters: Array<number|string>, callback: (error: NodeOdbcError, result: Array<Result<T>>) => undefined): undefined;
|
|
96
96
|
|
|
97
97
|
createStatement(callback: (error: NodeOdbcError, statement: Statement) => undefined): undefined;
|
|
98
98
|
|
|
@@ -122,7 +122,7 @@ declare namespace odbc {
|
|
|
122
122
|
query<T, O extends QueryOptions>(sql: string, options: O): O extends CursorQueryOptions ? Promise<Cursor> : Promise<Result<T>>;
|
|
123
123
|
query<T, O extends QueryOptions>(sql: string, parameters: Array<number|string>, options: O): O extends CursorQueryOptions ? Promise<Cursor> : Promise<Result<T>>;
|
|
124
124
|
|
|
125
|
-
callProcedure<T>(catalog: string|null, schema: string|null, name: string, parameters?: Array<number|string>): Promise<Result<T
|
|
125
|
+
callProcedure<T>(catalog: string|null, schema: string|null, name: string, parameters?: Array<number|string>): Promise<Array<Result<T>>>;
|
|
126
126
|
|
|
127
127
|
createStatement(): Promise<Statement>;
|
|
128
128
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miatechnet/node-odbc",
|
|
3
3
|
"description": "unixodbc bindings for node - Fork with multi-result set support for stored procedures",
|
|
4
|
-
"version": "2.4.
|
|
4
|
+
"version": "2.4.19",
|
|
5
5
|
"homepage": "https://github.com/ppimentela/node-odbc/",
|
|
6
6
|
"main": "lib/odbc.js",
|
|
7
7
|
"types": "lib/odbc.d.ts",
|
package/src/odbc_connection.cpp
CHANGED
|
@@ -1887,6 +1887,25 @@ class CallProcedureAsyncWorker : public ODBCAsyncWorker {
|
|
|
1887
1887
|
return;
|
|
1888
1888
|
}
|
|
1889
1889
|
|
|
1890
|
+
// Skip result sets with no columns (e.g., from INSERT/UPDATE/SET statements)
|
|
1891
|
+
if (data->column_count == 0) {
|
|
1892
|
+
// No columns means this is not a SELECT-like result set, skip it
|
|
1893
|
+
return_code = SQLMoreResults(data->hstmt);
|
|
1894
|
+
if (return_code == SQL_NO_DATA) {
|
|
1895
|
+
hasMoreResults = false;
|
|
1896
|
+
} else if (!SQL_SUCCEEDED(return_code)) {
|
|
1897
|
+
this->errors = GetODBCErrors(SQL_HANDLE_STMT, data->hstmt);
|
|
1898
|
+
SetError("[odbc] Error getting more results\0");
|
|
1899
|
+
return;
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
// Set fetch size for the next result set
|
|
1903
|
+
if (hasMoreResults) {
|
|
1904
|
+
set_fetch_size(data, data->fetch_size);
|
|
1905
|
+
}
|
|
1906
|
+
continue;
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1890
1909
|
// Obtener todos los datos del result set actual
|
|
1891
1910
|
return_code = fetch_all_and_store(
|
|
1892
1911
|
data,
|
|
@@ -1988,6 +2007,25 @@ class CallProcedureAsyncWorker : public ODBCAsyncWorker {
|
|
|
1988
2007
|
data->bound_columns = NULL;
|
|
1989
2008
|
data->row_status_array = NULL;
|
|
1990
2009
|
|
|
2010
|
+
// Set metadata properties on the outer allResults array for backward compatibility
|
|
2011
|
+
if (data->sql != NULL) {
|
|
2012
|
+
#ifdef UNICODE
|
|
2013
|
+
allResults.Set(Napi::String::New(env, STATEMENT), Napi::String::New(env, (const char16_t*)data->sql));
|
|
2014
|
+
#else
|
|
2015
|
+
allResults.Set(Napi::String::New(env, STATEMENT), Napi::String::New(env, (const char*)data->sql));
|
|
2016
|
+
#endif
|
|
2017
|
+
} else {
|
|
2018
|
+
allResults.Set(Napi::String::New(env, STATEMENT), env.Null());
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
if (napiParameters.IsEmpty()) {
|
|
2022
|
+
allResults.Set(Napi::String::New(env, PARAMETERS), env.Undefined());
|
|
2023
|
+
} else {
|
|
2024
|
+
allResults.Set(Napi::String::New(env, PARAMETERS), napiParameters.Value());
|
|
2025
|
+
}
|
|
2026
|
+
|
|
2027
|
+
allResults.Set(Napi::String::New(env, RETURN), env.Undefined());
|
|
2028
|
+
|
|
1991
2029
|
std::vector<napi_value> callbackArguments;
|
|
1992
2030
|
callbackArguments.push_back(env.Null());
|
|
1993
2031
|
callbackArguments.push_back(allResults);
|