From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- 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..4e30baded93 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 exta_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) * exta_columns); + if (!*columns) + return E_OUTOFMEMORY; + + *count = exta_columns; + *columns[0] = DBCOLUMN_BASETABLENAME; + *columns[1] = DBCOLUMN_BASECOLUMNNAME; + *columns[2] = DBCOLUMN_KEYCOLUMN;
return S_OK; }