Задает установки свойств для таблицы или курсора Visual FoxPro.
Синтаксис:
CURSORSETPROP(cProperty [, eExpression] [, cTableAlias | nWorkArea])
Параметры:
cProperty
Задает свойство таблицы или курсора, которое следует установить. Необходимо отметить, что для таблицы Visual FoxPro можно задать только одно свойство Buffering (буферизация).
eExpression
Задает значение для свойства, указанного аргументом cProperty. Если выражение eExpression опущено, значение свойства устанавливается по умолчанию.
В следующем списке перечислены свойства, которые можно указать в аргументе cProperty, и описания значений, которые может принимать eExpression:
- BatchUpdateCount - Число операторов обновления, передаваемых на сервер для буферизованных таблиц. По умолчанию принимается значение 1. Изменяя это значение, вы можете заметно повысить производительность процесса обновления.
- Buffering - 1 - Отключает буферизацию строк и таблиц. Блокировка записей и запись данных осуществляются точно так же, как и в предыдущих версиях Visual FoxPro. 2 - Включает жесткую буферизацию строк. 3 - Включает мягкую буферизацию строк. 4 - Включает жесткую буферизацию таблицы. 5 - Включает мягкую буферизацию таблицы.Необходимо установить командой SET MULTILOCKS значение ON для всех режимов буферизации, за исключением 1 (значение OFF).По умолчанию принимается значение 1.
- FetchMemo - .T. - Вместе с результатами представления выбираются memo-поля. .F. - Memo-поля не выбираются вместе с результатами представления.
- FetchSize - Число строк, выбранных поочередно из результирующего множества удаленной таблицы. По умолчанию берется 100 строк. Установка FetchSize в -1 возвращает полное результирующее множество (ограниченное установкой MaxRecords).
- KeyFieldList - Список первичных полей для курсора через запятую.Значений по умолчанию нет. Список имен должен быть включен обязательно.
- MaxRecords - Максимальное число выбранных строк в случае, когда возвращаются результирующие множества. По умолчанию принимается - 1 (возвращаются все строки). Значение 0 указывает, что представление выполнено, но никакие результаты не выбраны.
- SendUpdates - .T. - Указывает, что послан запрос SQL на обновление удаленных таблиц. .F. - Указывает, что запрос SQL на обновление удаленных таблиц не послан.
- Tables - Список имен удаленных таблиц через запятую.Значений по умолчанию нет. Список имен должен быть включен обязательно.
- UpdatableFieldList - Список (через запятую) имен удаленных полей и имен локальных полей, назначенных курсору. Данную опцию следует использовать, когда нужно задать допустимые имена Visual FoxPro для полей в курсоре, содержащем недопустимые имена полей Visual FoxPro.
- UpdateType - 1 - Указывает, что старые данные обновляются новыми.2 - Указывает, что обновление состоит в удалении старых данных и вставке новых.По умолчанию принимается значение 1.
- UseMemoSize - Задает минимальный размер (в байтах) результирующих столбцов, при котором они возвращаются в memo-полях. Например, если ширина столбца-результата больше значения UseMemoSize, этот столбец сохраняется в memo-поле. Величина UseMemoSize может варьироваться в диапазоне от 1 дo 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, и сравнений полей Timestamp.Подробнее о свойстве WhereType см. главу 8 "Создание многотабличных представлений" Руководства разработчика.
cTableAlias
Задает псевдоним таблицы или курсора, для которого устанавливается значение свойства.
nWorkArea
Задает рабочую область таблицы или курсора, для которого устанавливается значение свойства. Если вы задаете 0 для nWorkArea, CURSORSETPROP( ) устанавливает свойства для всех последующих таблиц и курсоров.
Результат:
Логический
Комментарии:
Функция CURSORSETPROP( ) возвращает значение "истина" (.T.), если Visual FoxPro успешно устанавливает заданное свойство. Если указанное свойство установить не удается, Visual FoxPro генерирует ошибку.
Значение свойства Buffering в функции CURSORSETPROP( ) определяет, каким образом Visual FoxPro выполняет блокировку записей и буферизацию обновлений. Подробнее о том, как свойство Buffering влияет на блокировку записей и буферизацию обновлений, см. тему Буферизация доступа к данным и главу 19 "Программирование совместного доступа к данным" Руководства разработчика.
Значение свойства WhereType в функции CURSORSETPROP( ) определяет, как выполняется обновление в удаленных таблицах. Подробнее об обновлении удаленных таблиц см. главу 6 "Применение баз данных" Руководства разработчика.
С помощью функции CURSORSETPROP( ) можно отменить значение свойства FetchSize, установленное для курсора функцией SQLSETPROP( ). Данное свойство по умолчанию наследуется из номера соединения данного курсора.
Пользуйтесь функцией CURSORGETPROP( ) для возвращения текущих установок свойств таблицы Visual FoxPro или курсора, созданного для таблицы.
Если функция CURSORSETPROP( ) выдается без необязательных аргументов cTableAlias или nWorkArea, установка свойства задается для таблицы или курсора, открытых в выбранной в данный момент рабочей области.
Пример:
* В следующем примере показано, как установить мягкую буферизацию с
* помощью CURSORSETPROP( ). Команда SET MULTILOCKS устанавливается
* в ON, это требование буферизации. Открывается таблица customer в базе
* данных testdata, затем вызывается функция CURSORSETPROP( ) для
* установки мягкой буферизации (5). Если такая буферизация возможна,
* результатом будет "истина" (.T.), в противном случае "ложь" (.F.).
CLOSE DATABASES
SET MULTILOCKS ON
SET PATH TO (HOME( ) + 'samples\data\') && Sets path to database
OPEN DATABASE testdata && Open testdata database
USE customer && Open customer table
CLEAR
? CURSORSETPROP('Buffering', 5, 'customer') && Sets buffering mode