Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


If dm.TEMP4.Fields[0].AsString<>'' then




Begin

{11} showmessage('Данная запись уже есть в БД');

{12} exit;

End

Else

Begin

{17} dm.COM.CommandText:='INSERT INTO kadri (fio_st,id_nc_st,id_ug_st,id_zv_st) values ("'+TRIM(e1.Text)+'",'+id_n+','+id_ug+','+id_zv+')';

{18} dm.COM.Execute;

{19} showmessage('Запись добавлена');

{21} dm.st.active:=false;

{22} dm.st.Active:=true;

{23} BitBtn1Click(Sender);

{24} end;

End

Else

Begin

{6} dm.TEMP4.Active:=false;

{7} dm.TEMP4.CommandText:='Select * FROM kadri WHERE (fio_st = "'+TRIM(e1.Text)+'") AND (id_nc_st = '+id_n+') AND (id_ug_st = '+id_ug+') AND (id_zv_st = '+id_zv+')';

{8} dm.TEMP4.Active:=true;

If dm.TEMP4.Fields[0].AsString<>'' then

Begin

If dm.TEMP4.Fields[0].AsString <>dm.st.Fields[0].AsString then

Begin

{35} showmessage('Данная запись уже есть в БД');

{36} exit;

{37} end;

End

Else

Begin

{42} dm.COM.CommandText:='Update kadri SET fio_st = "'+TRIM(e1.Text)+'",id_nc_st = "'+id_n+'",id_ug_st = "'+id_ug+'",id_zv_st = "'+id_zv+'" WHERE id_st = '+dm.st.Fields[0].AsString+'';

{43} dm.COM.Execute;

{44} showmessage('Запись изменена');

{46} dm.st.active:=false;

{47} dm.st.Active:=true;

{48} BitBtn1Click(Sender);

{49} end;

{50} end;

{51} end;

 


Как мы видим SQL-текст запросов усложнился, но вы уже знаете достаточно и можете сами в нм разобраться. Единственное что стоит отметить это то, что при добавлении в поле БД, где тип данных текстовый используется следующая структура: «"'+Переменная+'"», а при добавлении в поле БД, где тип данных числовой «'+Переменная+'». Собственно это видно и из запроса «Insert …».

 

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

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

В данном примере мы будем применять первый способ. Ниже представлен измененный код кнопки «Удалить» для справочника «Национальность»:

 


{+Proverka}

If dm.pr.Fields[0].AsString='' then

begin

showmessage('Нет данных для удаления');

exit;

end;

{-Proverka}

If application.MessageBox('Вы хотите удалить запись?','Удаление', mb_yesno+mb_iconquestion)=idyes then

begin

{+Proverka2}

dm.TEMP4.Active:=false;

dm.TEMP4.CommandText:='Select * FROM UchPl WHERE id_pr_up = '+dm.pr.Fields[0].AsString+'';

dm.TEMP4.Active:=true;

If dm.TEMP4.Fields[0].AsString<>'' then

Begin

application.MessageBox('Эти данные используются в других таблицах','Удаление невозможно', mb_ok+mb_iconstop);

exit;

end;

{-Proverka2}

dm.COM.CommandText:='DELETE Prep FROM Prep WHERE id_pr = '+dm.pr.Fields[0].AsString+'';

dm.COM.Execute;

showmessage('Запись удалена успешно');

dm.pr.Active:=false;

dm.pr.Active:=true;

end;

end;


Текст обрамленный с спереди {+Proverka2} и сзади {-Proverka2 } и есть код проверки на использование данных записей в других таблицах. Похожий код теперь нужно вставлять во все кнопки «Удалить» в тех справочниках данные, из которых используются в других таблицах. Теперь вы без трудов сможете доделать оставшиеся 2 таблицы: «Учебный план» и «электронный журнал». Их примерный внешний вид представлен на рисунках 26 и 27 соответственно.

Рисунок 26 – «Форма «Учебный план»

 

Рисунок 27 – «Форма «Электронный журнал»

 

При разработке формы «Электронный журнал» мы сталкиваемся с тем что в таблицу нужно добавить дату. Для ввода даты мы воспользуемся компонентом «DataTimePicker» с вкладки «Win32» (мы дадим ему имя «dtp»).Для добавления даты в «Access» можно использовать параметры или составлять строку. Мы будем использовать второй способ. Для этого напишем функцию под название «Data2», код которой представлен ниже:

 


function TFMain.DATA2(data:tdatetime):string;

var d,m,g:word;

Begin

decodedate(data,g,m,d);





Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 401 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2464 - | 2389 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.