574_____________________________________________Глава 10

if (Application->MessageBox(

("Действительно хотите изменить "+s+"?").с str(),
"Подтвердите занесение в базу данных",
MB_YESNO + MB_ICONQUESTION) == IDYES)
(
Query3->Close() ;

Query3->SCL->Clear() ;

Query3->SQL->Add(sSQL+" WHERE Num=" +

IntToStr(Query2Num-> Aslnteger) ) ;

Query3->ExecSQL() ;

Query2->Close () ;

Query2->0pen() ;

}

В начале этого кода проверяется, какие изменения были произведены в запи-
си, и формируются две переменных: одна из них — SB дальнейшем используется
для вопроса пользователю, а другая sSQL — для формирования запроса SQL.

После формирования этих переменных пользователю задается вопрос типа:

«Действительно хотите изменить отдел, фамилию ?». При положительном ответе
пользователя осуществляется запрос SQL типа: «Update Pers SET Dep==..., Fam=...
WHERE Num=...», в котором вместо многоточий подставляются значения, зане-
сенные пользователем в соответствующие окна редактирования, а в элементе
WHERE — номер записи, которая изменяется. В заключение закрывается и от-
крывается Query2, чтобы в таблице на экране отразились сделанные исправления.

Обработчик щелчка на кнопке Удалить может иметь вид:

if (Application->MessageBox("Действительно хотите удалить запись?",
"Подтвердите удаление записи",
MB_YESNO + MB_ICONEXCLAMATION) == IDYES)
(
' Query3->Close ();

Query3->SQL->Clear () ;

Query3->SQL->Add("DELETE FROM Pers WHERE Num =" +
IntToStr(Query2Num->AsInteger)) ;

Query3->ExecSQL() ;

Query2->Close () ;

Query2->0pen() ;

1

Этот код после положительного ответа пользователя на вопрос об удалении за
писи выполняет оператор SQL «DELETE FROM Pers WHERE Num =...», в которое
вместо точек подставляется номер текущей записи.

Обработчик щелка на кнопке Вставить может иметь вид:

Query3->Close();

Query3->SQL->Clear() ;

Query3->SQL->Add("INSERT INTO Pers (Dep,Earn,Nam,Par) VALUES ('"
+ CBEDep->Text+"','?','?','?')");

Query3->ExecSQL() ;

Query2->Close() ;

Query2->0pen() ;

Обработчик построен по тому же принципу, что и предыдущие и выполняет
оператор SQL «INSERT INTO Pers (Dep,Fam,Nam,Par) VALUES ('... ','?','?','?')».
Поля Fam, Nam и Par в таблице Pers объявлены обязательными. Поэтому при встав-
лении новой записи они должны быть заданы. В данном случае в качестве фами
лии, имени и отчества вставляются вопросительные знаки, чтобы пользователь H(
забыл заполнить их истинными значениями.

Мы рассмотрели основные изменения, которые пришлось сделать в приложе-
нии при замене в нем всех компонентов Table на Query (с полным текстом прило
жения вы можете ознакомиться на диске, прилагаемом к книге). Как видно, исп
равлений пришлось сделать достаточно много, причем от некоторых возможно