Интернет-журнал "Домашняя лаборатория", 2007 №4
Шрифт:
Таким образом, для редактирования текущей записи надо сделать следующее:
1. Позиционируйте указатель текущей записи на запись, которую вы хотите редактировать.
2. Определите новые значения в полях текущей записи.
3. Используйте метод Update или любой из методов Move
Следующий пример показывает, как с помощью программного кода изменить содержимое поля PubID в первой записи таблицы Titles. Обратите внимание, что вы можете изменить данные либо в самом наборе записей, либо в связанном объекте управления:
Data1.DatabaseName = "C: \VB5\BIBLIО2.MDB"
Data1.RecordSource = "Titles"
Data1.Refresh
Data1.Recordset("PubID") = "48"
TxtPub.Text = "Visual Basic"
Data1.Recordset.Update
Удаление
Чтобы удалить запись, установите указатель на требуемую запись и примените метод Delete объекта Recordset. Удаление одной записи нам уже встречалось при изучении свойства Recordset объекта управления данными. Чтобы удалить группу записей, надо повторить подобные действия необходимое количество раз. В следующем примере из таблицы Titles базы данных BIBLIO.MDB удаляются все записи, у которых поле “Year Published” содержит величину меньшую, чем 1989.
Data1.DatabaseName="C: \VB5\BIBLIO.MDB"
Data1.RecordSource="Select * from Titles where [Year Published]<1989"
Data1.Refresh
Do While Data1.Recordset.EOF = False
Data1.Recordset.Delete
Data1.Recordset.MoveNext
Loop
В этом примере при каждом проходе тела цикла используется метод MoveNext для перемещения указателя на следующую запись. Вам необходимо использовать этот метод, так как после удаления текущая запись становится недопустимой (invalid) и любая попытка доступа к ней вызовет ошибку.
Использование пары методов Delete и MoveNext не является единственным способом удаления сразу нескольких записей из базы данных. Для аналогичных целей можно использовать соответствующий SQL-запрос. Например, вместо приведенного выше кода можно использовать аналогичный по своему действию SQL-запрос:
DELETE FROM Titles WHERE [Year Published] < #1/1/1989#.
Причем, такой подход оказывается более эффективным, чем применение в цикле пары методов Delete и MoveNext.
Урок 6
Связанные с данными элементы управления
Применение связанных с данными элементов управления — Data-bound Controls уже кратко обсуждалось в уроке, посвященном работе с Data Control. Связанные элементы управления служат для отображения на экранной форме содержимого записей из таблиц базы данных и всегда используются только вместе с объектом Data.
После запуска приложений пользователи получают доступ к информации, содержащейся в базах данных именно через связанные элементы управления и проводят операции редактирования, обновления или выполняют другие манипуляции с данными. Любые изменения данных, сделанные пользователем в связанных элементах управления могут быть автоматически отражены в базе данных.
Практически все операции по взаимодействию связанных элементов управления с объектами управления данными реализованы внутри их самих и, поэтому, скрыты от программиста во время разработки приложения. Вследствие этого, применение связанных с данными элементов управления позволяет значительно упростить создание и понизить затраты времени на разработку приложений, ориентированных на работу с базами данных.
В Visual Basic 5 в качестве связанных с данными элементов управления может использоваться целый ряд обычных элементов управления:
Text box — текстовое окно, Label — метка, Check box — контрольный индикатор, Image — изображение, Picture box — графическое окно, List box — список, Combo box — комбинированное окно, OLE container control — OLE-контейнер.
Примеры использования текстовых окон для отображения содержимого записей базы данных были уже рассмотрены в предыдущей главе.
Кроме обычных элементов управления для работы с базами данных, пятая версия Visual Basic поддерживает несколько ActiveX объектов:
Data-bound list box — связанный с данными список,
Data-bound combo box — связанное с данными комбинированное окно,
MSFlexGrid — сетка,
Data-Bound Grid (DBGrid) — связянная с данными сетка,
MaskedEdit — окно редактирования с маской,
RichTextBox — улучшенное окно редактирования.
Все эти объекты, за исключением MaskedEdit и RichTextBox позволяют отображать на экране целые группы записей в виде списков или таблиц. А применение DBGrid позволяет настолько повысить функциональность разрабатываемых приложений, что об этом будет специальный разговор.
Более того, если по каким-либо причинам вас не удовлетворяют возможности поставляемых вместе с Visual Basic связанных элементов управления, вы можете использовать связанные элементы управления, созданные другими разработчиками, или можете сами создать собственные ActiveX объекты для связи с данными по вашему вкусу.
Общие свойства связанных элементов управления
Большинство связанных с данными элементов управления имеют три свойства, само название которых определяет их принадлежность к группе объектов, имеющих самое непосредственное отношение к данным — DataField, DataSource и DataChanged. Во всех названиях свойств присутствует слово Data. В следующей таблице приведено их краткое описание.
Свойство • Описание