Производит задержанную выборку полей 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.