fromPointer static method
Create an OracleStatement from an existing statement pointer (for REF CURSOR)
When executed is true (default), the statement is marked as executed,
which is required for REF CURSOR statements that are returned from
stored procedures with data ready to fetch.
Implementation
static OracleStatement fromPointer({
required DpiOracle dpiOracle,
required Pointer<dpiConn> connection,
required Pointer<dpiContext> context,
required Pointer<Pointer<dpiStmt>> statementPtr,
required MemoryManager memoryManager,
required String sql,
bool executed = true,
}) {
final stmt = OracleStatement._(
dpiOracle,
connection,
context,
statementPtr,
sql,
memoryManager,
);
stmt._executed = executed;
// For REF CURSOR, we need to get the column count from the statement
if (executed) {
final colCountPtr = memoryManager.allocate<Uint32>(sizeOf<Uint32>());
final result = dpiOracle.dpiStmt_getNumQueryColumns(
statementPtr.value,
colCountPtr,
);
if (result == DPI_SUCCESS) {
stmt._columnCount = colCountPtr.value;
}
}
return stmt;
}