Шаг 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
Hosted by uCoz