Отчет по управлению базами данных "Телефонный справочник"

Автор работы: Пользователь скрыл имя, 19 Декабря 2010 в 18:44, лабораторная работа

Краткое описание

Разработать программу , реализующую работу телефонного справочника. Для разработки использовать Sybase SQL Anywhere 5.5 в качестве серверной части и MS Visual FoxPro 5.0 в качестве клиентской части. Добавить функции добавления, удаления, редактирования и поиска записей

Содержимое работы - 1 файл

Лаба по СУБД 2.docx

— 141.59 Кб (Скачать файл)

      Upd_flg=.f.

     Endif

     Предварительно  в Interactive Change надо прописать:

     Upd_flg=.t. 
 

     Код кнопки Удалить

select fam

MESSAGEBOX(STR(f_num))

wsp=f_num

b1=SQLEXEC(e1,"delete from fam where f_num=?wsp")

Thisform.refresh()

b1=SQLEXEC(e1,"select * from dba.fam", "fam")

thisform.grid1.ColumnCount=2

thisform.grid1.recordsource='fam'

thisform.grid1.recordsourcetype=1 

thisform.grid1.column1.header1.caption='Код'

thisform.grid1.column2.header1.caption='Фамилия' 

thisform.grid1.column1.width=49

thisform.grid1.column2.width=230

thisform.Refresh() 

     Код кнопки Выход

     Thisform.release 

     Главная сводная таблица

     Синхронизация данных в таблице на клиентской форме  и на сервере производится путём  обработки события InteractiveChange() объектов Text в столбцах и строках объекта Grid:

 

     Главная форма содержит кнопки редактирования имен, фамилий, отчеств, улиц, которые  открывают соответствующие отдельные  формы. Также форма содержит кнопки: 

     Добавить  запись

     Считываются значения всех полей ввода. Для фамилий, имён, отчеств, улиц  по значению определяется их код. Рассчитывается максимальное значение ключевого поля, это значение увеличивается на единицу. Формируется запрос INSERT, который отправляется на сервер. Вызывается событие Click() кнопки Поиск для обновления данных в объекте Grid1.

if !empty(thisform.combo1.value)

      select fam

      locate for f_val = alltrim(thisform.combo1.value)

      w_f_num=f_num

else

      w_f_num=0

endif 

if !empty(thisform.combo2.value)

      select nam

      locate for nam_val = alltrim(thisform.combo2.value)

      w_n_num=n_num

else

      w_n_num=0

endif 

if !empty(thisform.combo3.value)

      select otc

      locate for otc_val = alltrim(thisform.combo3.value)

      w_otc_n=otc_n

else

      w_otc_n=0

endif 

if !empty(thisform.combo4.value)

      select street

            locate for s_val = alltrim(thisform.combo4.value)

      w_s_num=s_num

else

      w_s_num=0

endif 

b1=SQLEXEC(e1, "Select Max(Uniq_id) as max_pr_key from book","tabl_1")   

new_id=tabl_1.max_pr_key+1 

dom=Thisform.text1.value

kor=Thisform.text2.value

kwr=VAL(Thisform.text3.value)

tel=Thisform.text4.value 

que="Insert into book Values("+alltrim(str(new_id))

que=que+","+alltrim(str(w_f_num))+","+alltrim(str(w_n_num))+","+alltrim(str(w_otc_n))

que=que+","+alltrim(str(w_s_num))+",'"+alltrim(Thisform.text1.value)+"','"+alltrim(Thisform.text2.value)

que=que+"','"+Alltrim(Thisform.text3.value)+"','"+alltrim(Thisform.text4.value)+"')" 

b1=SQLEXEC(e1, que)

MESSAGEBOX(que)

    

Thisform.command1.click  

     

Thisform.Grid1.SetFocus()

Thisform.Grid1.refresh()

Thisform.refresh() 

     Поиск

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

set safety off

      Dimension gr_hd(8),gr_sr(8) 

gr_hd(1)='Фамилия'

gr_hd(2)='Имя'

gr_hd(3)='Отчество'

gr_hd(4)='Улица'

gr_hd(5)='Дом'

gr_hd(6)='Корпус'

gr_hd(7)='Квартира'

gr_hd(8)='Телефон' 

gr_sr(1)='family'

gr_sr(2)='nam'

gr_sr(3)='otc'

gr_sr(4)='street'

gr_sr(5)='bld'

gr_sr(6)='bld_k'

gr_sr(7)='appr'

gr_sr(8)='tel' 

if !empty(thisform.combo1.value)

      select fam

      locate for f_val = alltrim(thisform.combo1.value)

      w_f_num=f_num

else

      w_f_num=0

endif 

if !empty(thisform.combo2.value)

      select nam

      locate for nam_val = alltrim(thisform.combo2.value)

      w_n_num=n_num

else

      w_n_num=0

endif 

if !empty(thisform.combo3.value)

      select otc

      locate for otc_val = alltrim(thisform.combo3.value)

      w_otc_n=otc_n

else

      w_otc_n=0

endif 

if !empty(thisform.combo4.value)

      select street

            locate for s_val = alltrim(thisform.combo4.value)

      w_s_num=s_num

else

      w_s_num=0

endif 

req="select book.uniq_id, fam.f_val as family, nam.nam_val as nam, otc.otc_val as otc,"

req=req+"street.s_val as street,book.bldn as bld,book.bldn_kor as bld_k,"

req=req+"book.appr as appr,book.telef as tel "

req=req+"from book,fam,nam,street,otc "

req=req+"where nam.n_num=book.name_ AND "

req=req+"fam.f_num=book.fam AND "

req=req+"street.s_num=book.street AND "

req=req+"otc.otc_n=book.sndname " 

wsp1=ALLTRIM(thisform.combo1.Value)

IF  !EMPTY(wsp1)

Информация о работе Отчет по управлению базами данных "Телефонный справочник"