Программирование >>  Проектирование интерфейса пользователя 

1 ... 32 33 34 [ 35 ] 36 37 38 ... 153


18: 19 20; 21

22 23 24

RS.Update RS.Close

Set RS = Nothing Set DB = Nothing End Sub

5 : 6:

10 11 12 13 14 15 16 17 18 19 20

Su MdRow ( )

Const Title = Sams Teach Yourself Access 2002 & Prograimning in 2 4 Hours

Dim RS As New ADODB.Recordset

RS.Open LIBRARY , CurrentProj act. Connection,

adOpenKeyset, adLockOptimistic RS.AddNew

RS( TITLE ) .Value = Title

RS ( AUTHOR ) .Value = Paul Kiinmel

RS( ISBN ) .Value = 0672316617

RS ( PAGECOUNT ) .Value = 400

RS( PUBLISHER ) .Value = Sams

RS ( PUBLICATIONDATE ) .Value = Date

RS.Update RS.Close

Set RS = Nothing End Sub

Оба примера кода решают задачу добавления новой записи в таблицу, содержащую сведения об опубликованных книгах. Сравнивая тексты листингов 7.1 и 7.2, обратите внимание, что второй из них содержит на три строки меньше. Чем меньше строк в программе, тем, как правило, она проще. Кроме того, в коде листинга 7.2 создается только один составной объект данн1х (RS класса Recordset) против двух (RS класса Recordset и DB - Database) в примере листинга 7.1, что также способствует снижению сложности кода.

При создании новых проектов, наряду с объектами ADO, до сих пор активно применяются и объекты DAO, поэтому вам, возможно, придется обращаться и к тем, и к другим. Но в нашей книге внимание будет сосредоточено только на объектах ADO.

Использование объектов ADODB

Объект класса ADODB - это объект СОМ. Ин1ми словами, его интерфейс может использоваться приложением Access, любой программой, способной исполнят! код на языке VBA (такой как Excel или Word) либо даже инструментальными средами программирования от сторонних производителей (не Microsoft) (скажем, Borland Delphi). Листинг 7.3 содержит фрагмент кода проекта Delphi с использованием функций ADODB.



Пример использования функций ADODB в проекте Delphi

Sender

procedure TForml.ButtonlClick

const

sTitle = Sams Teach Yourself Access 2002 Programming in 2 4

TObject)

sProvider = sDataSource

RecordSet : Connection

begin

Provider=Microsoft.Jet .OLEDB.4.0; ; = Data Source= 661707.mdb;

Variant; : Variant;

RecordSet :=CreateOLEObject ( ADODB.RecordSet ); Connection : = CreateOLEObject ( ADODB.Connect ion );

Connection . Open( sProvider + sDataSource ); RecordSet. Open ( LIBRARY, Connection, 1, 3 j.-RecordSet. AddNew;

:= sTitle;

RecordSet.Fields . Item{ AUTHOR) . Value :=PaulKiiranel ; RecordSet.Fields. Item(ISBN) .Value := 0672316617; RecordSet.Fields.Item( PAGECOUNT ) .Value:= 400, RecordSet.Fields.Item ( pUBLISHER) .Value := Sams; RecordSet.Fields.Item( PUBLICATIONDATE) .Value:= Date;

RecordSet.Update;

Close;

RecordSet := varNull;

Connection := varNull;

End;

I Даже если вы до сих пор никогда не видели программного кода на языке ,.I Object Pascal, просматривая текст листинга 7.3, вы легко в1явите в нем многие из конструкций, которые применялись нами в листинге 7.2. Для справки: процедура листинга 7.3 отображает в окн шения содержимое одного поля второго столбца таблицы LIBRARY. Однако доступ к полям в Object Pascal достаточно громоздкий: Recordset.Fields.Item(имя поля)

Процедура листинга 7.3 отображает второго столбца таблицы LIBRARY.

в окне сообщения содержимое одного поля


Delphi - программная среда для Object Pascal, a Access - для VBA.

Хотя среда Borland Delphi предоставляет в распоряжение программиста собственные мощные средства для работы с базами данных, тот факт, что с помощью всего нескольких строк кода можно легко воспользоваться функциями сервера ADODB, значителен сам по себе. Далее рассмотрим некоторые аспекты интерфейса ADODB более конкретно.

2 3 4

6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31



Connection

о

Соединение (Connection) - это блок информации, указывающий Access, как общаться с базой данных. В мире существует и конкурирует между собой достаточное количество компаний, производящих разнообразные системы управления базами данных. Корпорация Microsoft, помимо Access,

поддерживает продукт MS-SQL Server. Другие крупные участники рынка -

это Sybase, Oracle и Informix. Ваше приложение Access способно обращаться к базам данных любого из названных поставщиков, а это становится возможным именно благодаря объекту Connection. Если вам достаточно

ссылаться только на наборы данных внутри текущей базы, в которой хранится программный код, используйте объект CurrentProject.Connection, как б1ло продемонстрировано в строке 3 листинга 7.2.

Чтобы открыть новое соединение, вначале необходимо объявить объект

класса Connection. Синтаксис подобного объявления таков:

Dim ИмяСоединения As New ADODB.Connection


Сразу после набора фразы ADODB, завершающейся символом точки, в окне редактора программного модуля всплывает контекстное меню, в котором перечисляются возможные продолжения конструкции. Если этого не происходит, значит, в диалоговом окне References, вызываемом командой Tools-> References, не установлен флажок Microsoft ActiveX Data Objects 2.1 Library списка Available References.

Как и во всех других случаях, выражение объявления переменной начинается со служебного слова Dim. Замените ИмяСоединения требуемым именем и сопроводите его служебными словами As и New. Слову Connection следует предпослать обязательную аббревиатуру ADODB, поскольку существуют и другие типы данных Connection - один из них, например, содержится в классе OLE-сервера DAO.

Объявив объект соединения, вы можете (и, видимо, должны) затем открыть его.

Открытие

Команда открытия соединения предполагает наличие информации о содержимом так называемой строки соединения, имени пользователя, его пароле и значениях дополнительных параметров, которые передаются методу Open защищенной паролем базы данных. Имя пользователя и пароль являются необязательными параметрами.

Строка соединения включает в себя сведения о производителе системы управления базой данных. Здесь содержатся наименование, номер версии и другие особенности конкретной системы управления, представленные в специальном формате, описание которого вы сможете найти в фирменной документации от поставщика программного продукта. Строка соединения с секцией Provider, представляющей новейшую версию программного сервера Jet из состава Access 2002, выглядит так: Provider=Microsoft.Jet.OLEDB.4.0;Data Зоигсе=ПутьКБазеДанных

Вместо шаблона в секции Data Source, вам следует указать

полный путь к конкретному файлу базы данных. Соединение с базой данных Access

может быть открыто даже в том случае, если строка соединения не содержит данных об имени пользователя и его пароле - в этом случае будут использованы значения, принятые по умолчанию.

Помимо строки соединения, функции открытия соединения с базой данных Access могут быть переданы дополнительные значения перечислимого типа - adConnectUn-

specified и adAsyncConnect. (Подробности вы найдете в оперативной справочной системе Access.)



1 ... 32 33 34 [ 35 ] 36 37 38 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика