Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 455
Сохранение соединений с базой данных
Если свойство KeepConnection имеет значение true, соединение с базой данных будет сохраняться даже при отсутствии открытых компонентов TDataSet. Это необходимо, если вы не хотите заново выполнять процедуру входа на сервер при следующем обращении к базе данных.
Изменение параметров входа на сервер
Вы можете использовать обработчик события OnLogin компонента TDat- abase, чтобы предотвратить отображение диалогового окна входа при установлении соединения. OnLogin принимает два аргумента: компонент TDat- abase, который указывает на базу данных, в которую пользователь намерен войти, и объект TStrings, в котором хранятся параметры входа. Ниже приведен заголовок типичного обработчика OnLogin:
void fastcall TForml::DatabaselLogin(TDatabase *Database, TStrings
*LoginParams)
Внутри обработчика вы можете использовать индексируемое свойство Values объекта TString для доступа к отдельным параметрам:
Чтобы диалоговое окно входа не отображалось, необходимо установить по крайней мере параметр PASSWORD. Вы можете взять необходимые параметры из диалогового окна при первом входе, получить их от другого компонента TDatabase или вставить в текст программы. Если в обработчике OnLogin присутствуют какие-либо параметры, C++Builder попытается использовать их для установления соединения.
Выполнение транзакций под управлением приложения
Транзакция (transaction) — это операция над базой данных, заключающаяся в изменении каких-либо данных и рассматриваемая как единое целое. Транзакция может состоять как из одной команды на изменение данных, так и из тысячи. Когда вы объединяете серию изменений данных в одну транзакцию, будут выполнены либо все изменения, либо ни одно. Если транзакция состоит из 1000 изменений и 999-ое было неудачным, все изменения отменяются и база данных остается в исходном состоянии. Обычно C+4-Builder автоматически начинает и завершает транзакцию, когда приложение пытается внести изменения в базу данных. Если этого уровня управления недостаточно, вы можете сами организовать процесс транзакции, используя свойство Translsolation и методы StartTransaction, Commit и Rollback.