Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions cpp/src/arrow/flight/sql/odbc/odbc_impl/odbc_statement.cc
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,14 @@ void ODBCStatement::GetStmtAttr(SQLINTEGER statement_attribute, SQLPOINTER outpu
return;
case SQL_ATTR_PARAM_BIND_TYPE:
current_apd_->GetHeaderField(SQL_DESC_BIND_TYPE, output, buffer_size, str_len_ptr);
if (output) {
// Convert SQLINTEGER output to SQLULEN, since SQL_DESC_BIND_TYPE is SQLINTEGER
// and SQL_ATTR_PARAM_BIND_TYPE is SQLULEN
SQLINTEGER* output_int_ptr = reinterpret_cast<SQLINTEGER*>(output);
SQLINTEGER output_int = *output_int_ptr;
SQLULEN* typed_output = reinterpret_cast<SQLULEN*>(output);
*typed_output = static_cast<SQLULEN>(output_int);
}
return;
case SQL_ATTR_PARAM_OPERATION_PTR:
current_apd_->GetHeaderField(SQL_DESC_ARRAY_STATUS_PTR, output, buffer_size,
Expand All @@ -422,6 +430,14 @@ void ODBCStatement::GetStmtAttr(SQLINTEGER statement_attribute, SQLPOINTER outpu
return;
case SQL_ATTR_ROW_BIND_TYPE:
current_ard_->GetHeaderField(SQL_DESC_BIND_TYPE, output, buffer_size, str_len_ptr);
if (output) {
// Convert SQLINTEGER output to SQLULEN, since SQL_DESC_BIND_TYPE is SQLINTEGER
// and SQL_ATTR_ROW_BIND_TYPE is SQLULEN
SQLINTEGER* output_int_ptr = reinterpret_cast<SQLINTEGER*>(output);
SQLINTEGER output_int = *output_int_ptr;
SQLULEN* typed_output = reinterpret_cast<SQLULEN*>(output);
*typed_output = static_cast<SQLULEN>(output_int);
}
return;
case SQL_ATTR_ROW_OPERATION_PTR:
current_ard_->GetHeaderField(SQL_DESC_ARRAY_STATUS_PTR, output, buffer_size,
Expand Down
Loading
Loading