| 1211 | } |
| 1212 | |
| 1213 | SQLRETURN SQLGetData(SQLHSTMT stmt, SQLUSMALLINT record_number, SQLSMALLINT c_type, |
| 1214 | SQLPOINTER data_ptr, SQLLEN buffer_length, SQLLEN* indicator_ptr) { |
| 1215 | // GH-46979 TODO: support SQL_C_GUID data type |
| 1216 | // GH-46980 TODO: support Interval data types |
| 1217 | // GH-46985 TODO: return warning message instead of error on float truncation case |
| 1218 | ARROW_LOG(DEBUG) << "SQLGetData called with stmt: " << stmt |
| 1219 | << ", record_number: " << record_number << ", c_type: " << c_type |
| 1220 | << ", data_ptr: " << data_ptr << ", buffer_length: " << buffer_length |
| 1221 | << ", indicator_ptr: " << static_cast<const void*>(indicator_ptr); |
| 1222 | |
| 1223 | using ODBC::ODBCStatement; |
| 1224 | |
| 1225 | return ODBCStatement::ExecuteWithDiagnostics(stmt, SQL_ERROR, [=]() { |
| 1226 | ODBCStatement* statement = reinterpret_cast<ODBCStatement*>(stmt); |
| 1227 | return statement->GetData(record_number, c_type, data_ptr, buffer_length, |
| 1228 | indicator_ptr); |
| 1229 | }); |
| 1230 | } |
| 1231 | |
| 1232 | SQLRETURN SQLMoreResults(SQLHSTMT stmt) { |
| 1233 | ARROW_LOG(DEBUG) << "SQLMoreResults called with stmt: " << stmt; |