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

1 ... 41 42 43 [ 44 ] 45 46 47 ... 153


®

Одно из важнейших свойств процедур и функций состоит в том, что они представляют собой фрагменты кода, которые можно отлаживать и исправлять независимо от других частей программы. Функция, представленная в листинге 8.8, основана на использовании средств класса DAO. Если вам необходимо перейти к ADO, оптимизировать встроенные предложения SQL или отказаться от них вовсе, достаточно отредактировать только код тела функции - все остальные части программы остаются нетронутыми.

II Чтобы воспользоваться кодом листинге.8, понадобится единственная I строка программы, содержащая вызов функпии FindContact с указанием фамилии корреспондента, сведения о котором необходимо найти.

Использование реестра Windows

Реестр Windows содержит иерархию ключей и значений, которые хранятся в отдельном файле. Реестр, в определенном смысле, - это база данных для хранения информации между выполнением приложений. С помощью инструментов баз данных

можно размещать информацию в любом его месте.


Чтобы просмотреть реестр своего компьютера, щелкните на кнопке Пуск (Start), выберите команду Выполнить (Run), наберите regedit и нажмите <Enter>.

Непосредственное изменение реестра - далеко не самый мудрый

поступок. Если вы случайно ошибетесь, система станет работать некорректно даже после перезагрузки. В любом случае перед внесением изменений в реестр сначала создайте его копию, выбрав в окне Редактор Реестра (Registry Editor) команлу ФайлЭкспорт (File- Export).

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


Хранение информации в реестре (в особенности информации о соединении) для Access более допустимо, чем для других приложений. В Access при работе с данными активной базы данных, чтобы получить доступ к объекту Connection, можно использовать объект Current-Project, который является подключенным по умолчанию.

Для сохранения и изменения информации в реестре используют SaveSetting и GetSetting, которые позволяют непосредственно считывать и записывать информацию. Вообще, обращаться к этой информации можно независимо от инициализации приложения и того, открыто ли соединение. В листинге 8.9 приведен пример динамического чтения информации о соединении из реестра. На рис. 8.1 представлена копия экрана редактора реестра, в который добавлен ключ Connectionstring. Если из регистра получена пустая строка, происходит инициализация со значением, заданным по умолчанию.



: Ш-Ш riadOiwi.com

; В Э McAfee : MetaProducS

i Ш □ Mo-osoft

! ffi-ЙООЕС

а S3 Рятко Technobges : Ш-Ш Mies

Ш £3 Punlo Switiher

Ж sec ; ш ЁЗ SereneSCTeen

i aft SiSoftwere ! S3 Smilh Ivlicro S Q] 5Т0Ж Software

В D Symantec

. as El UC4.0GIC

: a Ш winRAR

в 3 V8 and VBA Ргодгагл Settings i B- Ш Hour В

Ш Dabibsse Si Q SysCata

REG SZ R£G S2

{э а

e не rcticBOCHoJ

Prnv!deT=tosoft.>t,OLe36.4.0;Oata Source--

№t >p

Мой rawiMjTip *£ Q EH(T J

\VB and VB* fvotmm.Settnsa Vkiu Bliiii*

Puc. 8.1. В Windows 2000 с помощью функции ettingв реестр добавлена строка соединения

Листинг 8.9. Чтение строки соединения из реестра. Если строка соединения пуста, в реестр заносится значение, заданное по умолчанию

3 : 4:

5 6: 7 : 8: 9: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Function MectionString О As String GetDefaultConnectionString =

Provider=Microsoft.Jet.OLEDB.4.0; & DataSource=C:\Books\Sams\TeachYourself &

Access 2002 Programing in 24 Hours & \Chapter 8\Hour8 l.mdb

End Function

Function As String

GetConnectionString ng ( Hour 8 , Database , ConnectionString , )

If (GetConnectionString Then

Call SaveSetting( Hour 8 , Database , ConnectionString , GetDefaultConnectionStringI

: GetConnectionString 8 ,

: Database , ConnectionString , )

: End If

Function

: Sub ConnectWithRegistrylnfo ()

: Dim Connection As New ADODB. Connection



25: Connection.Open (GetConnectionString()) 26: MsgBox Connection.State = adStateOpen

27:End Sub

В строке 23 определяется процедура egistrylnfo. В строке 25 с помощью GetConnectionString () считывается информация о соединении, установленном GetSetting. Если в регистре нет этой строки, используется значение по умолчанию, заданное в строке 15 данного листинга. В строке 26 производится проверка правильности соединения.

Помните, что CurrentProject - это глобальный объект, ссылающийся на активную базу данных. Если необходимо соединиться с внешним источником данных, понадобится сохранить информацию о конфигурации той базы данных.

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

Резюме

Функции и процедуры - это конструкции, которые позволяют группировать строки кода, предназначенные для решения небольших повторяющихся подзадач. Программа превращается в набор таких конструкций, управляемых из некоторой (главной) функции.

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

Вы ознакомились с основными заповедями программирования, в сжатой форме

аккумулирующими эмпирический профессиональный опыт, накопленный в течение нескольких десятилетий. Теперь вы в общих чертах представляете, как создавать лаконичный, выразительный и эффективный код.

Вашему вниманию были предложены практические примеры использования предложений на языке SQL и других средств управления базами данных в контексте применения процедур и функций. Теперь вам в определенной мере знакомы способы обращения к функциям из внешних динамических библиотек. Приведенный ниже раздел Вопросы и ответы освещает некоторые важные аспекты программирования, которым мы не смогли уделить надлежащего внимания.

Вопросы и ответы

Вопрос. Мне необходимо нротестировать код функции в среде Access. Каким образом это осуществить?

Ответ. Откройте модуль, содержащий функцию, в окне редактора Microsoft Visual Basic, установите текстовый курсор в требуемой строке кода функции и, нажимая клавишу <F8>, исполните код в режиме отладки.

Вопрос. Как заставить отладчик приостановить работу в определенной строке программы?

Ответ. Щелкните в левой колонке окна редактора напротив нужной строки кода. Строка будет помечена символом точки останова в виде небольшого красного кружка.

Вопрос. Во время отладки кода я хотел бы увидеть содержимое конкретной переменной. Как это сделать?

Ответ. Во время прохождения по строкам кода с помощью нажатия клавиши <F8> установите курсор мыши над наименованием нужной переменной - и в окне всплывающей подсказки вы увидите ее содержимое.



1 ... 41 42 43 [ 44 ] 45 46 47 ... 153

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