Module: wine Branch: master Commit: 2690984822a8462aef5ad0b15aaf27a982f4f8ae URL: https://gitlab.winehq.org/wine/wine/-/commit/2690984822a8462aef5ad0b15aaf27a...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Wed Nov 8 20:01:28 2023 +1100
msdasql: IColumnsRowset::GetAvailableColumns return 3 meta columns to allow updating of a row.
---
dlls/msdasql/session.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/msdasql/session.c b/dlls/msdasql/session.c index 056468f1054..1aa1132f40a 100644 --- a/dlls/msdasql/session.c +++ b/dlls/msdasql/session.c @@ -1202,6 +1202,7 @@ static ULONG WINAPI column_rs_Release(IColumnsRowset *iface) static HRESULT WINAPI column_rs_GetAvailableColumns(IColumnsRowset *iface, DBORDINAL *count, DBID **columns) { struct msdasql_rowset *rowset = impl_from_IColumnsRowset( iface ); + const DBORDINAL extra_columns = 3;
TRACE("%p, %p, %p\n", rowset, count, columns);
@@ -1209,7 +1210,14 @@ static HRESULT WINAPI column_rs_GetAvailableColumns(IColumnsRowset *iface, DBORD return E_INVALIDARG;
*count = 0; - *columns = NULL; + *columns = CoTaskMemAlloc(sizeof(DBID) * extra_columns); + if (!*columns) + return E_OUTOFMEMORY; + + *count = extra_columns; + *columns[0] = DBCOLUMN_BASETABLENAME; + *columns[1] = DBCOLUMN_BASECOLUMNNAME; + *columns[2] = DBCOLUMN_KEYCOLUMN;
return S_OK; }