Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Разработка корпоративных приложений в Access 2002 - Литвин П.

Литвин П. Разработка корпоративных приложений в Access 2002 — Спб.: Питер, 2002. — 848 c.
ISBN 5-314-00181-0
Скачать (прямая ссылка): razrabotkaprilojeniy2002.djvu
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 357 >> Следующая

Свойство RecordsetType
Свойство RecordsetType в проектах Access может иметь одно из двух значений. Если выбрать значение Snapshot, ни одно из выводимых в форме полей нельзя будет редактировать. Если же выбрать значение по умолчанию, Updatable Snapshot (Обновляемый статический набор), поля самой крайней таблицы со стороны "многие" можно будет редактировать (возможно, для этого понадобится ус- тгшоиить еще и описанное выше свойство UniqueTable).
Обновление данных
277
Свойство Fetch Defaults
Это свойство присутствует в формах как проектов Access, так и баз данных, хотя наиболее полезным оно является именно для проектов Access. Если свойству присвоить значение False (по умолчанию True), то при просмотре в форме новой записи значения полей, назначенные по умолчанию, отображаться не будут. Применение свойства FetchDefaults дает возможность немного оптимизировать работу проекта Access, особенно если сервер (SQL Server) загружен до предела.
Чего больше нет
У форм проектов Access имеются все те же свойства, что и у форм баз данных, за исключением одного - свойства RecordLocks. Как вы помните, в базе данных Access это свойство устанавливает тип блокировки: пессимистическую или оптимистическую. В проектах Access данная опция не нужна, поскольку для наборов записей из форм всегда применяется оптимистическая блокировка.
А еще в проектах Access не функционируют некоторые быстрые клавиши:
О Ctrl+Alt+Пробел - вставка значения по умолчанию в поле базы данных Access;
О F9 - обновление содержимого поля подстановки (но эта клавиша по-прежнему обновляет содержимое всей формы).
Обновление данных
Как естественно было бы предположить, правила обновления данных форм в проектах Access отличаются от таковых для баз данных. Ведь ядро базы данных совсем иное. Поэтому едва ли вас удивит, что правила обновления данных форм в проектах строже, чем в базах данных Access.
Вот их общие положения.
О Чтобы таблицу можно было обновлять, для нее должно быть определено либо ограничение первичного ключа (PRIMARY KEY), либо ограничение, требующее уникальности значений некоторого поля (UNIQUE), либо уникальный индекс по некоторому полю.
О Если форма базируется на единственной таблице и введенные данные удовлетворяют требованиям ограничения уникальности, ограничения первичного ключа или уникального индекса, эти данные могут быть сохранены в таблице.
О Поля в форме, базирующейся на представлении на основе единственной таблицы, могут быть обновлены, если может быть обновлена эта таблица, причем даже в том случае, если уникальное поле в представление не включено.
О В форме, которая базируется на операторе SQL, создающем объединение "один-ко-многим", могут быть обновлены только поля из самой крайней таблицы со стороны "многие". Однако данное ограничение действительно только для таблиц, принадлежащих базе данных SQL Server 6.5 или SQL Server 7. В базе данных SQL Server 2000 поля формы, базирующейся на операторе
278
Глава 7 " Разработка приложений ADP
SQL, создающем объединение "один-ко-многим", могут быть обновлены независимо от того, какая таблица содержит поле.
О В форме, базирующейся на представлении или хранимой процедуре, создающих объединение "один-ко-многим", могут быть обновлены только поля из самой крайней таблицы со стороны "многие", причем при условии, что эта таблица указана в свойстве формы UniqueTable.
О Поля объединения "многие-ко-многим" обновлять нельзя.
О Поля формы, для которых источником данных являются выражения, обновлять нельзя.
О Поля формы, для формирования значений которых используется оператор SQL с предложением GROUP BY или COMPUTE, обновлять нельзя.
О Поля формы, базирующейся на связанных таблицах, созданных с использованием необходимых операторов SQL, обновлять нельзя. Можно обновлять лишь поля формы, базирующейся на связанных таблицах, созданных на основе связанных серверов SQL Server. Но эта возможность зависит от драйвера OLE DB, служащего источником данных.
СОВЕТ
Если вам нужно обновлять поля с обеих сторон объединения "один-ко-многим" и сохранять данные в базе данных SQL Server 6.5 или SQL Server 7, подумайте о создании формы на основе таблицы со стороны "один" с подчиненной формой на основе таблицы со стороны "многие". Поскольку Access создает для этих форм отдельные наборы записей, никаких проблем с их обновлением не будет.
Использование транзакций в связанных формах
Во многом формы проектов Access гораздо более гибкие, чем формы ее баз данных. Одним из таковых является обработка транзакций в связанных формах. Годами разработчики приложений Access искали способы объединять группы выполняемых в формах изменений в транзакции и сохранять или отменять сразу всю группу изменений как единое целое. Для этого приходилось использовать временные таблицы или несвязанные формы и писать огромное количество кода. В проектах Access с помощью нового свойства формы Form.Recordset и кода ADO управление транзакциями в связанных формах осуществляется предельно просто.
Все начинается с создания обычной связанной формы. Неважно, как вы это сделаете - с помощь мастера или прямо в режиме конструктора. В любом случае по окончании конструирования формы переключитесь в редактор Visual Basic и добавьте в форму программный код для организации транзакций. Пример такого кода, взятый из модуля демонстрационной формы frmTransactions (базирующейся на таблице tbICustomer), приведен в листинге 7.1.
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 357 >> Следующая