Шаг 141 - Свойство FieldSize

Описание
Возвращает размер, используемый в базе данных (а не в памяти), для объекта 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
    

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 03.04.2002