Метод Api.JetEnumerateColumns
Эффективно извлекает набор столбцов и их значения из текущей записи курсора или буфера копирования этого курсора. Полученные столбцы и значения могут быть ограничены списком идентификаторов столбцов, номерами itagSequence и другими характеристиками. Этот API извлечения столбцов уникален тем, что он возвращает сведения в динамически выделенной памяти, полученной с помощью предоставленного пользователем обратного вызова, совместимого с realloc. Эта новая гибкость позволяет эффективно извлекать данные столбцов с определенными характеристиками (такими как размер и кратность), которые неизвестны вызывающей объекту. Это избавляет от необходимости использовать режимы обнаружения JetRetrieveColumn для определения этих характеристик, чтобы настроить окончательный вызов JetRetrieveColumn, который будет успешно извлекать нужные данные.
Этот API несовместим с CLS.
Пространство имен:Microsoft.Isam.Esent.Interop
Сборки: Microsoft.Isam.Esent.Interop (в Microsoft.Isam.Esent.Interop.dll)
Синтаксис
'Declaration
<CLSCompliantAttribute(False)> _
Public Shared Function JetEnumerateColumns ( _
sesid As JET_SESID, _
tableid As JET_TABLEID, _
numColumnids As Integer, _
columnids As JET_ENUMCOLUMNID(), _
<OutAttribute> ByRef numColumnValues As Integer, _
<OutAttribute> ByRef columnValues As JET_ENUMCOLUMN(), _
allocator As JET_PFNREALLOC, _
allocatorContext As IntPtr, _
maxDataSize As Integer, _
grbit As EnumerateColumnsGrbit _
) As JET_wrn
'Usage
Dim sesid As JET_SESID
Dim tableid As JET_TABLEID
Dim numColumnids As Integer
Dim columnids As JET_ENUMCOLUMNID()
Dim numColumnValues As Integer
Dim columnValues As JET_ENUMCOLUMN()
Dim allocator As JET_PFNREALLOC
Dim allocatorContext As IntPtr
Dim maxDataSize As Integer
Dim grbit As EnumerateColumnsGrbit
Dim returnValue As JET_wrn
returnValue = Api.JetEnumerateColumns(sesid, _
tableid, numColumnids, columnids, _
numColumnValues, columnValues, allocator, _
allocatorContext, maxDataSize, grbit)
[CLSCompliantAttribute(false)]
public static JET_wrn JetEnumerateColumns(
JET_SESID sesid,
JET_TABLEID tableid,
int numColumnids,
JET_ENUMCOLUMNID[] columnids,
out int numColumnValues,
out JET_ENUMCOLUMN[] columnValues,
JET_PFNREALLOC allocator,
IntPtr allocatorContext,
int maxDataSize,
EnumerateColumnsGrbit grbit
)
Параметры
sesid
Тип: Microsoft.Isam.Esent.Interop.JET_SESIDИспользуемый сеанс.
tableid
Тип: Microsoft.Isam.Esent.Interop.JET_TABLEIDКурсор, из которого извлекаются данные.
numColumnids
Тип: System.Int32Число JET_ENUMCOLUMNIDS.
columnids
Тип: []Необязательный массив идентификаторов столбцов, каждый из которых содержит необязательный массив чисел itagSequence для перечисления.
numColumnValues
Тип: System.Int32Возвращает количество полученных значений столбцов.
columnValues
Тип: []Возвращает значения перечисленного столбца.
allocator
Тип: Microsoft.Isam.Esent.Interop.JET_PFNREALLOCОбратный вызов, используемый для выделения памяти.
allocatorContext
Тип: System.IntPtrКонтекст для обратного вызова выделения.
maxDataSize
Тип: System.Int32Устанавливает ограничение на объем данных, возвращаемых из длинного текста или длинного двоичного столбца. Этот параметр можно использовать для предотвращения перечисления очень большого значения столбца.
grbit
Тип: Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbitПолучение параметров.
Возвращаемое значение
Тип: Microsoft.Isam.Esent.Interop.JET_wrn
Предупреждение или успешное выполнение.