Создание приложений для работы с базами данных в сети____________569

update Pers
set

Dep = Dep,

Fam = Fam,

Nam = Nam,

Par = Par,

Year b = :Year b,

Sex = Sex
where

Mum = OLD Num

Запрос в свойстве DeleteSQL строится по такому же принципу. Его можно за-
писать в виде

delete from Pers
where

Num = :OLD_Num

С запросом InsertSQL в нашем случае возникают наибольшие сложности, так
как с одной стороны это поле ключевое и его значение обязательно должно быть за-
дано, а с другой стороны нельзя задать значение типа Autoincrement. Так что луч-
ше в нашем приложении отказаться от режима вставки новой записи и удалить из
компонента DBNavigatorl соответствующую кнопку.

Запустите теперь приложение, и вы увидите, что оно стало работать так же,
как работало ранее с компонентом Table. Можно редактировать записи, удалять,
вставлять новые записи, управлять кэшированием.

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

Метод

Apply (Db: -.TUpdateKind UpdateKind^

обеспечивает загрузку значений всех необходимых параметров и выполнение од-
ного из запросов компонента UpdateSQL. Какого именно — определяется парамет-
ром UpdateKind, который может принимать значения ukModify, uklnsert или
ukDelete, что соответствует выполнению запроса, хранящегося в свойствах Modi-
fySQL, InsertSQL и DeleteSQL.
Например, оператор

UpdateSQLl->Apply(ukModify)

вызовет выполнение запроса, содержащегося в свойстве ModifySQL.

Если нужный запрос SQL не содержит параметров, то эффективнее вызвать та-
кой метод компонента UpdateSQL, как ExecSQL:

ExecSQL(Db::TUpdateKind UpdateKind)

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

SetParams(Db::TUpdateKind UpdateKind)

обеспечивает загрузку значений параметров указанного запроса SQL без его вы-
полнения. Таким образом, метод Apply — это просто последовательное выполне-
ние методов SetParams и ExecSQL.