Описание
Возвращает размер, используемый в базе данных (а не в памяти),
для объекта Field типа Memo или Long Binary, входящего в
семейство Fields объекта Recordset.
Значение
Возвращаемое значение имеет тип данных Long и указывает
число символов (для поля Memo) или размер в байтах (для поля типа Long
Binary).
Замечания
Свойство FieldSize используют вместе с методами
AppendChunk и GetChunk при работе с большими полями.
Поскольку
размеры полей типа Long Binary или Memo могут превышать
64 Кбайт, значение, возвращаемое в свойстве FieldSize, следует
присваивать переменной, способной сохранять значение типа Long.
Для
определения размеров объектов Field, типы которых отличаются от типов
Memo и Long Binary, используют свойство Size.
В рабочей
области ODBCDirect свойство FieldSize является недоступным в
следующих ситуациях:
1. Сервер базы данных или драйвер ODBC не
поддерживает указатели на стороне сервера.
2. При использовании библиотеки
указателей ODBC (т.е. при задании в свойстве DefaultCursorDriver
константы dbUseODBC, а также константы dbUseDefault, когда сервер
не поддерживает указатели на стороне сервера).
3. При использовании запроса
без указателя (т.е. при задании в свойстве DefaultCursorDriver константы
dbUseNoCursor).
Например, Microsoft SQL Server версии
4.21 не поддерживает указатели на стороне сервера, поэтому свойство
FieldSize является недоступным.
Пример
Следующая программа использует свойство FieldSize для отображения
количества байтов, используемых объектами Field типа Memo и
Long Binary в двух таблицах.
Sub FieldSizeX() Dim dbsNorthwind As Database Dim rstCategories As Recordset Dim rstEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") Set rstCategories = dbsNorthwind.OpenRecordset("Типы", dbOpenDynaset) Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset) Debug.Print "Размеры полей в таблице 'Типы'" With rstCategories Debug.Print " Категория - " & "Описание (байт) - Иллюстрация (байт)" ' Отображает объект Recordset 'Типы' и печатает размеры ' полей в байтах для каждой записи. Do While Not .EOF Debug.Print " " & !Категория & " - " & !Описание.FieldSize & " - " & !Иллюстация.FieldSize .MoveNext Loop .Close End With Debug.Print "Размеры полей в таблице 'Сотрудники'" With rstEmployees Debug.Print " Фамилия - Примечания (байт) - " & "Фотография (байт)" ' Отображает объект Recordset Сотрудники' и печатает размеры ' полей в байтах для каждой записи. Do While Not .EOF Debug.Print " " & !Фамилия & " - " & !Примечания.FieldSize & " - " & !Фотография.FieldSize .MoveNext Loop .Close End With dbsNorthwind.Close End Sub