Определяет параметры настройки свойства для таблицы Visual FoxPro или курсора.

CURSORSETPROP( cProperty [, eExpression] [,cTableAlias | nWorkArea])

Параметры

cProperty


Определяет свойство таблицы или курсора. Буферизация - единственное свойство, которое Вы можете определить для таблицы Visual FoxPro.
eExpression


Определяет значение для свойства, которое Вы определяете с помощью cProperty . Если Вы опускаете eExpression , свойство устанавливается в значение по умолчанию. Следующая таблица перечисляет свойства, для которых Вы можете определить cProperty и описание значений, которые может принимать eExpression .

Свойство eExpression значения

AllowSimultaneousFetch

Применяется при использовании отдаленных представлений, разделяемого подключения, и к курсорам, созданным используя ODBC.

.T. - Разрешают аналогично конфигурированным курсорам, совместно использующим подключение, выбирать строки одновременно.

.F. - Не разрешают аналогично конфигурированным курсорам, совместно использующим подключение, выбирать строки одновременно.

AutoIncError

.T. - Генерируют сообщение об ошибке при попытке вставить или обновить значения поля, которое использует автоинкрементные значения.

.F. - Не генерирует сообщение об ошибке, но и не применяет заданное значение при попытке вставить или модифицировать автоинкрементное поле, которое использует соответствующее инкрементное значение.

применяется к курсорам и сессиям.

BatchUpdateCount*

Определяет количество инструкций модификации, чтобы послать отдаленному источнику данных для буферизированных таблиц. Значение по умолчанию - 1. Корректировка этого значения может значительно увеличить скорость выполнение модификации при использовании автоматического обновления.

Buffering

1 - Запрещает буферизацию таблицы и записи. Блокировка записей и запись данных идентичны ранним версиям FoxPro. (Значение по умолчанию)

2 - Устанавливает пессимистическую буферизацию для записей.

3 - Устанавливает оптимистическую буферизацию для записей.

4 - Устанавливает пессимистическую буферизацию для таблицы.

5 - Устанавливает оптимистическую буферизацию для таблицы. SET MULTILOCKS должен быть ON для всех режимов Buffering кроме 1 (запрещена).

CompareMemo

.T. - Включают memo-поля типа Memo, General, или Picture в предложение WHERE для модификаций.

.F. - не включают memo-поля в предложение WHERE для модификаций.

Относится к использованию автоматического обновления.

FetchAsNeeded

.T. - Выборка записей при необходимости, так что указатель записи перемещается на строку, которая не была выбрана.

.F. - Выборка дополнительных данных в течение времени простоя.

Обратите внимание:
FetchAsNeeded не применяется когда запрещена прогрессивная выборка(FetchSize - -1).

FetchMemo*

.T. - Выбирать memo-поля с передачей результатов в представления.

.F. - Не выбирать memo-поля с передачей результатов в представления.

FetchSize*

Определяет количество строк, прогрессивно выбранных из результатов выборки отдаленной таблицы. Значение по умолчанию - 100 строк. Установка FetchSize в -1 возвращает полную выборку результатов, ограниченную установкой MaxRecords.

Обратите внимание:
Прогрессивная выборка удерживает подключение, пока все строки не найдены. Проявите осмотрительность программируя с помощью FetchSize, если ShareConnection задан в Истину (.T)..

KeyFieldList

Определяет список первичных полей для курсора с разделителями-запятыми. Нет значений по умолчанию. Вы должны включить перечень имен полей для модификаций, чтобы работать при использовании автоматического обновления.

MapBinary

.T. - На сессионном уровне, SQL Pass-Through отображает SQL_BINARY, SQL_VARBINARY, и SQL_LONGVARBINARY ODBC типы в типе данных Varbinary или Blob .

Для отдаленных представлений, команда CREATE SQL VIEW приводит SQL_LONGVARBINARY ODBC тип источника данных к типу Blob , и приводит SQL_BINARY и SQL_VARBINARY ODBC типы источника данных к типу Varbinary , когда размер соответствующего столбца в источнике данных меньше или равен 254 байтам. Когда размер больше чем 254 байтов, эти типы приводятся к типу Blob .

.F. - SQL Pass-Through приводит SQL_BINARY и SQL_VARBINARY ODBC типы к типу Character . (Значение по умолчанию)

Для отдаленных представлений, команда CREATE SQL VIEW приводит SQL_BINARY и SQL_VARBINARY ODBC типы источника данных к типу Memo .

Обратите внимание:
MapBinary является read/write для nWorkArea установленному в 0, только для чтения для SQL Pass-Through курсоров, и недопустимый для курсоров таблицы ( nWorkArea равняется или больше чем 1).

MapVarchar

.T. - На сессионном уровне, SQL Pass-Through приводит SQL_WVARCHAR и SQL_VARCHAR ODBC типы к типу Varchar .

Для отдаленных представлений, команда CREATE SQL VIEW приводит SQL_WVARCHAR и SQL_VARCHAR ODBC типы источника данных к типу Varchar .

.F. - SQL Pass-Through приводит SQL_WVARCHAR и SQL_VARCHAR ODBC типы к типу Character . (Значение по умолчанию)

Для отдаленных представлений, команда CREATE SQL VIEW приводит SQL_WVARCHAR и SQL_VARCHAR ODBC типы источника данных к типу Character .

Обратите внимание:
MapVarchar является read/write для nWorkArea установленной в 0, только для чтения для SQL Pass-Through курсоров, и недопустимой для курсоров таблицы ( nWorkArea равняется или больше чем 1).

MaxRecords*

Определяет максимальное количество строк, выбранных при возвращении выборки результата. Значение по умолчанию - - 1, и все строки возвращены. Значение 0 определяет, что представление выполнено, но результатов не получено.

ParameterList

Определяет перечень параметров представления и типов параметров через точку с запятой. Только для представлений.

Prepared

.T. - Готовит инструкции SQL к последующему выполнению функции REQUERY( ) .

.F. - не готовит инструкции SQL к последующему выполнению функции REQUERY( ) . (Значение по умолчанию).

REQUERY( ) используется, чтобы отыскать данные для SQL представления повторно. Для дополнительной информации о подготовке инструкций SQL, см. SQLPREPARE( ) Функция .

Refresh

Определяет числовое значение обновления для индивидуального курсора в текущем сеансе данных или начальное значение обновления для недавно открытых курсоров в текущем сеансе данных.

Используйте Команду  SET DATASESSION для выбора определенной сессии данных, и используйте параметр cTableAlias ИЛИ nWorkArea, чтобы задать определенный курсор. Используйте nWorkArea = 0, чтобы изменить начальное значение обновления для всех недавно открытых курсоров. Любые курсоры, которые являются уже открытыми, не будет затрагивать новая установка обновления.

Команда SET REFRESH позволяет Вам определять глобальное значение обновления. По умолчанию, установка обновления CURSORSETPROP( ) - -2, которая указывает, что используется текущее глобальное значение SET REFRESH. Глобальное значение SET REFRESH определено его вторым параметром, nSeconds2 .

Вы можете установить параметр обновления CURSORSETPROP( ), устанавливающий те же самые значения как и параметр nSeconds2 в SET REFRESH.

Примечание Установка обновления CURSORSETPROP( ) будет игнорироваться если текущее значение параметра nSeconds2 установлено в нуль командой SET REFRESH.

SendUpdates

.T. - Определяет, что посылается SQL запрос на модификацию, чтобы обновить таблицы, когда модификация исполняется через представление.

.F. - Определяет, что не посылается SQL запрос на модификацию для обновления таблицы.

Таблицы

Определяет список с разделителями-запятыми, состоящий из имен отдаленных таблиц. Нет значения по умолчанию. Вы должны включить список имен таблиц для модификаций, чтобы работать при использовании автоматического обновления.

UpdatableFieldList

Определяет список с разделителями-запятыми, состоящий из полей в представлении. Этот список может включать поля из локальных и отдаленных таблиц. Вы должны включить список полей для модификаций, чтобы работать при использовании автоматического обновления.

UpdateNameList

Определяет список с разделителями-запятыми, состоящий из отдаленных имен полей и локальных имен полей, присвоенных курсору. Используйте эту опцию, чтобы определить допустимые имена Visual FoxPro для полей в курсоре, которые имеют недопустимые имена полей для Visual FoxPro.

UpdateType

1 - Обновляет старые данные с новыми данными. (Значение по умолчанию)

2 - Обновляет, удаляя старые данные и вставляя новые данные.

UseMemoSize*

Определяет минимальный размер в байтах для столбцов результата, чтобы возвратить его в memo-полях. Например, если ширина колонки результата больше чем значение UseMemoSize, колонка результата сохраняется в memo-поле. UseMemoSize может принимать значения от 1 до 255 байтов. Значение по умолчанию - 255 байтов.

WhereType

WHERE - предложение для модификаций отдаленных таблиц. WhereType может принимать следующие значения:

1 или DB_KEY (из FOXPRO.H). Предложение WHERE используется, чтобы обновить отдаленные таблицы, состоящие только из первичных полей, указанных в свойстве KeyFieldList.

2 или DB_KEYANDUPDATABLE (из FOXPRO.H). Предложение WHERE используется, чтобы обновить отдаленные таблицы, состоящие из первичных полей, указанных в свойстве KeyFieldList и любые обновляемые поля.

3 или DB_KEYANDMODIFIED (из FOXPRO.H). Предложение WHERE используется, чтобы обновить отдаленные таблицы, состоящие из первичных полей, указанных в свойстве KeyFieldList и любые другие поля, которые модифицируются. (Значение по умолчанию)

4 или DB_KEYANDTIMESTAMP (из FOXPRO.H). WHERE - предложение, используемое, чтобы обновить отдаленные таблицы, состоящие из первичных полей, указанных в свойстве KeyFieldList и сравнить временнЫе метки.

* Это свойство прежде всего используется для отдаленных представлений; эта установка не имеет никакого влияния на локальные представления. Однако, Вы можете предварительно установить это свойство для локальных представлений, которые будут переноситься (для работы в качестве отдаленных - ред.).
cTableAlias


Определяет псевдоним таблицы или курсора, для которого установлено свойство.
nWorkArea


Определяет рабочую область таблицы или курсора, для которого установлено свойство. Если Вы определяете 0 для nWorkArea , CURSORSETPROP( ) устанавливает параметры среды окружения, используемые для всех последующих таблиц или курсоров.
Обратите внимание:
Буферизация не применяется к таблицам, которые открыты неявно, например, используя команды SQL INSERT/UPDATE/DELETE.

Возвращаемое значение

Логический тип данных. CURSORSETPROP( ) Возвращает Истину (.T). если Visual FoxPro успешно устанавливает свойство, которое Вы определяете. Visual FoxPro генерирует ошибку, если свойство, которое Вы определяете, не может быть установлено.

Замечания

Установка свойства Буферизации для CURSORSETPROP( ) определяет, как Visual FoxPro исполняет буферизацию модификации и блокировку записей. Для дополнительной информации о блокировке записей и буферизации модификации, см. Как: Буферизовать Данные .

Установка свойства WhereType для CURSORSETPROP( ) определяет, как выполняются модификации отдаленных таблиц. Для дополнительной информации о модификациях отдаленных таблицы, см. Разработка Баз данных .

Вы можете использовать CURSORSETPROP( ) чтобы отменять свойство FetchSize функции SQLSETPROP( ) для курсора. Это свойство унаследовано от дескриптора подключения курсора по умолчанию.

Используйте CURSORGETPROP( ) для возвращения текущих параметров настройки свойств для таблицы Visual FoxPro или курсора, созданного к таблице.

Если CURSORSETPROP( ) применяется без дополнительных параметров cTableAlias или nWorkArea , установка свойства определена для таблицы или курсора, открытых в выбранной рабочей области.

Пример

Когда курсор открыт, значение по умолчанию для свойства AutoIncError считывается из значения по умолчанию для сессии, и является текущей заданной по умолчанию установкой сессии данных. Следующий пример показывает, как Вы можете установить заданное по умолчанию значение AutoIncError для каждой сессии, определяя 0 (заданная по умолчанию сессия) в качестве последнего параметра:

Скопировать код
CURSORSETPROP("AutoIncError", .T., 0)

Заданная по умолчанию сессия используется при открытии новой частной сессии данных или курсора. Следующий пример показывает, как Вы можете установить AutoIncError для курсора или таблицы для каждой таблицы, используя параметр cTableAlias или nWorkArea как последний параметр:

Скопировать код
CURSORSETPROP("AutoIncError", .F. , cTableAlias | nWorkArea )

Следующий пример демонстрирует, как Вы можете разрешить оптимистическую буферизацию таблицы с помощью CURSORSETPROP( ) . MULTILOCKS установлен в ON , требование для буферизации таблицы. Открыта таблица "Клиенты" в базе данных "testdata" , и применяется CURSORSETPROP( ) , чтобы установить режим буферизации в оптимистическую буферизацию таблиц (5). Выводится окно сообщения, показывая результат операции.

Скопировать код
CLOSE DATABASES
CLEAR
SET MULTILOCKS ON
OPEN DATABASE (HOME(2) + 'data\testdata')
USE Customer && Open Customer table.
* Set buffering mode and store logical result
lSuccess=CURSORSETPROP("Buffering", 5, "Customer")
IF lSuccess = .T.
=MESSAGEBOX("Operation successful!",0,"Operation Status")
ELSE
=MESSAGEBOX("Operation NOT successful!",0,"Operation Status")
ENDIF

См. Также