|
Программирование >> Проектирование интерфейса пользователя
® Одно из важнейших свойств процедур и функций состоит в том, что они представляют собой фрагменты кода, которые можно отлаживать и исправлять независимо от других частей программы. Функция, представленная в листинге 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> установите курсор мыши над наименованием нужной переменной - и в окне всплывающей подсказки вы увидите ее содержимое.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |