Производит задержанную выборку полей Memo для целевой записи в курсоре в объекте CursorAdapter.
CursorAdapter.DelayedMemoFetch(cMemoName) |
Параметры
- cMemoName
-
Указывает имя мемо-поля выбираемого в текущую запись курсора, ассоциированного с объектом CursorAdapter.
Примечания
Применяется к классу: CursorAdapter
Когда свойство FetchMemo установлено в False (.F.), то разрешена возможность производить задержанную выборку мемо-поля. Задержанная выборка мемо-поля предотвращает перепись его содержимого во время вызовов методов CursorFill и CursorRefresh. Попытка извлечь содержимое мемо-поля выполняется тогда, когда приложение пытается получить доступ к значению полей. Приведенные ниже четыре члена CursorAdapter позволяют вам использовать задержанное извлечение содержимого мемо-полей.
-
Метод DelayedMemoFetch
-
Свойство FetchMemoDataSourceType
-
Свойство FetchMemoDataSource
-
Свойство FetchMemoCmdList
Метод DelayedMemoFetch производит задержанное извлечение для Memo-поля cMemoName в текущей записи. Этот метод возвращает содержимое мемо-поля. В случае, если информация не может быть извлечена, генерируется ошибка.
Замечание |
|---|
|
Для того, что задержанное извлечение мемо-поля работало с CursorAdapter, ассоциированный с ним курсор должен быть открыт в монопольном (exclusive) режиме. |
Замечание |
|---|
|
Метод DelayedMemoFetch не должен вызываться для иных целей, кроме как выполнения задержанного извлечения Memo. Ни при каких условиях, метод не должен изменять текущую запись. |
Для получения доступа к данным в целевой записи, Visual FoxPro открывает курсор "только для чтения" с целевой запись в качестве текущей. Этот курсор открывается в монопольном (exclusively) режиме, а его псевдоимя содержится в свойстве RefreshAlias. Если свойство RefreshAlias ничего не содержит, тогда метод DelayedMemoFetch не вызывается движком данных Visual FoxPro.
Используя этот метод вы можете возвратить содержимое поля типа General. Для этого, вам необходимо конвертировать содержимое этого поля в тип Blob с помощью функции CAST( ).
В приведенном ниже примере показано использование DelayedMemoFetch для извлечения данных полей Memo и General из таблицы Northwind Categories через Visual FoxPro OLE DB Provider.
Скопировать
код | |
|---|---|
CLOSE DATABASES all
CLEAR
LOCAL oCA as CursorAdapter
LOCAL oConn AS ADODB.Connection
LOCAL oRS AS ADODB.Recordset
LOCAL cConnStr,lcNorthwindFile
lcNorthwindFile = HOME()+"Samples\Northwind\northwind.dbc"
cConnStr = [Provider=VFPOLEDB.1;Data Source=&lcNorthwindFile.;Password="";Collating Sequence=MACHINE]
oConn = createobject('ADODB.Connection')
oConn.Open(cConnStr)
oRS = CREATEOBJECT("ADODB.Recordset")
oRS.ActiveConnection = oConn
oRS.CursorLocation = 3 && adUseClient
oRS.CursorType = 3&& adOpenStatic
oRS.LockType = 3&& adLockOptimistic
oCA=CREATEOBJECT("CADelayedFetch")
oCA.DataSource=oRS
IF !oCA.CursorFill()
AERROR(aerrs)
DISPLAY MEMORY LIKE aerrs
RETURN
ENDIF
GO TOP
BROWSE
DEFINE CLASS CADelayedFetch AS CursorAdapter
FetchMemo=.F.
DataSourceType="ADO"
SelectCmd="SELECT * from categories"
CursorSchema="categoryid i, categoryname c(15), description m, picture g"
UseCursorSchema=.T.
FUNCTION DelayedMemoFetch(cFieldName)
NODEFAULT
IF UPPER(cFieldName)==UPPER("picture")
RETURN CAST(DODEFAULT(cFieldName) as W)
ENDIF
RETURN [Modified value:] + DODEFAULT(cFieldName)
ENDFUNC
ENDDEFINE | |
Смотрите
также
© Microsoft Corporation. All rights reserved.
Перевод выполнен JS.
Замечание