Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы программирования..pdf
Скачиваний:
8
Добавлен:
15.11.2022
Размер:
10.32 Mб
Скачать

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

VisualBasic:

1. Браун С. Visual Basic 6: учебный курс / С. Браун / пер. с англ. - СПб.: Питер, 2000. - 576 с.

2.Васильев A. VBAB Office2000: учебный курс/А. Васильев, А. Андреев.- СПб.: Питер, 2001. - 432 с.

3.Макашарипов С. Программирование БД на Visual Basic 5 в примерах / С. Макашарипов. - СПб.: Питер, 1997. - 253 с.

Borland Delphi:

1.Фаронов В.В. Delphi 4: учебный курс / В.В. Фаронов. - М.: Нолидж, 1998.-448 с.

2.Епанешников А.М., Delphi 4. Среда разработки: учебное пособие / А.М. Епанешников, В.А. Епанешников. - М.: Диалог-МИФИ, 1999. - 304 с.

3.Бобровский С.И. Delphi 5: начальный курс / С.И. Бобровский. - М.: Информком-Пресс, 1999.-271 с.

4.Фленов М.В.Transact-SQL:наиболееполноеруководство /М.В. Фленов.- СПб.: БХВ - Петербург, 2006. - 565 с.

Справочники

1.Карпов Б. Visual Basic 6: специальный справочник / Б. Карпов. - СПб.: Питер, 2000. - 416 с.

2.Скуснов А.Л. Справочник по компонентам Delphi 3 / А.Л. Скуснов. - М.: ПРИОР, 1998.-296 с.

3. Добейтесь того, чтобы выбор пунктов меню «Технология ADO» и «Технология DAO» вызывал отображение форм Frm_ADO и Frm_ DAO в модальном режиме (Frm_DAO.Show 1).

Для подключения к БД необходимо использовать нестандартные элемен­ ты объектного интерфейса. Поэтому подключите к проекту следующие библи­ отеки (окно Project References):

Microsoft ActiveX Data Objects 2.1 Library;

Microsoft ActiveX Data Objects Recordset 2.7 Library.

Далее отобразите на панели компонентов элементы, необходимые для ра­ боты с БД (окно Project Components):

Microsoft ADO Data Control 6.0 (OLEDB);

Microsoft DataGrid Control 6.0 (OLEDB);

Microsoft DataList Control 6.0 (OLEDB);

Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB).

На панели компонентов должны появиться новые ярлычки объектов. 4. Расположите элемент ADO Data Control на форме Frm ADO

и настройте подключение к БД (в контекстном меню ADODC Proper­ ties). Установите:

Microsoft OLE DB Provider for ODBC Drivers MS Access Database

путь к Bfl\W_History.mdb

Остальные параметры подключения изменять не следует.

5. На закладке Record Source, выберите тип команды adCmdTable, а ниже - таблицу T_zakaz. Нажмите кнопки «Применить» и «ОК». Запустите проект и убедитесь, что элемент навигации еще не работает. Расположите на этой же форме два элемента (TextBox) и установите их свойство DataSource в Adodcl. При этом первому элементу установите в свойство DataField поле ID, а второму - zakaz. Запустите проект и оцените результат работы.

6.То, что на форме отображается первичный ключ таблицы (Ю), конечно, нехорошо. Поэтому удалите этот текстовый элемент, а в обработчике события MoveComplete(ByVal adReason,.... ByVal pRecordset As

ADODB.Recordset20) объекта Adodcl Q наберите следующий код:

Adodc1.Caption= “Запись №” & _ CStr(Adodc1 .Recordset.AbsolutePosition) & _ “ из “ & CStr(Adodc1.Recordset.RecordCount)

Запустите проект и оцените результат.

Расположите на форме 5 кнопок Commandl.. .Command5, измените свойс­ тво Caption этих кнопок соответственно на «Начало», «Назад», «Вперед», «Ко­ нец», «Новая запись». Используя материал лекции 1, найдите команды для организации навигации по таблице T_zapis и добавления в нее новых записей, например Adodc 1 .Recordset.AddNew.

Задание:

С помощью Microsoft Visual Basic разработайте программу, которая позво­ ляет корректно работать с БД MicrosoftAccess предыдущего занятия. Програм­ ма должна подключаться к локальной БД и давать возможность пользователю просматривать содержимое журнала работ в зависимости от установленного диапазона дат.

Порядокработы:

1.Все, что мы делали на предыдущем занятии, не вполне профессионально, так как мы работали с БД напрямую, не используя контейнер связей проекта. Поэтому создадим окружение данных нашего проекта (Project Add Data Environment), в котором для объекта Connection 1 произведем настройку подключения к БД (пункт Properties в контекстном меню).

2.Связь с БД установлена. Сейчас в рамках этого подключения создадим команду Cm dTable, которая основана на таблице T zakaz (все параметры устанавливаются в пункте Properties контекстного меню команды). Если все сделано корректно, в древовидной структуре окружения данных появились все поля таблицы.

3.Создайте форму Frm_ODBC и обеспечьте ее вызов из главного меню программы.

4.Далее захватите мышью ярлычок команды Cmd_Table и переместите его внутрь формы Frm ODBC. Запустите проект и оцените результат. Но, оказывается, что и у этого метода есть свой недостаток: непонятно, как перемещаться по записям таблицы. Поэтому расположите на форме

кнопку, при нажатии которой должен выполняться следующий код:

DataEnvironment1.rsCmd_Table.MoveNext

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

5. Расположите на форме FrmTable элемент DataGrid и подключите его к таблице. Для этого установите свойство DataSource в DataEnvironmentl, а свойство DataMember- в Cmd Table. Запустите проект и оцените результат.

Навигация стала приятней, но таблица позволяет только просматривать ранее занесенные данные. К тому же в визуальном режиме не видна структура таблицы. Поэтому выберем в контекстном меню таблицы пункт Edit и считаем

ее структуру Retrieve Fields (тоже в контекстном меню). После этого разрешим добавление и удаление новых строк в окне Properties таблицы (флажки AllowAddNew и AllowDelete закладки General).

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

6.Внесите в таблицу пару новых строк с произвольной информацией. Обратите внимание, что синхронного заполнения первичного ключа таблицы не происходит (это поле заполнится только после повторного выполнения команды). Закройте программу и еще раз запустите проект. Поля первичного ключа в добавленных строках заполнились корректно. Поскольку пользователю не надо давать возможность видеть (а тем более изменять) первичный ключ таблицы, удалите его из таблицы отображения, выбрав пункт Delete в контекстном меню этого столбца.

7.Перейдите к окну окружения данных и в рамках подключения Con­ nection 1 создайте еще одну команду. Назовите команду Cmd Queiy и заполните SQL Statement приведенным ниже оператором:

SELECT t_zakaz.zakaz as Заказчик, T_adres.adres as Адрес, t_data.data_w as Дата, t_nepol.nepol as Неполадка, t_workn.n_peopl as Человек, t_workn.n_chas as Часов, t_workn.nepol_y_n as Состояние

FROM t_zakaz, T_adres, t_workn, t_disp, t_data, t_nepol WHERE t_zakaz.id = T_adres.id_t_zakaz AND T_adres.id = t_workn.id_t_adres AND t_workn.id_Ldisp = Ldisp.id AND t_workn.id_t_data = t_data.id AND t_workn.id_t_nepol = t_nepol.id AND (t_disp.disp = ?) AND (t_data.data_w >= ?) AND (t_data.data_w <= ?)

Для построения данного запроса используйте кнопку SQLBilder. На вклад­ ке Parameters произведите описания трех параметров запроса следующим об­

разом:

 

 

 

 

P a ra m l

-

D ata

T ype(adB ST R ),S ize(8),T ype(string(V T _B S T R )),

Required(True);

 

 

P aram 2

-

D ata

Type(adD B D ate),

S ize(8),T ype(D ate(V T _D ate)),

Required(True);

 

 

Р а г а т З

-

D ata

Type(adD B D ate),

S ize(8),T ype(D ate(V T _D ate)),

Required(True);

 

 

(В круты х скобках представлены значения входных и выходных характе­ ристик соответствующих параметров.)

Перейдите к форме Frm_ODBC и удалите структуру DBGrid, выбрав пункт контекстного меню Clear Fields, после чего установите свойство DataMember этого объекта в Cmd Query. Это выполнить удалось, но структура запроса в таблице еще не отразилась. С помощью пункта Retrieve Fields обновите струк­ туру таблицы.

8. Создайте в контейнере окружения данных DataEnvironmentl еше два сценария связи с базой данных —cmd_disp на основе таблицы T_disp и cmd_data на основе таблицы T data. Разместите на форме Frm_ODBC

три объекта базового класса DataCombo, подпишите их соответственно Диспетчер, Диапазон дат с... по... и измените у каждого свойство Name на DJDataCombo, n_Datax, kD atax. Далее для каждого объекта произведите настройку свойств DataSource, DataMember, DataField, RowSource, RowMember, ListFild, произведя выбор контейнера связи, сценария и отображаемого атрибута. Например, для объекта DJData­ Combo Диспетчер указанные свойства должны иметь следующие значения: DataSource(DataEnvironmentl), DataMember(cmd_disp), DataField(disp), RowSource(DataEnvironmentl), RowMember(cmddisp), ListFild(disp).

9.Добавьте на форму кнопку «Отобразить» и в обработчике событий этой кнопки напишите следующий программный код:

Dim param As String Dim datn As Date Dim datkAs Date

param = Trim(d_DataCombo.Text) datn = n_Datax.Text

datak = k_Datax.Text With DataEnvironmentl

If .rscmd_Query.State = adStateOpen Then

.rscmd_Query.Close End If

cmd_Query param, datan, datak

If .rscmd_Query.RecordCount > 0 Then ‘MsgBox “Найден “ & .rscmd_Query (“disp’’).Value, “Внимание!”

Else

MsgBox “нет записей”, , “Ошибка №1!” End If

End With w_DataGrid.DataMember = “cmd_Query”

Set w_DataGrid.DataSource = DataEnvironmentl

Запустите проект и протестируйте работу приложения.

10.Самостоятельно доработайте приложение так, чтобы из журнала работ имелась возможность для каждого заказчика просматривать за выбранный период проделанные у него работы и находить лицо, ответственное за прием заявки.

11.Протестируйте программу и защитите работу.