CursorAdapter. Свойства, методы, события.
СвойстваМетодыСобытия
Alias AddProperty AfterCursorAttach
AllowDelete Attach AfterCursorClose
AllowInsert AutoOpen AfterCursorDetach
AllowSimultaneousFetch CursorAttach AfterCursorFill
AllowUpdate CursorDetach AfterCursorRefresh
Application CursorFill AfterCursorUpdate
BaseClass CursorRefresh AfterDelete
BatchUpdateCount ReadExpression AfterInsert
BreakOnError ReadMethod AfterUpdate
BufferModeOverride ResetToDefault BeforeCursorAttach
Class   WriteExpression
ClassLibrary   BeforeCursorClose
Comment   BeforeCursorDetach
CompareMemo   BeforeCursorFill
ConversionFunc   BeforeCursorRefresh
CursorSchema   BeforeCursorUpdate
CursorStatus   BeforeDelete
DataSource   BeforeInsert
DataSourceType   BeforeUpdate
DeleteCmd   Destroy
DeleteCmdDataSource   Error
DeleteCmdDataSourceType   Init
FetchAsNeeded    
FetchMemo    
FetchSize    
Flags    
InsertCmd    
InsertCmdDataSource    
InsertCmdDataSourceType    
KeyFieldList    
MaxRecords    
Name    
Parent    
ParentClass    
Prepared    
SelectCmd    
SendUpdates    
Tables    
Tag    
UpdateCmd    
UpdateCmdDataSource    
UpdateCmdDataSourceType    
UpdatableFieldList    
UpdateGram    
UpdateGramSchemaLocation    
UpdateNameList    
UpdateType    
UseDeDataSource    
UseMemoSize    
WhereType    
ConflictCheckType (VFP9)    
ConflictCheckCmd (VFP9)    
MapVarchar (VFP9)    
MapBinary (VFP9)    
UseCursorSchema (VFP9)    
NoData (VFP9)    

Таблица свойств CursorAdapter класса.

Наименование свойства Описание
Alias

Alias для курсора сгенерированного с использованием значения свойства SelectCmd. Использование свойства Alias по поведению совпадает с поведением при использовании опции ALIAS в команде USE.

Синтаксис:

CursorAdapter.Alias [= cText]
возврат к списку PEM
AllowDelete

Определяет будут-ли разрешены операции удаления в отношении источника данных. Read/write в design и run time. Примечание: AllowDelete не влияет на возможность удаления строк в самом курсор-адаптере.

Синтаксис:

CursorAdapter.AllowDelete [ = lValue ]

lValue - логический тип данных.

Значение Описание Default
True Разрешает операции удаления. (Используется по-умолчанию) Когда свойству DeleteCmd CursorAdapter'а присвоена пустая строка (""), Visual FoxPro генерирует команду SQL DELETE автоматически. (.T.)
False Запрещает операции удаления.
возврат к списку PEM
AllowInsert

Определяет будут-ли разрешены операции вставки в отношении источника данных. Read/write в design и run time.

Примечание: AllowInsert не влияет на возможность вставки строк в самом курсор-адаптере.

Синтаксис:

CursorAdapter.AllowInsert [ = lValue ]

lValue - логический тип данных.

Значение Описание Default
True Разрешает операции вставки. (Используется по-умолчанию) Когда свойству InsertCmd CursorAdapter'а присвоена пустая строка (""), Visual FoxPro генерирует команду SQL INSERT автоматически. (.T.)
False Запрещает операции вставки.
возврат к списку PEM
AllowSimultaneousFetch

Определяет - будет-ли использована одновременная ввыборка для курсоров Open Database Connectivity (ODBC) при совместном использовании ими соединения. Read/write в design и run time.

Note - AllowSimultaneousFetch применимо только если свойство DataSourceType объекта CursorAdapter установлено в "ODBC". Если ассоциированное соединение не предназначено для совместного (shared) использования установка AllowSimultaneousFetch не имеет действия.

Синтаксис:

CursorAdapter.AllowSimultaneousFetch [= lValue]

lValue - логический тип данных.

Значение Описание Default
True При использовании распределенного соединения, одинаково сконфигурированным курсорам, которые совместно используют это соединение разрешена одновременная выборка строк из источника данных. (.F.)
False Если же установлено в .F., то курсорам запрещено одновременно выбирать данные из источника данных. (Используется по умолчанию).

Примечание: представления, созданные в 8-й версии, несовместимы с представлениями VFP более ранних версий.

возврат к списку PEM
AllowUpdate

Определяет будут-ли разрешены операции обновления в отношении источника данных. Read/write в design и run time. Примечание: AllowUpdate не влияет на возможность обновления строк в самом курсор-адаптере.

Синтаксис:

CursorAdapter.AllowUpdate [ = lValue ]

lValue - логический тип данных.

Значение Описание Default
True Разрешает операции обновления. (Используется по-умолчанию) Когда свойству InsertCmd CursorAdapter'а присвоена пустая строка (""), Visual FoxPro генерирует команду SQL UPDATE автоматически. (.T.)
False Запрещает операции обновления.
возврат к списку PEM
Application То же самое, что и для всех классов VFP.
возврат к списку PEM
BaseClass То же самое, что и для всех классов VFP.
возврат к списку PEM
BatchUpdateCount

Определяет число команд обновления посылаемых удаленному источнику данных буфферированных таблиц. Read/write. Установка значения свойства может заметно повысить производительность автоматического обновления источника данных.

Замечание: Установка значения BatchUpdateCount для объекта CursorAdapter переписывает одноименное свойство у курсора, если он связан с объектом CursorAdapter. Поэтому, изменения одноменного свойства у связанного курсора посредством CURSORSETPROP() не будет иметь никакого воздействия на поведение связанного курсора.

Синтаксис:

CursorAdapter.BatchUpdateCount [ = nValue]

nValue - численный тип данных. Величина по-умолчанию равна 1.

Примечание: BatchUpdateCount используется с объектами CursorAdapter только в том случае, когда тип источника данных для команд SQL INSERT, UPDATE, и DELETE является одним из перечисленных:

"ODBC"
Дополнительно, один и тот же хэндл соединения может быть использован в качестве источника для команд SQL INSERT, UPDATE и DELETE.

Замечание: Источник данных и его тип могут быть наследованы из свойств DataSource и DataSourceType как объекта CursorAdapter, так и объекта DataEnvironment.

"ADO"
Один и тот же объект ADODB Command должен быть использован как источник данных SQL INSERT, UPDATE и DELETE commands. Рекомендуется, чтобы вы точно установили свойства InsertCmdDataSource, InsertCmdDataSourceType, UpdateCmdDataSource, UpdateCmdDataSourceType, DeleteCmdDataSource и DeleteCmdDataSourceType, так как наследование не работает в этом сценарии.

"XML"
Рекомендуется, чтобы вы точно установили свойства InsertCmdDataSource, InsertCmdDataSourceType, UpdateCmdDataSource, UpdateCmdDataSourceType, DeleteCmdDataSource и DeleteCmdDataSourceType, так как наследование не работает в этом сценарии.

Если свойству BatchUpdateCount присвоено значение больше, чем единица (1), Visual FoxPro обновляет порции исполнением команды содержащейся в свойстве UpdateCmd один раз на порцию.

Замечание. Если используется пакетное обновление, то события BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate, BeforeDelete, и AfterDelete не срабатывают. Если обновление не случилось для целой порции, Visual FoxPro попытается послать отдельные обновления для строки в пакете, однако указанные события все равно не будут срабатывать.

возврат к списку PEM
BreakOnError

Определяет будет-ли Visual FoxPro разрешать ошибках прерывать исполнение программы в месте, где они произошли, или будет посылать их объекту CursorAdapter'a. Read/write в design и run time.

BreakOnError применяется только в случае, если cursor adapter исполняет код в методах, ассоциированных с событиями или командамиSQL INSERT, UPDATE, или DELETE

Синтаксис:

CursorAdapter.BreakOnError [= lValue]

lValue - логический тип данных.

Значение Описание Default
True Visual FoxPro разрешает коду, исполняемому в методах или в методах, ассоциированных с событиями прервать исполнение в месте, где наступила ошибка и отобразить сообшение об ошибке (.F.)
False Visual FoxPro не отображает сообщение об ошибке и посылает ошибку объекту. This behavior is the same as if Visual FoxPro raised an error, and the user cancelled execution. The error routine makes the last unhandled error available to the calling routine.. (Используется по умолчанию).
возврат к списку PEM
BufferModeOverride То же самое, что и для всех курсоров. Разрешены только оптимические блокировки.
возврат к списку PEM
Class То же самое, что и для всех классов VFP.Возвращает реальное имя класса
возврат к списку PEM
ClassLibrary То же самое, что и для всех классов VFP. Возвращает имя прользовательской библиотеки классов, где хранится описание класса, на основе которого создан объект.
возврат к списку PEM
Comment То же самое, что и для всех классов VFP. Нечего комментировать.
возврат к списку PEM
CompareMemo

Определяет будут-ли мемо-поля типа Memo, General, или Picture включены в опции WHERE при использовании автоматического обновления. Read/write.

Замечание. Установка этого свойства для объекта CursorAdapter переписывает одноименное свойство у курсора, если он связан (attached) с объектом CursorAdapter. Поэтому, попытка изменить эту установку для связанного курсора м помошью CURSORSETPROP() не возымеет никакого эффекта.

Синтаксис:

CursorAdapter.CompareMemo [= lValue]

lValue - логический тип данных.

Значение Описание Default
True Включает имена мемо-полей в опции WHERE. (.F.)
False Не включает имена мемо-полей в опции WHERE (Используется по умолчанию).
возврат к списку PEM
ConversionFunc

Определяет comma-delimited список пар имен полей и Read/write в design и run time.

Замечание. ConversionFunc применима только тогда, когда используется автоматическое обновление и в design time ConversionFunc не оценивается.

Используйте ConversionFunc для определения природных Visual FoxPro или пользовательских функций преобразования, которые будут применены к одному или более полям курсора до того, как послать данные источнику данных через операции обновления, вставки или удаления. Реальные величины, посланные источнику данных, определяются величинами, возвращаемыми функцией, ассоциированной с каждым полем.

Синтаксис:

CursorAdapter.ConversionFunc [ = ;
   'cFieldName1 cFuncName1 [,cFieldName2 cFuncName2 ]...']

cFieldName - определяет имя поля

cFuncName - определяет имя функции, которая принимает значение поля в качестве первого параметра. Указанная функция или метод должны принимать имя ассоциированного поля как единственного параметра.

Замечание. Не используйте круглые скобки в конце каждой функции или метода.

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

Следующий пример иллюстрирует, как удалить такие пробелы:

CursorAdapter.ConversionFunc = "companyname TRIM, contactname TRIM"
возврат к списку PEM
CursorSchema

Определяет структуру курсора, связанного с объектом CursorAdapter. Read/write в design и run time.

CursorSchema является по существу порцией кода внутри круглых скобок команды SQL CREATE TABLE и CREATE CURSOR. Вы можете использовать CursorSchema для того, чтобы определить источник даных типа XML. Visual FoxPro использует CursorSchema в design time для того, чтобы определить структуру курсора, помещенного в построителе Data Environment. Visual FoxPro использует CursorSchema в run time, если курсор определяется посредством метода CursorFill.

Замечание: вы должны убедиться, что CursorSchema соответствует и размечает колонки источника данных соответствующим образом.

Синтаксис:

CursorAdapter.CursorSchema [ = cList ]

cList - символьный тип данных.

Этот параметр определяет символьную строку или выражение, которое оценивается по comma-delimited списку имен полей и типов.
Например:

CursorAdapter.CursorSchema = ;
"col1 I, col2 c(25), col3 M, col4 Y, col5 n(12,3)"

Если свойству CursorSchema ничего ни присвоено или оно представляет собой пустую величину (.NULL.), Visual FoxPro использует источник данных объекта CursorAdapter для определения структуры курсора.

Примечание: Когда параметр lUseCursorSchema в методе CursorFill оценивается как истина (.T.), или когда вы добавляете курсор на основе CursorAdapter в построитель Data Environment Designer, объект CursorAdapter использует CursorSchema как шаблон для курсора, создаваемого использованием метода CursorFill.

возврат к списку PEM
CursorStatus

Определяет является-ли объект CursorAdapter, представляемый через свойство Alias класса CursorAdapter, связанным и как он связан. Visual FoxPro требует CursorStatus для опреления состояния текущего объекта CursorAdapter и что породило ассоциированный курсор. Read-only.

Синтаксис:

CursorAdapter.CursorStatus [ = nValue ]

nValue - численный тип данных

Значение Описание Default
0 CursorAdapter <Alias> не связан. (Используется по умолчанию) 0
1 CursorAdapter <Alias> связан через метод CursorFill.
2 CursorAdapter <Alias> связан через метод CursorAttach.
возврат к списку PEM
DataSource

Определяет, какой источник данных будет использоваться с объектом DataEnvironment или CursorAdapter. Свойство DataSourceType объектов DataEnvironment или CursorAdapter определяет значение соответсвующего свойства DataSource. Read/write в design и run time.

Синтаксис:

DataEnvironment.DataSource [= DataSource]
или
CursorAdapter.DataSource [= DataSource]

DataSource - определяет ссылку к существующему или разрешенным типам источников данных. DataSource действует только как указатель к реальному источнику данных, который должен существовать в run time. Нижеприведенная таблица перечисляет значения для DataSource, которые зависят от значения свойства DataSourceType.

DataSource DataSourceType
Reference to a valid ActiveX Data Object (ADO) RecordSet object "ADO"
Positive integer that represents or memory variable that contains a valid Open Database Connectivity (ODBC) connection handle "ODBC"
не принимается во внимание "Native", "XML", null (.NULL.), или пустая строка ("")

Примечание: Когда тип источника данных, установленный значением свойства DataSourceType объекта CursorAdapter является "Native", определение значения свойства DataSource объекта CursorAdapter не требуется, так как курсор, получаемый в результате исполнения команды, занесенной в свойство SelectCmd представляет собой источник данных по умолчанию. Имя возвращаемого курсора определяется свойством Alias объекта CursorAdapter, который устанавливается посредством вызова метода CursorFill.

Если свойства InsertCmdDataSourceType, UpdateCmdDataSourceType, иDeleteCmdDataSourceType объекта CursorAdapter не установлены (пустые), свойство DataSource объекта CursorAdapter переписывает свойства InsertCmdDataSource, UpdateCmdDataSource и DeleteCmdDataSource.

Если свойство UseDeDataSource объекта CursorAdapter установлено в True (.T.), то свойства DataSource и DataSourceType объекта DataEnvironment переписыавают соответствующие свойства объекта.

возврат к списку PEM
DataSourceType

Определяет тип источника данных в свойстве DataSource объектов DataEnvironment или CursorAdapter. Свойство DataSourceType определяет значение соответсвующего свойства DataSource указанных объектов. Read-only в design и read/write в run time.

DataEnvironment.DataSourceType [= cDataSourceType]
или
CursorAdapter.DataSourceType [= cDataSourceType]

cDataSourceType - символьный тип данных.

Параметр cDataSourceType определяет символьную строку описывающую тип источника данных для источника данных используемых объектами DataEnvironment или CursorAdapter.

Возможные варианты приведены в таблице.

DataSourceType DataSource
"ADO" Reference to a valid ActiveX Data Object (ADO) RecordSet or Command object
"ODBC" A valid Open Database Connectivity (ODBC) connection handle
"Native", "XML", null (.NULL.), или пустая строка ("") не принимается во внимание

Примечание: вы не можете использовать локальные или удаленные представления как "Native" источник для объектов CursorAdapter, но вы можете связать их с объектом используя метод CursorAttach.

Свойство DataSourceType для DataEnvironment не определяется для в design time, когда data environment не определяет источник данных.

возврат к списку PEM
DeleteCmd

Определяет команду, используемую для удаления строк. Read/write в design и run time.

Синтаксис:

CursorAdapter.DeleteCmd [ = cCommand ]

cCommand - символьный тип данных.

Нижеприведенная таблица показывает возможные значения свойства DeleteCmd.

cCommand Описание
Символьная строка или выражение Определяет действительную командную строку для источника данных в свойстве DeleteCmdDataSource.
Empty string ("") Объект CursorAdapter генерирует команду SQL DELETE автоматически, если свойство AllowDelete установлено в True (.T.).
возврат к списку PEM
DeleteCmdDataSource

Определяет источник данных, используемый свойством DeleteCmd. Read/write в design и run time.

Замечание: свойство DeleteCmdDataSourceType обекъта CursorAdapter определяет как используется свойство DeleteCmdDataSource.

Синтаксис:

CursorAdapter.DeleteCmdDataSource [ = cDataSource]

cDataSource - символьный тип данных.

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

Примечание: нижеприведенная ниже таблица описывает дополнительные поведения, которые применимы к DeleteCmdDataSource в зависимости от значения свойства DeleteCmdDataSourceType.

DeleteCmdDataSourceType DeleteCmdDataSource поведение
Empty ("") Значение свойства DeleteCmdDataSource сбрасывается. Visual FoxPro использует источник данных, указанный в свойстве DataSource объекта CursorAdapter.
Если ассоциированный с объектом CursorAdapter курсор основан на объекте ActiveX Data Object (ADO) RecordSet, Visual FoxPro использует функциональность ADO RecordSet для удаления записи. Для использования этой функциональности убедитесь, что свойство DataSourceType объекта CursorAdapter установлено в "ADO".
"ADO" Свойство DeleteCmdDataSource установлено на действительный объект ADO Command. Свойство ActiveConnection объекта ADO Command должно быть установлено на действительный и открытый объект ADO Connection.
Visual FoxPro устанавливает свойство CommandText объекта ADO Command в величину, определяемую свойством DeleteCmd объекта CursorAdapter. Visual FoxPro parses the command for parameters, creates parameter values if found, and sets them in the Command object.
The delete operation occurs as:
 
CursorAdapter.DeleteCmdDataSource.Execute()
возврат к списку PEM
DeleteCmdDataSourceType

Устанавливает тип источника данных для источника данных, используемого свойством DeleteCmdDataSource. Read/write в design и run time.

Синтаксис:

CursorAdapter.DeleteCmdDataSourceType [= cDataSourceType]

cDataSourceType - символьный тип данных

Параметр cDataSourceType устанавливает тип источника данных для источника данных в свойстве DeleteCmdDataSource.

Примечание: если свойству DeleteCmdDataSourceType присвоено значение ("") или (.NULL.), Visual FoxPro сбрасывает свойство DeleteCmdDataSource объекта CursorAdapter и используется свойствами DataSource и DataSourceType объекта CursorAdapter.

Для генерации XML UpdateGram, вы должны установить значение для свойства DeleteCmdDataSourceType равным "XML".

возврат к списку PEM
FetchAsNeeded

Определяет, как выбираются строки. При работе с этим свойством для обычных курсоров используйте функцииCURSORSETPROP() и CURSORGETPROP(). Read/write.

Замечание: если эта установка используется с объектом CursorAdapter, то она применима только к объектам, использующим в качестве источника данных ODBC или ADO, после установки действует только на следующий открываемый курсор и переписывает одноименную установку курсора, который связан с объектом CursorAdapter. Поэтому изменение этой установки для курсора посредством функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.FetchAsNeeded [= lValue]

lValue - логический тип данных.

В приведенной ниже таблице перечислены значения для lValue.

Значение Описание Default
True (.T.) Выборка записей по необходимости. .F.
False (.F.) Для объектов CursorAdapter, использующих ODBC или ADO в качестве источника данных, число выбираемых записей определяется установкой какого-то значения для свойства MaxRecords. Для родных курсоров и XML в качестве источника данных, установки игнорируются и выбираются все записи.
возврат к списку PEM
FetchMemo

Определяет - будут-ли мемо-поля выбираться вместе с результами представления. Для обслуживания этой установки обычных курсоров используйте функции CURSORSETPROP() и CURSORGETPROP(). Read/write.

Замечание: эта установка - FetchMemo - применима только к тем объектам на базе CursorAdapter'ов, которые в качестве источника данных используют ODBC или ADO и в этом случае замещает аналогичное свойство курсоров, которые связаны (attached) с объектом CursorAdapter. Поэтому изменение этой установки для связанного курсора с помощью функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.FetchMemo [= lValue]

lValue - логический тип данных.

В приведенной ниже таблице перечислены значения для lValue.

Значение Описание Default
True (.T.) Выборка мемо полей вместе в результами прелставления. .F.
False (.F.) Не выбирает поля в результат выборки.

Примечание: FetchMemo применимо преимущественно к удаленным представлениям и не воздействует на локальные. Однако, вы можете предустановить это свойство для локальных представлений, которые могут в дальнейшем переведены в другугю систему (upsized).

возврат к списку PEM
FetchSize

Устанавливает число строк прогрессивно выбираемых из результрующего набора удаленной таблицы. Для обслуживания обычных курсоров, используйте функции CURSORSETPROP() и CURSORGETPROP() functions. Read/write.

Замечание: FetchSize применима только к тем объектам на базе CursorAdapter'ов, которые в качестве источника данных используют ODBC или ADO и в этом случае замещает аналогичное свойство курсоров, которые связаны (attached) с объектом CursorAdapter. Поэтому изменение этой установки для связанного курсора с помощью функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис

CursorAdapter.FetchSize [= nValue]

nValue - численный тип данных

Параметр nValue имеет значение по умолчанию равное ста (100) строкам. Если значение установлено равным -1, Visual FoxPro изымает полный набор данных, который ограничивается значение свойства MaxRecords.

Примечание: FetchSize применимо преимущественно к удаленным представлениям и их установка не будет иметь эффекта для локальных. Однако, вы можете предустановить это свойство для локальных представлений, которые могут быть в дальнейшем переведены в другую систему (upsized).

возврат к списку PEM
Flags

Устанавливает желаемые установки флагов так, как это описывается параметром nFlags в функции XMLUPDATEGRAM(). Read/write в design и run time.

Замечание: флаги применяются только когда источник данных DataSourceType объекта CursorAdapter установлее в "XML". Объект CursorAdapter passes проходит флаги, определенные свойством Flags тогда, когда строит XML UpdateGram.Объект CursorAdapter оценивает флаги только один раз за операци. обновления.

Синтаксис:

CursorAdapter.Flags [= nFlags]

nFlags - целочисленный тип данных

Параметр nFlags определяет установку флагов на основе функции XMLUPDATEGRAM() и имеет значение по умолчанию равным нулю.

возврат к списку PEM
InsertCmd

Определяет команду, которая будет использоваться при вставке новых строк. Read/write в design и run time.

Синтаксис:

CursorAdapter.InsertCmd [ = cCommand ]

cCommand - символьный тип данных.

В приведенной ниже таблице перечислены значения для cCommand.

cCommand Описание
Символьная строка или выражение Определяет действительную командную строку для источника данных, указанном в свойстве InsertCmdDataSource.
Empty string ("") Объект CursorAdapter генерирует команду SQL INSERT автоматически, если свойство AllowInsert установлено в True (.T.).
возврат к списку PEM
InsertCmdDataSource

Определяет источник данных, который будет использован для свойства InsertCmd. Read/write в design и run time.

Замечание: Свойство InsertCmdDataSource объекта CursorAdapter определяет - как будет использовано свойство InsertCmdDataSource.?

Синтаксис:

CursorAdapter.InsertCmdDataSource [= cDataSource]

cDataSource - символьный тип данных.

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

Примечание: приведенная ниже таблица описывает поведения, которые применимы к InsertCmdDataSource в зависимости от значения InsertCmdDataSourceType.

InsertCmdDataSourceType InsertCmdDataSource поведение
Empty ("") InsertCmdDataSource игнорируется. Visual FoxPro использует источник данных из свойства DataSource объекта CursorAdapter. Однако, если курсор, ассоциированный объектом CursorAdapter, основан на ActiveX Data Object (ADO) RecordSet, Visual FoxPro использует функциональность ADO RecordSet для вставки записи. Для использования такой функциональности убедитесь, что свойство DataSourceType объекта CursorAdapter установлено в "ADO".
"ADO" InsertCmdDataSource должен быть установлен в действительный объект ADO Command. Свойство ActiveConnection объекта ADO Command должно быть установлено на действительный и открытый объект ADO Connection. Visual FoxPro устанавливает свойство CommandText объекта ADO Command по значению своего свойства InsertCmd. Visual FoxPro разбирает команду для параметров, создает значения параметров, если таковые находит и устанавливает их в объекте Command.
 
Операция вставки исполняется следующим образом:
CursorAdapter.InsertCmdDataSource.Execute()
"XML" Visual FoxPro disregards the CursorAdapter DataSource property.
возврат к списку PEM
KeyFieldList

Определяет comma-delimited список ключевых полей курсора или объекта CursorAdapter. Для установки/возврата этого свойства для обычных курсоров используйте функции CURSORSETPROP()/CURSORGETPROP(). Read/write.

Замечание: Установка значения свойства KeyFieldList для объекта CursorAdapter переписывает соответствующее свойство курсора, который связан с объектом CursorAdapter. Поэтому изменение значения этого свойства у связанного курсор посредством CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.KeyFieldList [= cList]

cList - символьный тип данных

Параметр cList определяет comma-delimited список первичных ключевых полей курсора или объекта CursorAdapter и не имеет значения по умолчанию.

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

возврат к списку PEM
MaxRecords

Определяет максимальное число строк выборки, когда возвращается набор данных. Для установки/возврата этого свойства для обычных курсоров используйте функции CURSORSETPROP()/CURSORGETPROP(). Read/write.

Замечание: Установка MaxRecords используется только с объектами CursorAdapter, которые в качестве источника данных используют ODBC или ADO и переписывает установку этого свойства у связанного с объектом СА курсора. Поэтому использование функции CURSORSETPROP() для установки этого свойства у курсора не будет иметь эффекта.

Синтаксис:

CursorAdapter.MaxRecords [= nValue]

nValue - численный тип данных.

Параметр nValue имеет значение по умолчанию равным -1 (минус 1), что указывает на то, что будут возврашены все строки. Установка значения свойства в 0 указывает на то, что представление будет исполняться, но результат не будет выбираться.

Примечание: MaxRecords применимо преимущественно к удаленным представлениям и установка не влияет на локальные, однако для последних вы можете предустановить значение этого свойства, если в дальнейшем предполагается их upsized.

возврат к списку PEM
Name то же самое что и у всех объектов и классов VFP - имя объекта, которое будет использование для ссылки на него из кода.
возврат к списку PEM
Parent то же самое что и у всех объектов и классов VFP - объект контейнера, содержащий данный объект.
возврат к списку PEM
ParentClass то же самое что и у всех объектов и классов VFP - наименование родительского класса, на котором основан данный объект.
возврат к списку PEM
Prepared

Указывает, имеется-ли подготовленное SQL-выражение для последовательных вызовов функции REQUERY(). Для повторной выборки данных в SQL представление вы можете использовать REQUERY(). Для обслуживания этого свойства у обычных курсоров используйте функции CURSORSETPROP() и CURSORGETPROP(). Read/write.

Замечание: В случае установки значения свойства Prepared для объектов CursorAdapter, значения одноименных свойств связанных курсоров будут переписаны. Поэтому использование функции CURSORSETPROP() для установки этого свойства у курсора не будет иметь эффекта.
Смотри описание функций REQUERY() и SQLPREPARE() в файле подсказки.

Синтаксис:

CursorAdapter.Prepared [= lValue]

lValue - логический тип данных

Приведенная ниже таблица описывает возможные значения этого свойства.

lValue Описание Значение по умолчанию
True (.T.) Подготовить SQL выражение для последовательных вызовов функции REQUERY. (.T.)
False (.F.) Не готовить SQL выражение для последовательных вызовов функции REQUERY.
возврат к списку PEM
SelectCmd

Определяет команду для выборки данных из источника данных. Read/write в design и run time.

Синтаксис:

CursorAdapter.SelectCmd [ = cCommand ]

cCommand - символьная строка или выражение, которые оцениваются как действительная командная строка.

Для источника данных типа XML, cCommand должна содержать одно из следующих значение:

  • Выражение, которое оценивается как действительный XML источник для функции XMLTOCURSOR(). XMLTOCURSOR() выбирает данные.
  • Выражение, которое оценивается как объекта XMLTable. Данные выбираются с помощью метода ToCursor объекта XMLTable.
  • Примечание: Если свойство UseDeDataSource объекта СА установлено в True (.T.), и СА является членом DataEnvironment, то последний переписывает эти свойства у объекьа CursorAdapter.

возврат к списку PEM
SendUpdates

Определяет, будут-ли посланы SQL запросы обновления для обновления таблиц. Read/write.

Замечание: Установка SendUpdates используется только с объектами CursorAdapter, которые в качестве источника данных используют ODBC или ADO и переписывает установку этого свойства у связанного с объектом СА курсора. Поэтому использование функции CURSORSETPROP() для установки этого свойства у курсора не будет иметь эффекта.

Синтаксис:

CursorAdapter.SendUpdates [= lValue]

lValue - логический тип данных

Приведенная ниже таблица описывает возможные значения этого свойства.

lValue Описание Значение по умолчанию
True (.T.) Посылать SQL uапросы обновления, когда используются представления для производства обновления. (.T.)
False (.F.) Не посылать SQL запросы для обновления таблиц.
возврат к списку PEM
Tables

Определяет comma-delimited список имен таблиц, который должен содержать имена таблиц в том порядке, в каком вы желаете видеть в командах SQL UPDATE, INSERT и DELETE.Read/write.

Замечание: Вы должны использовать этот список имен таблиц в случае если используется автоматическое обновление, чтобы этот процесс работал.

Установка значения свойства Tables объекта CursorAdapter переписывает соответствующее свойство у связанного с CA курсора. Поэтому использование функции CURSORSETPROP() для установки этого свойства у курсора не будет иметь эффекта.

Синтаксис:

CursorAdapter.Tables [= cList]

cList - символьный тип данных.

Параметр cList определяет comma-delimited список имен таблиц.Для свойства не имеется значения по умолчанию.

Примечание: таблицы не должны ссылаться на курсор, который был связан с объектом CursorAdapter вызовом метода CursorAttach.

возврат к списку PEM
Tag Вроде бы то же самое, что и у других объектов и классов VFP, однако, в случае использования с источниками данных типа ODBC там хранится ссылка на DSN. В общем лучше не использовать. Если вы привыкли использовать это свойство для своих надобностей, то в данном случае лучше использовать свойство Comment.
возврат к списку PEM
UpdateCmd

Определяет команду, которая будет использована для обновления таблиц. Read/write в design и run time.

Синтаксис

CursorAdapter.UpdateCmd [ = cCommand ]

cCommand - символьный тип данных

Приведенная ниже таблица описывает возможные значения этого свойства.

cCommand Описание
Character string or expression Определяет действительную команду для источника данных, указанного в свойстве UpdateCmdDataSource.
Empty string ("") Объект CursorAdapter автоматически генерирует команду SQL UPDATE если его свойство AllowUpdate установлено в True (.T.).
возврат к списку PEM
UpdateCmdDataSource

Определяет источник данных используемых свойством UpdateCmd. Read/write в design и run time.

Синтаксис:

CursorAdapter.UpdateCmdDataSource [= cDataSource]

cDataSource - символьный тип данных

Приведенная ниже таблица описывает возможные значения этого свойства и его поведения.

UpdateCmdDataSourceType UpdateCmdDataSource поведение
Пустая строка ("") UpdateCmdDataSource игнорируется. Visual FoxPro использует источник данных указанный в свойстве DataSource объекта CursorAdapter.
Однако, если курсор, ассоциированный с объектом CursorAdapter основан на ActiveX Data Object (ADO) RecordSet, Visual FoxPro использует функциональность ADO RecordSet для обновления записи. Для обеспечения этой функциональности убедитесь, что свойство DataSourceType объекта CursorAdapter установлено в "ADO".
"ADO" UpdateCmdDataSource должно быть установлен в действительный объект ADO Command. Свойство ActiveConnection этого объекта должно быть установлено на действительный и открытый объекта ADO Connection.
Visual FoxPro устанавливает свойство CommandText объекта ADO Command в значение, определяемое свойством UpdateCmd объекта CursorAdapter. Visual FoxPro разбирает команду для параметров, описывает значения этих параметров, если таковые найдены и устанавливает их в объекте Command.
 
Обновление проиизводится следующим образом:
CursorAdapter.UpdateCmdDataSource.Execute()
возврат к списку PEM
UpdateCmdDataSourceType

Определяет тип источника данных, используемого свойством UpdateCmdDataSource. Read/write в design и run time.

Синтаксис

CursorAdapter.UpdateCmdDataSourceType [= cDataSourceType]

cDataSourceType - символьный тип данных

Примечание: если свойству UpdateCmdDataSourceType присвоена пустая строка иди ("") или .NULL., Visual FoxPro использует источник данных указанный в свойстве DataSource.

Для генерации XML UpdateGram, вы должны точно установить значение свойства UpdateCmdDataSourceType равным "XML".

возврат к списку PEM
UpdatableFieldList

Определяет comma-delimited список полей в представлении и включает поля из курсора. Read/write.

Замечание: вы должны включить список имен полей, для того чтобы обновление работало при испольщование автоматического обновления.

Установка свойства UpdatableFieldList для объекта CursorAdapter переписывает одноименное свойство у связанного с СА курсора, поэтому изменение этого свойства у курсора посредством функции CURSORSETPROP() не будет иметь воздействия.

Синтаксис:

CursorAdapter.UpdatableFieldList [= cList]

cList - символьный тип данных

возврат к списку PEM
UpdateGram

Содержит XML UpdateGram генерированный только при выполнении следующих условий:

  • Visual FoxPro исполняет команды insert, update или delete.
  • Значения свойств UpdateCmdDataSourceType, InsertCmdDataSourceType и DeleteCmdDataSourceType установлены в "XML".

Read–only в design и run time.

Синтаксис

CursorAdapter.UpdateGram

Свойство содержит символьный тип данных.

Примечание: хотя с помощью объекта CursorAdapter object можно генерироватьXML UpdateGram, вы должны обеспечить реальную операцию обновления использованием подходящих протоколов таких, какSQL XML through HTTP, SQL XML OLEDB, или XML Web service к .NET.

возврат к списку PEM
UpdateGramSchemaLocation

Определяет имя схемы разметки и ее местонахождение направляемое фнукции XMLUPDATEGRAM(). Read/write в design и run time.

Замечание: UpdateGramSchemaLocation применяется только когда свойство DataSourceType объекта CursorAdapter установлено в "XML". Когда значение этого свойства установлено, UpdateGramSchemaLocation отправляется в функцию XMLUPDATEGRAM() в качестве параметра SchemaLocation. Visual FoxPro не поддерживает создания схемы разметки; поэтому вы должны предоставить ее.

Синтаксис:

CursorAdapter.UpdateGramSchemaLocation [= cName]

cName - символьный тип данных.

По умолчанию значение этого свойства установлено в пустую строку - ("").

возврат к списку PEM
UpdateNameList

Определяет comma-delimited список, содержащий пары имен локальных полей и полных имен удаленных полей. Каждая пара имен состоит из имени локального поля и следующего за ним полного имени удаленноггоь поля. Полное имя удаленного поля выглядит так <remote table name>, <remote field name>, гдкe <remote table name> соответствует имени из свойства Tables. Read/write.

Замечание: Установка свойства UpdateNameList для объекта CursorAdapter переписывает одноименное свойство связанного с ним курсора, поэтому изменение свойства курсора посредством использования функции CURSORSETPROP() не будет иметь эффекта.

Вы должны установить UpdateNameList,который вы также можете использовать для указания действительных Visual FoxPro имен для полей в курсоре, который имеет неправильные с точки зрения Visual FoxPro имена полей.

Синтаксис:

CursorAdapter.UpdateNameList [= cList]

cList - символьный тип даных, содержаший список

возврат к списку PEM
UpdateType

Определяет, что делать со старыми данными при производстве обновления. Read/write.

Замечание: Установка свойства UpdateType для объекта CursorAdapter переписывает одноименное свойство связанного с ним курсора, поэтому изменение свойства курсора посредством использования функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.UpdateType [= nValue]

nValue - численный тип данных.

Приведенная ниже таблица описывает возможные значения этого свойства и его поведения.

nValue Описание По умолчанию
1 Заменить старые данные новымми. 1
2 Удалить старые и вставить новыею
возврат к списку PEM
UseDeDataSource

Определяет - будет-ли использован источник данных контейнера DataEenvironment в качестве источника данных для объекта CursorAdapter. Этот источник определяется свойством DataSource объекта DataEnvironment в котором размещен объекта СА. Read/write в design и run time.

Замечание: UseDeDataSource применяется только если объект СursorАadapter существует в контейнере data environment.

Синтаксис:

CursorAdapter.UseDeDataSource [ = lValue ]

lValue - логический тип данных.

Приведенная ниже таблица описывает возможные значения этого свойства.

lValue Описание
True (.T.) Использовать источник данных ассоциированного контейнера data environment в качестве источника данных для объекта cursor adapter.
Установка значения свойства UseDeDataSource в True (.T.) не подходит для случая, когда data environment содержит набор объектов CursorAdapter использующих в качестве источника данных ActiveX Data Object (ADO). Набор адаптеров не может совместно использовать единичный ADO RecordSet. Вы должны установить свойства DataSource и DataSourceType каждого адаптера индивидуально.
 
Если cursor adapter является членом data environment, то свойства DataSource и DataSourceType объекта DataEnvironment переписывают одноименные свойства объекта CursorAdapter.
False (.F.) Не использовать источник данных ассоциированного контейнера data environment в качестве источника данных для объекта cursor adapter.
возврат к списку PEM
UseMemoSize

Определяет минимальный размер в байтах для возвращаемых результирующих колонок в мемо-полях. Например, если ширина результирующей колонки превысит значение установлднное этим свойством, результррующая колонка будет храниться в мемо-поле. Read/write.

Замечание: Установка значения свойства UseMemoSize применима только для объектов CursorAdapter, использующих в качестве источника данных ODBC или ADO и переписывает одноименное свойство связанного с СА курсора, поэтому изменение этого свойства у курсора посредством функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.UseMemoSize [= nValue]

nValue - чесиленный тип данных.

Параметр nValue имеет значение по умолчанию равное 255 байтам и может быть установлен в пределах от 1 до 255 байт.

Примечание: это свойство применимо преимущественно для удаленных представлений и не имеет воздействия на локальные. Однако, вы можете предустановить это свойство и для локальных представлений, если в дальнейшем предполагается их upsized.

возврат к списку PEM
WhereType

Определяет поля которые существуют в опции WHERE для обновляемых таблиц. Read/write.

Замечание: Установка свойства WhereType для объекта CursorAdapter переписывает одноименное свойство связанного с ним курсора, поэтому изменение свойства курсора посредством использования функции CURSORSETPROP() не будет иметь эффекта.

Синтаксис:

CursorAdapter.WhereType [= nValue]

nValue - численный тип данных.

Приведенная ниже таблица описывает возможные значения этого свойства.

nValue Описание
1 или DB_KEY (из FOXPRO.H) Включает только первичные поля, определяемые свойством KeyFieldList.
2 или DB_KEYANDUPDATABLE (из FOXPRO.H) Включает первичные поля, определяемые свойством KeyFieldList и любые обновляемые поля.
3 или DB_KEYANDMODIFIED (из FOXPRO.H) Включает первичные поля, определяемые свойством KeyFieldList и другие модифицируемые поля.
4 или DB_KEYANDTIMESTAMP (из FOXPRO.H) Включает первичные поля, определяемые свойством KeyFieldList и сравнение временной метки.

Remarks

For forced update and delete operations, CursorAdapter uses the value of 1 for the CursorAdapter WhereType property regardless of the actual setting. Otherwise, CursorAdapter respects user settings for WhereType
возврат к списку PEM
ConflictCheckType

В VFP9, добавлено дополнительное свойство для класса CursorAdapter для лучшего обслуживания конфликтов обновления. Это включает в себя свойства ConflictCheckType и ConflictCheckCmd.

Свойство ConflictCheckType определяет как обслуживается проверка конфликта во время операции обновления или удаления записи.

Синтаксис

CursorAdapter.ConflictCheckType [ = nValue]

Приведенная ниже таблица показывает поведения при разных значениях nValue:

nValue Описание
0 CA не производит никаких проверок (используется по умолчанию)
1 В режиме обновления единичной записи, CA проверяет наличие конфликта во время операций UPDATE или DELETE и сообщает об ошибке 1585, если обнаружен конфликт (когда запись не обработана
2 В режиме обновления единичной записи, CA проверяет неуникальность ключа во время операций UPDATE или DELETE и сообщает об ошибке 1495, если более чем одна запись обработана командами, содержание которых хранится в свойства UpdateCmd или DeleteCmd объекта СА).
3 CA производит проверку одновременно для случаев, если бы значение nValue было бы равным 1 и 2.
4 CA добавляет пользовательские команды, установленные в свойстве ConflictCheckCmd в конец команд UpdateCmd и DeleteCmd.

Свойство read/write в design и run time.

Применение свойства:

nValue Описание
0 Наличие конфликта не проверяется (по-умолчанию).
1 Проверка для изменяемых записей
2 Проверка неуникальности ключа
3 Проверка для изменяемых записей и на неуникальность ключа одновременно
4 Проверка на основе пользовательской команды (ConflictCheckCmd)

Примечание

Эти новые свойства (ConflictCheckType и ConflictCheckCmd) используются для источников данных типа NATIVE, ODBC и ADO. В случае источника данных типа ADO, CA должен использовать объект ADODB.Command для операций UPDATE/DELETE, в противнос случае значение свойства игнорируются.

Вследствие ограничений ODBC и ADO (иногда количество обрабатываемых строку не возвращается для каждой команды в пакете), ConflictCheckType 1,2 и 3 не гарантируют корректную работе, если UpdateCmd/DeleteCmd содержат более чем одну команду. Рекомендуется использовать ConflictCheckType 4 или убедиться, что только одна команда Update/Delete будет исполнена.

ConflictCheckType 1,2 и 3 игнорируюся во время пакетного обновления TABLEUPDATE.

возврат к списку PEM
ConflictCheckCmd

В VFP9, добавлено дополнительное свойство для класса CursorAdapter для лучшего обслуживания конфликтов обновления. Это включает в себя свойства ConflictCheckType и ConflictCheckCmd.

Свойство ConflictCheckCmd содержит пользовательскую команду для проверки конфликта во время операции обновления или удаления записи.

Синтаксис

CursorAdapter.ConflictCheckCmd [ = cValue]

cValue - содержит пользовательскую команду для проверки конфлика обновления и используется в случае если свойству ConflictCheckType присвоено значение 4. По-умолчанию - пустая строка. Read/write в design и run time.

Примечание. Смотри описание свойства ConflictCheckType

Пример:
SQL Server: ConflictCheckCmd="IF @@ERROR=0 AND @@ROWCOUNT!=1 RAISERROR (' Update conflict or non-unique key.', 16, 1)" Native : ConflictCheckCmd="CheckConflict()"

FUNCTION CheckConflict()
   IF _tally<1
      ERROR(1585)
   ELSE
      IF _tally>1
         ERROR(1495)
   ENDIF
ENDIF
ENDFUNC
возврат к списку PEM
MapVarchar

В VFP9, добавлены новые свойства MapBinary и MapVarchar для классов CursorAdapter и XMLAdapter для улучшения разметки полей изSQL Pass-Thru types к новым поддерживаемым типам данных (VarChar, VarBinary и Blob). В предыдущих версиях VFP размечал их соответственно к Character, Memo и General типам.

Синтаксис

CursorAdapter.MapVarchar [ = Value]

В таблице приведены значения и описание поведения для Value

Value Описание
False (.F.) Если установлено в .F. SQL Pass-Thru размечает (по умолчанию и отображает поведение для VFP8):
SQL_WVARCHAR и SQL_VARCHAR ODBC типы данных к Character типу данных.
True (.T.) Если установлено в .T. SQL Pass-Thru размечает:
SQL_WVARCHAR и SQL_VARCHAR ODBC типы данных к VarChar типу данных.

Read/write в design и run time.

Примечания:

  • Если свойство MapVarchar курсора уровня environment (CURSORGETPROP(“MapVarchar”,0)) установлено в .T., SQL Pass-Thru размечает типы данных SQL_WVARCHAR и SQL_VARCHAR ODBC к типу данных Varchar. Он продолжит размечать указанные типы данных к символьнуму типу Character, если свойство MapVarchar установить в .F., являющимся значением по умолчанию.
  • Поля удаленных представлений могут быть размечены к типу Varchar через View Designer и функцию DBSETPROP, причем эта функциональность поддерживается безотносительно к текущей установке свойства MapVarchar. Если MapVarchar установлен в .T., команда CREATE SQL VIEW для удаленного представления размечает SQL_WVARCHAR и SQL_VARCHAR ODBC типы данных к типу Varchar если это возможно. Остается возможным изменить разметку назад, к типу Character через View Designer или функцию DBSETPROP(). Если MapVarchar установлено в .F., CREATE SQL VIEW размечает эти типы к типу Character (аналогично поведению в VFP8).
  • Тип данных Varchar может быть использован в свойстве CursorSchema объекта CursorAdapter. Если свойство MapVarchar объекта CursorAdapter установлено в .T. (по-умолчанию устанавливается в false для обеспечения совместимости назад), разметка типа данных по умолчанию в объекте CursorAdapter изменяется следующим образом:
    • Для типа источника данных - ODBC, типы данных SQL_WVARCHAR и SQL_VARCHAR ODBC оазмечаются к типу Varchar если это возможно.
    • Для типа источника данныхr - ADO, типы adVarChar и adVarWChar ADO размечаются к типу Varchar если это представляется возможным.
  • Тип данных Varchar может быть использован в свойстве Datatype в объекте XMLField. По умолчанию XMLAdapter размечает тип данных Varchar к xsd:string. Если свойство MapVarchar объекта XMLAdapter установлено в .T. (по умолчанию равно .F.), разметка типа данных по умолчанию из XML в VFP для объекта XMLAdapter изменяется следующим образом:
    • Все размечается к символьному типу Character в VFP8 если размечается к Varchar типу данных.
возврат к списку PEM
MapBinary

В VFP9, добавлены новые свойства MapBinary и MapVarchar для объектов CursorAdapter и XMLAdapter для улучшения разметки данных, получаемых из типов SQL Pass-Thru к новым, поддерживаемым VFP9 типам данныъ (VarChar, VarBinary, и Blob). В предыдущих версиях VFP размечал их соответственно к Character, Memo и General типам.

Синтаксис:

CursorAdapter.MapBinary [ = Value]
Value Описание
False (.F.) SQL Pass-Thru размечает (по-умолчанию и соответствует поведению VFP8):
SQL_BINARY и SQL_VARBINARY ODBC типы данных к типуCharacter data types.
SQL_BINARY и SQL_VARBINARY ODBC типы данных, длинва которых более чем 254 символа и SQL_LONGVARBINARY тип к типам Memo/General.
True (.T.) SQL Pass-Thru размечает:
SQL_BINARY и SQL_VARBINARY ODBC типы данных к типу Varbinary.
SQL_BINARY и SQL_VARBINARY ODBC типы данных в случае, если длина превышает 254 символов и SQL_LONGVARBINARY тип к типу Blob.

Read/write в design и run time.

Примечания

Если свойство MapBinary курсора уровня environment установлено в .T. (по умолчанию устанавливается в .F.), SQL Pass-Thru размечает SQL_BINARY и SQL_VARBINARY ODBC типы данных к типу Varbinary. Он продолжит размечат указанные типы к символьному типу Character, если свойство MapBinary установлено в .F..

Поля удаленных представлений SQL_WVARCHAR, SQL_WCHAR, SQL_WLONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR, SQL_BINARY, SQL_VARBINARY и SQL_LONGVARBINARY могут быть размечены к типу Varbinary через View Designer и с помощью функции DBSETPROP(), причем в этом случае такая функциональность поддерживается независимо от текущей установки свойства MapBinary. Если MapBinary установлено в .T., команды CREATE SQL VIEW для удаленных представлений размечает типы данных SQL_BINARY и SQL_VARBINARY ODBC к типу Varbinary, если это представляется возможным. Остается возможным изменить разметку назад к типу Memo через View Designer или с помощью функции DBSETPROP(). Если MapBinary установлен в .F., CREATE SQL VIEW размечает указанные типы к типу Memo (точно так же, как и в VFP8).

Тип данных Varbinary может быть использовать в свойстве CursorSchema объекта CursorAdapter. Если свойство MapBinary объекта CursorAdapter установлено в .T. (по-умолчанию устанавливается в .F.), разметка типа данных по умолчанию для объекта CursorAdapter изменяется следующим образом:

  • Для источников данных типа ODBC, типы данных SQL_BINARY и SQL_VARBINARY ODBC размечаются к типу Varbinary, если это представляется возможным.
  • Для источников данных типа ADO, ADO типы данных adVarBinary и adBinary размечаются к типу VarBinary, если это представляется возможным. Свойство CursorSchema поддерживает разметку из adWChar, adVarWChar, adLongVarWChar, adChar, adVarChar, adLongVarChar, adBinary, adVarBinary и adLongVarBinary к типу Varbinary.

Тип данных Varbinary может быть использован в свойстве Datatype объекта XMLField. По умолчанию XMLAdapter размечает тип Varbinary к типу xsd:base64Binary. Если XMLField.DataType установлен к типу Varbinary, XMLField.IsBinary и XMLField.NoCpTrans автоматически устанавливаются в .T. и XMLField.DisableEncode устанавливается в .F., и до тех пор, пока XMLField.DataType остается установленным к типу Varbinary изменение этих свойств невозможно! Если свойство XMLAdapter.MapBinary установлено в .T. (по умолчанию устанавливается в .F.), разметка типа данных по умолчанию из XML в VFP для объекта XMLAdapter изменяется следующим образом:

  • Метод AddTableSchema размечает поля Varbinary к xsd:base64Binary.
  • Метод LoadXML опзмечает все винарные типы к типу Varbinary, если их размер меньше, чем 255 и свойство DisableEncode объекта XMLAdapter установлено в .F..
Поля удаленных представлений SQL_WVARCHAR, SQL_WCHAR, SQL_WLONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR, SQL_BINARY, SQL_VARBINARY и SQL_LONGVARBINARY могут быть размечены к типу данных Blob через View Designer и с помощью функции DBSETPROP(),причем в этом случае такая функциональность поддерживается независимо от текущей установки свойства MapBinary. Если MapBinary установлено в .T., команда CREATE SQL VIEW для удаленных представлений размечает SQL_BINARY и SQL_VARBINARY ODBC типы данных длиной более 254 символов и тип данных SQL_LONGVARBINARY к типу Blob. Остается возможным изменить разметку назад к типам Memo или General через View Designer и с помощью функции DBSETPROP(). Если MapBinary установлен в .F., CREATE SQL VIEW размечает эти типы к типам Memo или General (точно также, как и в VFP8). Тип данных Blob может быть использован в свойстве CursorAdapter.CursorSchema. Если CursorAdapter.MapBinary установлен в .T., разметка типа данных по умолчанию для объекта CursorAdapter изменяется следующим образом:
  • Для источников данных типа ODBC, SQL SQL_BINARY и SQL_VARBINARY ODBC типы данных длиной более чем 254 символа и SQL_LONGVARBINARY тип размечаются к типу Blob.
  • Для источников данных типа ADO, ADO типы данных adVarBinary и adBinary длиной более чем 254 символов и тип adLongVarBinary размечаются к Blob. Свойство CursorSchema поддерживает разметку из adWChar, adVarWChar, adLongVarWChar, adChar, adVarChar, adLongVarChar, adBinary, adVarBinary и adLongVarBinary к типу данных Blob.
возврат к списку PEM
UseCursorSchema

В VFP9, добавлено новое свойство UseCursorSchema для облегчения работы с DataEnvironments.

Синтаксис:

CursorAdapter.UseCursorSchema [ = Value]
Value Описание
.F. Установка, в случае если метод CursorFill вызвается без передачи параметра lUseCursorSchema, означает: не использовать схему курсора (по-умолчанию).
.T. Установка, в случае если метод CursorFill вызвается без передачи параметра lUseCursorSchema, означает: использовать схему курсора

Read/write в design и run time.

Примечания

Метод CursorFill имеет следующую структуру параметров:

PARAMETERS lUseCursorSchema, lNoData, nOptions, Source

Свойство UseCursorSchema будет указывать установку по умолчанию ддя использования в качестве параметра lUseCursorSchema.

Если параметр lUseCursorSchema послан методу CursorFill, тогда свойство UseCursorSchemaигнорируется.

возврат к списку PEM
NoData

В VFP9, добавлено новое свойство NoData для облегчения работы с DataEnvironments.

Синтаксис: CursorAdapter.NoData [ = lValue]
Value Описание
.F. Установка, в случае если метод CursorFill вызвается без передачи параметра lNoData, означает: получить данные в курсор (по-умолчанию).
.T. Установка, в случае если метод CursorFill вызвается без передачи параметра lUseCursorSchema, означает: не получать данные в курсор
Read/write в design и run time.

Примечания

Метод CursorFill имеет следующую структуру параметров:

PARAMETERS lUseCursorSchema, lNoData, nOptions, Source

Свойство NoData будет определять установку по умолчанию для использования в качестве параметра lNoData.
Если параметр lNoData послан методу CursorFill, тогда свойство NoData игнорируется.

возврат к списку PEM

Methods

AddProperty Стандартный метод для всех классов VFP. Не имеет каких-либо особенностей при использовании с CursorAdapter.
возврат к списку PEM
Attach

Связывает существующий документ XML Document Object Model (DOM) или DOM элемент и ,возможно, схему XML с объектом XMLAdapter.

Связывание также устанавливает свойство IXMLDOMElement объекта XMLAdapter. В дополнение, если анализируется схема XML, Visual FoxPro перестраивает коллекцию Tables новым набором объектов XMLTable м устанавливает следующие свойства объекта XMLAdapter в подходящие значения:

  • XMLName
  • XMLNamespace
  • XMLPrefix
  • IsDiffgram
  • SOM
  • XMLAdapter.Attach( oDOM [, oSchema ] )

Параметры:

  • oDOM - определяет существующий объект документа Microsoft XML Core Services (MSXML) 4.0 DOM или объект IXMLDOMElement.
  • oSchema - определяет существующий объект документа MSXML 4.0 Schema Object Model (SOM), объект документа DOM с узлом схемы как корневым элементом, или объект IXMLDOMElement, который представляет схему.
    Если вы устанавливание значение для oSchema, Visual FoxPro игнорирует значение свойства XMLSchemaLocation объекта XMLAdapter и анализирует схему. С другой стороны значение свойства XMLSchemaLocation определяет - будет-ли схема XML анализироваться.

Примечание: метод Attach fспособствует загрузке возвращаемых результатов из Web-сервисов, где набор данных обычно возвращается как два узла IXMLDOMNodes с Item(0) представляющим схему (oSchema) и Item(1) представляющим данные (oDom). Вы можете связать эти два узла (nodes) вместо вызова LoadXML против строки.

На исполнение метода Attach влияют следующие установки:

  • DisableEncode
  • MapN19_4ToCurrency
  • NoCpTrans
  • WrapCharInCDATA
  • WrapMemoInCDATA
  • XMLSchemaLocation
возврат к списку PEM
AutoOpen

Исполняет метод CursorFill по умолчанию без параметров. Когда объект CursorAdapter существует в окружении data environment, окружение data environment вызывает метод AutoOpen автоматически из метода OpenTables объекта DataEnvironment.

Синтаксис

CursorAdapter.AutoOpen()

Возвращаемые значения: AutoOpen возвращает True (.T.) если все прошло нормально, в противном случае Visual FoxPro генерирует ошибку.

Примечание: вы можете игнорировать команды AutoOpen использованием оператора NODEFAULT и открыто вызвать метод CursorFill.

возврат к списку PEM
CursorAttach

Связывает существующий курсор с текущей инстанцией объекта CursorAdapter.

Синтаксис:

CursorAdapter.CursorAttach( [ cAlias [, lInheritCursorProperties ] ] )

Параметры:

cAlias - определяет алиас курсора или таблицы, которые будут связаны.

Если cAlias установлен, CursorAttach заполняет свойство Alias объекта CursorAdapter алиасом связываемого курсора или таблицы. Если cAlias не установлен, CursorAttach пытается связать курсор или таблицу, которые должны существовать, и определяемые текущим значение свойства Alias объекта CursorAdapter.

lInheritCursorProperties - определяет - желаете-ли сохранить или сбросить свойства связанного курсора или таблицы. Приведенная ниже таблица показывает возможные величины для этого свойства

lInheritCursorProperties Описание
True (.T.) Существуюший набор свойств курсора наследуются соответствующими свойствами объекта CursorAdapter.
False (.F.) или пустое Существующий набор свойств курсора не копируется в соответствующие свойства объекта CursorAdapter.

Это свойство добавляет некую гибкость присвязывании SQL Pass-Through, удаленных представлений или других курсоров.

Возвращаемые величины: - логический тип данных - метод возвращает True (.T.) если связывание курсора прошло удачно, в противном случае возвращается (.F.).

Примечание: курсор или таблица могут иметь только одну инстанцию объекта CursorAdapter с которым они связаны в любой данный момент времени. (Иными словами курсор или таблица не могут быть связаны с несколькими объектами СА).

Когда Visual FoxPro связывает курсор, вы не можете изменять его структуру посредством использования комманд MODIFY STRUCTURE или SQL ALTER TABLE.

Вызов метода CursorAttach закрывает текущий связанный курсор. Для сохранения курсора открытым, перед вызовом метода CursorAttach вызовете метод CursorDetach.

Вызов метода CursorAttach заполняет свойство Alias инстанции объекта CursorAdapter алиасом связываемого курсора или таблицы.

Вызов метода CursorAttach включает режим BufferModeOverride (3) или BufferModeOverride (5), в зависимости от установленного для объекта CursorAdapter свойства BufferModeOverride property, если оно еще не установлено. Если буфферирование уже включено, но не является оптимистическим буфферированием строк, Visual FoxPro переводит буфферирование в Optimistic Row Buffering.

Visual FoxPro будет генерировать сообщение об ошибках при следующих условиях:

  • cAlias не найден.
  • CursorAttach пытается связать курсор, который уже связан с другой инстанцией объекта CursorAdapter.
  • свойство Tables не должно ссылаться на курсор, который был связан объектом CursorAdapter посредством CursorAttach.
возврат к списку PEM
CursorDetach

Высвобождает текущий связанный курсор от текущей инстанции CursorAdapter.

Синтаксис:

CursorAdapter.CursorDetach()

Возвращает логический тип данных. CursorDetach возвращает True (.T.) если высвобождение курсора прошло удачно в противном случае возвращается False (.F.).

Примечание: Visual FoxPro сохраняет все установки, такие как буфферирование и тому подобные , свойственные обычному курсору в освобождаемом курсоре.
Visual FoxPro сохраняет все несохраненные изменения. Например, у вас нет необходимости вызывать функцию TABLEUPDATE( ) перед высвобождением курсора.

возврат к списку PEM
CursorFill

Выполняет команду, занесенную в свойство SelectCmd на источнике данных, указанном в свойстве DataSource, создает курсор, извлекает данные и производит все необходимые преобразования данных в соответствии со значениями, установленными в свойствах DataSourceType и CursorSchema.

Синтаксис:

CursorAdapter.CursorFill( [ lUseCursorSchema [, lNoData [, nOptions [, Source ] ] ] ] )

Параметры:

UseCursorSchema - значения параметров приведены в таблице:

lUseCursorSchema Описание
True (.T.) Использует схему из CursorSchema для создания курсора.
Замечание: Visual FoxPro генерирует сообщение об ошибке, в случае если CursorSchema требуется, но отсутствует как таковая или является действительной.
False (.F.) или пустой Схема в свойстве CursorSchema не используется для создания курсора.
Вместо этого, CursorFill создает курсор, используя типы данных, нормально определяемые Visual FoxPro в соответствии со свойством DataSourceType объекта CursorAdapter.
lNoData - значения параметров приведены в таблице:
lNoData Описание
True (.T.) Создает курсор, но не заполняет его данными.
Когда свойство DataSourceType установлено в "ADO", и SelectCmd содержит параметры, CursorFill пытается оценить параметры в свойстве SelectCmd. Если CursorFill не может оценить параметры , то используются null (.NULL.) величины для этих величин параметров.
Если свойства DataSourceType установлено в "XML", CursorFill создает курсор используя схему, указанную в свойстве CursorSchema, независимо от величины, направленной свойству lUseCursorSchema. Если свойство CursorSchema пустое или содержит иллегальное значение , Visual FoxPro генерирует ошибку.
False (.F.) или пустое Создает курсор и заполняет его данными.

Если вы указали lNoData для метода CursorFill, и установили команда в свойстве SelectCmd представляет собой команду SQL SELECTна параметризованной представлении, Visual FoxPro выведет вам запрос на ввод параметра. Это действие эквивалентно следующей команде:

SELECT * FROM "customers in specific country" WHERE 1=0

nOptions - определяет численные величины или флаги для создания курсора. Величины, указанные для nOptions используются также для метода CursorRefresh.

Приведенная ниже таблица показывает значения для параметра nOptions в зависимости от установок свойства DataSourceType.

DataSourceType nOptions
"ADO" Целое число представляющее тип Command или значения Execution Enum, которые вы желаете установить для метода Open объекта ActiveX Data Object (ADO) RecordSet. По умолчанию равен -1 (минус единице).
"XML" Любая комбинация действительный флагов функции XMLTOCURSOR( ), за исключением 8192, который автоматически устанавливается, когда параметр lUseCursorSchema установлен в True (.T.).

Source - определяет ссылку на объект ADO Command или открытый объект RecordSet. Объект ADO Command должен иметь свое свойство ActiveConnection установленным на подходящий и уже открытый объект ADO Connection. Когда объект ADO Command направляется в Source, Visual FoxPro устанвливает свойство CommandText объекта ADO Command в величину, содержащуюся в свойстве SelectCmd объекта CursorAdapter. Visual FoxPro разбирает любые параметры в SelectCmd и создает или устанавливает значения параметров в объекте ADO Command. Далее метод CursorFill исполняется следующим образом:

Синтаксис:

CursorAdapter.DataSource.Open(Source,,,,Options)

В этом вызове, DataSource является объектом ADO RecordSet, используемом в свойстве DataSource объекта CursorAdapter, и Source является объектом ADO Command указанным в этом параметре.

Объект ADO RecordSet должен быть открыт до того, как направлен параметру Source, CursorFill исполняется на объекте ADO RecordSet и соответственно заполняет курсор. В таком случае, единственное свойство DataSourceType объекта CursorAdapter должно быть установлено в "ADO" и в таком случае свойства SelectCmd и DataSource не используются.

Если вы не указали значение для Source, CursorFill исполняется следующим образом:

Синтаксис:

CursorAdapter.DataSource.Open(CursorAdapter.SelectCmd,,,,Options )

В таком вызове DataSource представляет собой объект ADO RecordSet указанный в свойстве DataSource. Однако, объект ADO RecordSet непосредственно исполняет команду, указанныую в свойстве SelectCmd объекта CursorAdapter вместо использования объекта ADO Command. ADO RecordSet должен иметь свое свойство ActiveConnection установленным на действительный объект ADO Connection.

Возвращаемые величины - логический тип данных. CursorFill возвращает True (.T.) если курсор создан или, в противном случае, False (.F.).

Замечание: если CursorFill возвращает False (.F.), курсор сбрасывается. В этом случае события BeforeCursorClose и AfterCursorClose не срабатывают. Для получения информации об ошибке, в случае, если CursorFill возвращает False (.F.), вы должны вызвать функцию AERROR( ) так как команда ON ERROR не исполняется.

Примечание - приведенная ниже таблица показывает, как CursorFill ведет себя в зависимости от установки свойства DataSourceType объекта CursorAdapter.

DataSourceType SelectCmd
"Native" CursorFill исполняет SelectCmd, которое должно содержать действительную команду Visual FoxPro SQL SELECT.
"ADO" CursorFill исполняет SelectCmd посредством вызова метода Open объекта ADO RecordSet. Поэтому вы должны установить свойство DataSource объекта CursorAdapter на действительный объект ADO RecordSet.
Если SelectCmd содержит параметры, вы должны указать действительный объект ADO Command в параметре Source в методе CursorFill.
Закрытие курсора вручную закрывает также ассоцциированный ADO RecordSet. Однако, это не применимо, если курсор был получен с использованием метода CursorAttach.
 
CursorFill не устанавливает свойство MaxRecords объекта ADO RecordSet равным значению свойства MaxRecords своего объекта CursorAdapter.
"ODBC" CursorFill исполняет SelectCmd используя хэндл соединения свойства DataSource объекта CursorAdapter. Visual FoxPro возвращает курсор используя SQL Pass-Through. Имя курсора соответсвует алиасу полученному вызовом This.Alias.
"XML" Одно из слеlующих:
  • SelectCmd представляет собой выражение, которое оценивается как действительный объект XMLTable. CursorFill вызывает метод ToCursor объекта XMLTable и связывает полученный курсор.
  • SelectCmd представляет собой выражение, команду или функцию, которые возвращают XML. CursorFill использует функцию XMLTOCURSOR() для преобразования XML в курсор. Для более детальной информации смотри список дополнительных примечаний.

В дополнение, когда свойство DataSourceType установлено в "XML", и SelectCmd представляет собой выражение, команду или функцию, которые возвращают XML:

  • Требования XML являются теми же самыми, как те, что передаются в качестве первого параметра функции XMLTOCURSOR(). Вы можете указать эти требования посылкой подходящих XMLTOCURSOR() значений флагов nFlags параметру nOptions метода CursorFill. Вы можете указать дополнительные флаги XMLTOCURSOR() или комбинировать их тем же самым образом, как и в XMLTOCURSOR().
  • CursorFill выбирает между eExpression и cXMLFile из XMLTOCURSOR() на основе nOptions:
    • Если nOptions равно 0, CursorFill обрабатывает XMLSource как eExpression и предполагает переменную памяти содержащую действительную XML строку или выражение, которое в результате вернет XML строку.
    • Если nOptions равно 512, CursorFill обрабатывает XMLSource как cXMLFile и предполагает строковое выражение, заключенное в кавычки ("") или переменную памяти, содержащую действительное имя файла.
  • Параметр cCursorName в функции XMLTOCURSOR( ) всегда является текущим значением, содержащемся в свойстве Alias для объекта CursorAdapter.
  • Если параметр lUseCursorSchema равен True (.T.), CursorFill автоматически добавляет флаг 8192 для принудительного использования существующего курсора для XML.

Когда Visual FoxPro вызывает CursorFill, то закрывает текущий связанный екрсор, если таковой существует, и рабочая область, которая содержит вновь созданный курсор становится активной.

Замечание: если вы хотите сохранить текущий связанный курсор вызовите метод CursorDetach перед вызовом метода CursorFill.

Когда Visual FoxPro связывает курсор, вы не можете изменить его структуру посредством команд MODIFY STRUCTURE или SQL ALTER TABLE.

возврат к списку PEM
CursorRefresh

Обновляет курсор текущими данными из источника данных. CursorRefresh заново исполняет значение параметра сSelectCmd в событии BeforeCursorRefresh относительно DataSourceType объекта CursorAdapter.

Замечание: если параметр сSelectCmd в событии BeforeCursorRefresh содержит значение, вы можете изменить область записей, которые возвращаются через первичный запрос путем изменения параметров.

Синтаксис:

CursorAdapter.CursorRefresh()

Возвращаемые величины - логический тип данных. CursorRefresh возвращает True (.T.) если заполнение курсора новыми данными данными состоялось, в противном случае возвращает False (.F.).

Примечание:

CursorRefresh обновляет следующие свойства курсоров, основанных на источниках данных типа ADO или ODBC значениями соответствующих свойств объекта CursorAdapter:

  • AllowSimultaneousFetch
  • CompareMemo
  • FetchAsNeeded
  • FetchMemo
  • FetchSize
  • MaxRecords
  • Prepared
  • UseMemoSize

Visual FoxPro генерирует сообщение об ошибке, в случае если курсор содержит несохраненные изменения.

Если свойство DataSourceType установлено в "ADO" то при исполнении метода CursorFill, CursorRefresh ведет себя следующим образом:

  • CursorAdapter объект имеет курсор, образованный исполнением SelectCmd методом CursorFill:
    • Устанавливает свойство CommandText объекта ADO Command для объекта ActiveCommand объекта ADO RecordSet к значению SelectCmd используемому для открытия ADO RecordSet за исключением случая, если CommandText уже содержит эту величину.
    • Обновляет коллекцию параметров объекта Command и повторно оченивает значения параметров.
    • Вызывает метод Requery объекта ADO RecordSetи посылает эти же величины параметру nOptions, используемому CursorFill для открытия ADO RecordSet.
  • Объект CursorAdapter имеет связанный курсор, полученный из посылки Source параметра уже открытого ADO RecordSet методу CursorFill.
    • Вызывает метод Requery объекта ADO RecordSet и посылает теже самые величину параметру nOptions, используемому методом CursorFill.

Пример 1

Следующий примекр иллюстрирует получение резальтата, с использованием ADO с параметрами и использование CursorRefresh для получения новых данных. Установки строки соединения для SQL Server (localhost) и Visual FoxPro OLE DB Provider следующие:

* .ConnectionString = 'provider=SQLOLEDB.1;data source=localhost;'+ 
* 'initial catalog=Northwind;trusted_connection=yes'
CLEAR
LOCAL loConn AS ADODB.CONNECTION, ;
   loCommand AS ADODB.COMMAND, ;
   loException AS EXCEPTION, ;
   loCursor AS CURSORADAPTER, ;
   country, ;
   laErrors[1]
loConn = CREATEOBJECT('ADODB.Connection')
WITH loConn
   .ConnectionString = 'provider=vfpoledb;data source=' + ;
   HOME(2)+'northwind\Northwind.dbc'
   TRY
      .OPEN()
   CATCH TO loException
      MESSAGEBOX(loException.MESSAGE)
      CANCEL
   ENDTRY
ENDWITH
loCommand = CREATEOBJECT('ADODB.Command')
loCommand.ActiveConnection = loConn
loCursor = CREATEOBJECT('CursorAdapter')
WITH loCursor
   .ALIAS          = 'Customers'
   .DATASOURCETYPE = 'ADO'
   .SELECTCMD      = ;
   'select * from customers where country=?lcCountry'
   lcCountry       = 'Brazil'
   .DATASOURCE = CREATEOBJECT('ADODB.Recordset')
   .DATASOURCE.ActiveConnection = loConn
   llReturn = .CURSORFILL(.F., .F., 0, loCommand)
   IF llReturn
      BROWSE
      lcCountry = 'Canada'
      llReturn  = .CURSORREFRESH()
      IF llReturn
         BROWSE
      ENDIF llReturn
   ELSE
      AERROR(laErrors)
      MESSAGEBOX(laErrors[2])
   ENDIF llReturn
ENDWITH

Следующий пример иллюстрирует использование CursorRefresh с уже открытым ADO Recordset. Установки строки соединения для SQL Server (localhost) и Visual FoxPro OLE DB Provider следующие:

* .ConnectionString = 'provider=SQLOLEDB.1;data source=localhost;' + ;
* 'initial catalog=Northwind;trusted_connection=yes'
CLEAR
LOCAL loConn AS ADODB.CONNECTION, ;
   loCommand AS ADODB.COMMAND, ;
   loParam AS ADODB.PARAMETER, ;
   loRs AS ADODB.Recordset,;
   loException AS EXCEPTION, ;
   loCursor AS CURSORADAPTER, ;
   lcCountry, ;
   laErrors[1]
loConn = CREATEOBJECT('ADODB.Connection')
WITH loConn
   .ConnectionString = 'provider=vfpoledb;data source=' + ;
      HOME(2)+'northwind\Northwind.dbc'
   TRY
      .OPEN()
   CATCH TO loException
      MESSAGEBOX(loException.MESSAGE)
      CANCEL
   ENDTRY
ENDWITH
loCommand = CREATEOBJECT('ADODB.Command')
loCommand.CommandText = ;
   "SELECT * FROM customers WHERE Country = ?"
loParam = loCommand.CreateParameter("Country", 129, 1, 15, "")
loCommand.PARAMETERS.APPEND(loParam)
loCommand.PARAMETERS("Country") = "Brazil"
loCommand.ActiveConnection = loConn
loRs = loCommand.Execute()
loCursor = CREATEOBJECT('CursorAdapter')
WITH loCursor
   .ALIAS          = 'Customers'
   .DATASOURCETYPE = 'ADO'
   llReturn = .CURSORFILL(.F., .F., 0, loRs)
   IF llReturn
      BROWSE
      loRs.ActiveCommand.PARAMETERS("Country") = "Canada"
      llReturn  = .CURSORREFRESH()
      IF llReturn
         BROWSE
      ENDIF llReturn
   ELSE
      AERROR(laErrors)
      MESSAGEBOX(laErrors[2])
   ENDIF llReturn
ENDWITH
возврат к списку PEM
ReadExpression Стандартный метод для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM
ReadMethod Стандартный метод для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM
ResetToDefault Стандартный метод для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM
WriteExpression Стандартный метод для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM

События

AfterCursorAttach

Происходит немедленно после того, как объект CursorAdapter попытается связать курсор. Вы можете использовать это событие для выполения задач, таких как оформление курсоров и курсор-адаптеров как вам требуется и выполнить проверку соответствия (validations).

PROCEDURE Object.AfterCursorAttach
LPARAMETERS cAlias, lResult

Параметры

cAlias

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

lResult

Устанавливает True (.T.) если курсор или таблица связаны успешно, в противном случае устанавливает False (.F.).

возврат к списку PEM
AfterCursorClose

Происходит немедленно после того, как курсор закрывается. Вы можете использовать это событие для сброса свойств объекта CursorAdapter и тому подобного.

PROCEDURE Object.AfterCursorClose
LPARAMETERS cAlias, lResult

Параметры

cAlias

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

lResult

Устанавливает True (.T.) если курсор закрыт успешно, в противном случае устанавливает False (.F.), например, если курсор содержит несохраненные изменения.

Примечание.

Вы должны очистить или сбросить свойство Alias если вы желаете удалить его предыдущее значение. Когда закрывается расширенный курсор, Visual FoxPro отмечает, что объект CursorAdapter не имеет больше связанного курсора, но не очищает свойство Alias.

возврат к списку PEM
AfterCursorDetach

Происходит немедленно после того, как объект CursorAdapter освобождает курсор. Вы можете использовать событие AfterCursorDetach для сброса свойств объекта CursorAdapter и проведения действий на освобождаемой таблице.

PROCEDURE Object.AfterCursorDetach
LPARAMETERS cAlias, lResult

Параметры

cAlias

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

lResult

Устанавливает True (.T.) если курсор освобожден успешно, в противном случае устанавливает False (.F.).

возврат к списку PEM
AfterCursorFill

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

PROCEDURE Object.AfterCursorFill
LPARAMETERS lUseCursorSchema, lnoDataOnLoad, cSelectCmd, lResult

Параметры:

lUseCursorSchema

Определяет значение параметра lUseCursorSchema из метода CursorFill. lnoDataOnLoad

Указывает значение в параметре lNoData из метода CursorFill. cSelectCmd

Определяет тот же самый параметр SelectCmd используемый событием BeforeCursorFill.

lResult

Определяет значение True (.T.) или False (.F.) возвращаемое методом CursorFill.

Примечание

Если любой из первых трех параметров изменяются в событииBeforeCursorFill, событие AfterCursorFill использует измененные значения вместо действительных в свойствах , которые не изменились.

Пример.

Следующий пример иллюстрирует использование события AfterCursorFill для установки индексного упорядочивания из предустановленного свойства:

PROCEDURE AfterCursorFill
LPARAMETERS lUseCursorSchema, noDataOnLoad, cSelectCmd, lResult
SELECT(this.Alias)
SET ORDER TO (this.IndexOrder)
ENDPROC
возврат к списку PEM
AfterCursorRefresh

Происходит немедленно после того, как объект CursorAdapter попытается освежить данные в курсоре.

PROCEDURE Object.AfterCursorRefresh
LPARAMETERS cSelectCmd, lResult

Параметры:

cSelectCmd

Определяет текущее значение SelectCmd установленное событием BeforeCursorFill. Например, если параметр cSelectCmd изменен в событии BeforeCursorFill, тогда используется измененная величина SelectCmd. Однако, значение свойства SelectCmd не меняется.

lResult

Определяет значение True (.T.) или False (.F.) возвращаемое методом CursorRefresh.

возврат к списку PEM
AfterCursorUpdate

Происходит немедленно после всех немедленно происшедших событий AfterUpdate, AfterDelete или AfterInsert и до возвратов функции TABLEUPDATE().

PROCEDURE Object.AfterCursorUpdate
LPARAMETERS nRows, lTableUpdateResult, cErrorArray

Параметры:

nRows

Определяет установку из параметра nRows из операции функции TABLEUPDATE().

lTableUpdateResult

Определяет значение, возвращаемое операцией TABLEUPDATE().

cErrorArray

Содержит содержимое параметра cErrorArray из операции TABLEUPDATE(). Visual FoxPro заполняет этот массив из TABLEUPDATE() только при обстоятельствах описываемых в описании функции TABLEUPDATE().

Примечания

AfterCursorUpdate происходит лишь однажды на процесс при завершении процесса обновления. Если обновляется множество строк, то события AfterUpdate, AfterInsert и AfterDelete срабатывают для каждой обновляемой строки, если условие выполняется.

Вы можете вызвать функцию AERROR() для возврата ошибок из источника данных.

возврат к списку PEM
AfterDelete

Происходит немедленно после того, как для записи произведена операция удаления.

Замечание: если используется пакетное обновление, то есть в случае, если значение свойства BatchUpdateCount более чем 1, AfterDelete не срабатывает.

PROCEDURE Object.AfterDelete 
LPARAMETERS cFldState, lForce, cDeleteCmd, lResult

Параметры.

cFldState

Определяет состояние поля обрабатываемой строки. Это то же самое значение, которое может быть получено с помошью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение параметра lForce из функции TABLEUPDATE().

cDeleteCmd

Определяет значение параметра cDeleteCmd из события BeforeDelete.

lResult

Определяет величину возвращаемую функцией TABLEUPDATE() исполняемой на этой записи. Если lResult равен True (.T.), состояния полей для этой записи очищаются. Если lResult равен False (.F.) то состояния полей для этой записи остаются неизменными. Вы можете изменить значение lResult для сброса возвращаемого результата.

Примечания.

Вы можете вызвать функцию AERROR() для возврата ошибок из источника данных.

возврат к списку PEM
AfterInsert

Происходит немедленно после того, как для записи произведена операция вставки.

Замечание: если используется пакетное обновление, то есть в случае, если значение свойства BatchUpdateCount более чем 1, AfterInsert не срабатывает.

PROCEDURE Object.AfterInsert
LPARAMETERS cFldState, lForce, cInsertCmd, lResult

Параметры.

cFldState

Определяет состояние поля обрабатываемой строки. Это то же самое значение, которое может быть получено с помошью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение параметра lForce из функции TABLEUPDATE().

cInsertCmd

Определяет значение параметра cInsertCmd из события BeforeInsert. lResult

Определяет величину возвращаемую функцией TABLEUPDATE() исполняемой на этой записи. Если lResult равен True (.T.), состояния полей для этой записи очищаются. Если lResult равен False (.F.) то состояния полей для этой записи остаются неизменными. Вы можете изменить значение lResult для сброса возвращаемого результата.

Примечания.

Вы можете вызвать функцию AERROR() для возврата ошибок из источника данных.

возврат к списку PEM
AfterUpdate

Происходит немедленно после того, как для записи произведена операция обновления.

Замечание: если используется пакетное обновление, то есть в случае, если значение свойства BatchUpdateCount более чем 1, AfterUpdate не срабатывает.

PROCEDURE Object.AfterUpdate
LPARAMETERS cFldState, lForce, nUpdateType, UpdateInsertCmd, DeleteCmd, lResult

Параметры.

cFldState

Определяет состояние поля обрабатываемой строки. Это то же самое значение, которое может быть получено с помошью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение параметра lForce из функции TABLEUPDATE().

nUpdateType

Определяет значение параметра nUpdateType из события BeforeUpdate.

UpdateInsertCmd

Определяет значение параметра UpdateInsertCmd из события BeforeUpdate.

DeleteCmd

Определяет значение параметра cDeleteCmd из события BeforeInsert.

lResult

Определяет величину возвращаемую функцией TABLEUPDATE() исполняемой на этой записи. Если lResult равен True (.T.), состояния полей для этой записи очищаются. Если lResult равен False (.F.) то состояния полей для этой записи остаются неизменными. Вы можете изменить значение lResult для сброса возвращаемого результата.

Примечания.

Вы можете вызвать функцию AERROR() для возврата ошибок из источника данных.

возврат к списку PEM
BeforeCursorAttach

Происходит немедленно до того, как объект CursorAdapter попытается связать курсор. Вы можете использовать это событие для выполнения любых необходимых операций до связывания курсора или таблицы - определение алиаса для связывания и тому подобного.

PROCEDURE Object.BeforeCursorAttach 
LPARAMETERS cAlias

Параметры.

cAlias

Указывает алиас связываемого курсора или таблицы.

Примечание - если код в методе, ассоциированном с соыбтием BeforeCursorAttach возвратит False (.F.), связывания курсора не происходит.

Замечание - Объект CursorAdapter принимает во внимание любые изменения, которые могут быть сделаны в с параметром cAlias в событии BeforeCursorAttach.

Следующий пример иллюстрирует как открыть локальное представление в событии BeforeCursorAttach, так чтобы вы могли связать его с объектом CursorAdapter:

PROCEDURE BeforeCursorAttach
OPEN DATABASE HOME(2)+"tastrade\data\tastrade.dbc"
USE 'product listing'
ENDPROC

Затем выполните соедующий вызов для связывания представления:

CursorAttach('product listing', .T.)
возврат к списку PEM
BeforeCursorClose

Происходит немедленно перед закрытием курсора. Вы можете использовать это событие для выполнения любых операций, необходимых перед закрытием курсоров, таблиц.

PROCEDURE Object.BeforeCursorClose 
LPARAMETERS cAlias

Параметры

cAlias - алиас закрываемых курсора или таблицы.

Примечание

Если код в методе, ассоциированном с событием BeforeCursorClose возвратит False (.F.), курсор не будет закрыт и Visual FoxPro сгенерирует сообщение об ошибке.

возврат к списку PEM
BeforeCursorDetach Происходит немедленно перед тем, как объект CursorAdapter освободит курсор.Вы можете использовать это событие для выполнения любых операций на осовбождаемой курсоре или таблице.

PROCEDURE Object.BeforeCursorAttach LPARAMETERS cAlias

Параметры

cAlias - алиас закрываемых курсора или таблицы.

Примечание

Если код в методе, ассоциированном с событием BeforeCursorDetach возвратит False (.F.), курсор не будет освобожден и любые возвращаемые значения будут игнорированы.

возврат к списку PEM
BeforeCursorFill

Происходит немедленно перед тем, как объект CursorAdapter попытается курсор связать новый курсор.

PROCEDURE Object.BeforeCursorFill 
LPARAMETERS lUseCursorSchema, lNoDataOnLoad, cSelectCmd

Параметры

lUseCursorSchema

Определяет значение параметра lUseCursorSchema из метода CursorFill.

lNoDataOnLoad

Определяет значение параметра lNoData в методе CursorFill.

cSelectCmd

Определяет текущее значение свойства SelectCmd. Вы можете изменить значение параметра cSelectCmd в этом событии. Однако, значение свойства SelectCmd не будет изменено. Если вы измените значение параметра cSelectCmd в этом событии, Visual FoxPro будет использовать измененное значение cSelectCmd.

Примечания

Visual FoxPro хранит изменения значений, которые используются методом CursorFill. Метод CursorRefresh использует значение параметра сSelectCmd, а не свойства SelectCmd. Это облегчает конструирование пользовательских запросов "на лету". Например, вы можете хранить основной запрос команды SELECT – SQL в свойстве SelectCmd и добавлять опцию WHERE к параметру сSelectCmd в этом событии без изменения нижележащего значения свойства. Значение параметра сSelectCmd затем поссылается событию AfterCursorFill.

Если код в методе, ассоциированном с событием BeforeCursorFill возвратит False (.F.), CursorFill не будет исполнен и текущий связанный курсор останется незакрытым. Однако, если код в методе, ассоциированном с событием BeforeCursorFill невозвратит false текущий связанный курсор закрывается и исполняется метод CursorFill.

Изменения, сделанные в этих параметрах имеют преимущество на начальными величинами, хранящимися в соответствующих свойствах или направляемыми в метод CursorFill.

возврат к списку PEM
BeforeCursorRefresh

Происходит непосредственно перед тем, как объект CursorAdapter освежит данные в курсоре.

PROCEDURE Object.BeforeCursorRefresh 
LPARAMETERS cSelectCmd

Параметры

cSelectCmd

Определяет текущее значение SelectCmd как оно установлено в событии BeforeCursorFill. Например, если параметр cSelectCmd изменяется BeforeCursorFill, тогда используется измененная величина SelectCmd. Однако, значение свойства SelectCmd не изменяется

Примечание.

Если код в методе, ассоциированном с событием BeforeCursorRefresh возвращает значение False (.F.), объект CursorAdapter не освежается.

возврат к списку PEM
BeforeCursorUpdate Происходит непосредственно перед исполнение функции TABLEUPDATE() и не имеет каких-либо специфических по отношению к CursorAdapter особенностей.Стандартный метод для всех классов VFP.
возврат к списку PEM
BeforeDelete

Происходит непосредственно перед выполнением команды delete на записи.

Замечание: если используется пакетное обновление, то есть, свойству BatchUpdateCount объекта CursorAdapter присвоено значение бльшее, чем 1, событие BeforeDelete не происходит.

PROCEDURE Object.BeforeDelete 
LPARAMETERS cFldState, lForce, cDeleteCmd

Параметры

cFldState

Определяет состояния полей обрабатываемой строки. Это таже величина, которая получается с помощью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение паратра lForce из фукнции TABLEUPDATE().

cDeleteCmd

Определяет значение свойства DeleteCmd. Visual FoxPro использует значение cDeleteCmd как команды удаления, которую вы можете изменеить именно в этом событии. Однако, если вы изменили значение параметра cDeleteCmd, значение свойства DeleteCmd объекта СА останется неизменным.

Примечание

Если код в методе, ассоциированным с событием BeforeDelete вернет False (.F.), операция удаления не производится.

возврат к списку PEM
BeforeInsert

Происходит непосредственно перед выполнением команды delete на записи.

Замечание: если используется пакетное обновление, то есть, свойству BatchUpdateCount объекта CursorAdapter присвоено значение бльшее, чем 1, событие BeforeInsert не происходит.

PROCEDURE Object.BeforeInsert 
LPARAMETERS cFldState, lForce, cInsertCmd

Параметры

cFldState

Определяет состояния полей обрабатываемой строки. Это таже величина, которая получается с помощью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение паратра lForce из фукнции TABLEUPDATE().

cInsertCmd

Определяет значение свойства InsertCmd. Visual FoxPro использует значение cInsertCmd как команду вставки, которую вы можете изменить в этом событии . Однако, если вы измените значение параметра cInsertCmd, значение свойства InsertCmd объекта СА останется неизменным.

Если код в методе, ассоциированным с событием BeforeInsert вернет False (.F.), операция удаления не производится.

возврат к списку PEM
BeforeUpdate

Происходит непосредственно перед выполнением команды update на записи.

Замечание: если используется пакетное обновление, то есть, свойству BatchUpdateCount объекта CursorAdapter присвоено значение бльшее, чем 1, событие BeforeUpdate не происходит.

PROCEDURE Object.BeforeUpdate LPARAMETERS cFldState, lForce, nUpdateType, cUpdateInsertCmd, cDeleteCmd

Параметры

cFldState

Определяет состояния полей обрабатываемой строки. Это таже величина, которая получается с помощью функции GETFLDSTATE(-1).

Например, это значение может быть символьной строкой, состоящей из значений признаков(статусов) удаления и редактирования для всех полей в таблице или курсоре. Если таблица имеет пять полей и только первое поле было редактировано, функция GETFLDSTATE() вернет значение 121111. Число 1 в первой позиции указывает на то, что признак(статус) удаления не был изменен.

lForce

Определяет значение паратра lForce из фукнции TABLEUPDATE().

nUpdateType

Определяет численное значение в свойстве UpdateType объекта CursorAdapter. Для этого параметры возможны следующие значения:
  • 1 - Обновить старые данные новыми. (По умолчанию)
  • 2 Обновить данные последовательным удалением старых, а затем вставкой новых.

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

cUpdateInsertCmd

Определяет значение свойств UpdateCmd или InsertCmd соответсвенно. Visual FoxPro использует значение этого параметра как команд обюновления вставки, которые вы можете изменить в этом событии. Однако, если вы изменили параметр cUpdateInsertCmd, свойства UpdateCmd и InsertCmd остаются неизменными.

cDeleteCmd

Определяет, что cDeleteCmd является пустым, если параметр nUpdateType установлен равным 1. С другой стороны, установка cDeleteCmd к величине свойства DeleteCmd приведет к тому, что Visual FoxPro будет использовать значение cDeleteCmd, как команды удаления, котору. вы можете изменить в этом событии. Однако, если вы изменитн параметр cDeleteCmd, значение свойсва DeleteCmd останется неизменным.

Примечание.

Если код в событии BeforeUpdate вернет False (.F.),операция обновления производится не будет.

возврат к списку PEM
Destroy Стандартное событие для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM
Error Стандартное собыьте для всех классов VFP не имеющий особенностей при использовании с CursorAdapter.
возврат к списку PEM
Init Стандартное событие для всех классов VFP, не имеющее особенностей при использовании с CursorAdapter.
возврат к списку PEM
Селектор для быстрого перехода на сайты, связанные с Visual FoxPro.