Шаг 172 - Свойство LogMessages

Описание
Задает или возвращает значение, определяющее, будут ли сообщения, поступающие из источника данных ODBC, подключенного к ядру Microsoft Jet регистрироваться в таблице сообщений (только в рабочей области Microsoft Jet).
Перед тем как задать или прочитать значение свойства LogMessages, необходимо создать это свойство с помощью метода CreateProperty и добавить его в семейство Properties объекта QueryDef.

Значение
Задаваемое или возвращаемое значение является выражением типа Boolean, содержащим значение True, если задана регистрация сообщений, генерируемых источником данных ODBC.

Замечания
Некоторые запросы к серверу могут возвращать не только данные, но и сообщения. Если для свойства запроса LogMessages задано значение True, то ядро базы данных Microsoft Jet создает в текущей базе данных специальную таблицу, в которую помещаются возвращаемые сообщения. Таблицам сообщений присваивается имя пользователя, к которому добавляется дефис (-) и порядковые номера, начинающиеся с 00. Например, если по умолчанию используется имя пользователя "Admin", то таблицы с возвращаемыми сообщениями получат имена "Admin-00", "Admin-01" и т.д.
Если ожидается поступление сообщений в запросе, следует создать определяемое пользователем свойство LogMessages, добавить его в семейство объекта QueryDef, установить тип данных Boolean и задать значение True.
После того как данные в этих таблицах будут обработаны, можно удалить временные таблицы из базы данных вместе с запросом, в результате которого они были созданы.

Пример
Следующая программа использует свойства LogMessages и ReturnsRecords для создания запроса к серверу, который будет возвращать данные и любые сообщения, генерируемые удаленным сервером.

Sub LogMessagesX()

	Dim wrkJet As Workspace
	Dim dbsCurrent As Database
	Dim qdfTemp As QueryDef
	Dim prpNew As Property
	Dim rstTemp As Recordset
	' Создает объект Workspace Microsoft Jet.
	Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
	Set dbsCurrent = wrkJet.OpenDatabase("DB1.mdb")
	' Создает объект QueryDef, который будет сохранять
	' поступающие с сервера сообщения во временных таблицах.
	Set qdfTemp = dbsCurrent.CreateQueryDef("NewQueryDef")
	qdfTemp.Connect = "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers"
	qdfTemp.SQL = "SELECT * FROM stores"
	qdfTemp.ReturnsRecords = True
	Set prpNew = qdfTemp.CreateProperty("LogMessages", dbBoolean, True)
	qdfTemp.Properties.Append prpNew
	' Выполняет запрос и отображает результаты.
	Set rstTemp = qdfTemp.OpenRecordset()
	Debug.Print "Содержимое набора записей:"
	With rstTemp
		Do While Not .EOF
			Debug.Print , .Fields(0), .Fields(1)
			.MoveNext
		Loop
		.Close
	End With
	' Удаляет новый объект QueryDef, созданный для демонстрации.
	dbsCurrent.QueryDefs.Delete qdfTemp.Name
	dbsCurrent.Close
	wrkJet.Close
End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.04.2002