The GetColumnSQLVARIANT method retrieves a sql_variant column as an array of bytes.
object.GetColumnSQLVARIANT(
Row ,
Column ) as Byte
object
Expression that evaluates to an object in the Applies To list
Row
Long integer that identifies a row by ordinal position
Column
Long integer that identifies a column by ordinal position
HRESULT GetColumnSQLVARIANT(
long lRow,
long lColumn,
LPVOID *pvData);
A sql_variant representation of the value of a QueryResults2 object result set member
GetColumnSQLVARIANT returns the contents of a sql_variant column in a typeless form. An application written in C++ can then cast the contents of the array into the required data type.
Prior to calling GetColumnSQLVARIANT, call GetColumnSQLVARIANTDataType to retrieve the underlying data type of the specified sql_variant column, and then call the GetColumnSQLVARIANTLength method to determine the number of bytes in the column.
//Retrieve the underlying data type and number of bytes in the column.
//Then return the contents of the column.
SQLDMO_BSTR str;
Long lLen;
Void * pRetVal;
pQueryRes2out->GetColumnSQLVARIANTDataType(0, 0, _T("T1"), &str);
pQueryRes2out->GetColumnSQLVARIANTLength(0, 0, _T("T1"), &lLen);
pQueryRes2out->GetColumnSQLVARIANT(0, 0, &pRetVal);
_tprintf(TEXT("%s\n"), (TCHAR *)pRetVal);
CoTaskMemFree(pRetVal);
Note If an application calls GetColumnSQLVARIANT on an instance of SQL Server version 7.0, the constant, SQLDMO_E_SQL80ONLY, and the message "This property or method requires Microsoft SQL Server 2000" are returned.