Справочно ръководство на Delphi - Управление на връзка с база данни (клас TDataBase, обект

Дефинирайте свой собствен диалог, когато се свързвате с базата данни

Създаване на псевдоним на локална база данни

Промяна на параметрите на връзката

Задаване на мрежовия протокол при свързване към базата данни

  1. Общ преглед
  2. Тази статия описва как да управлявате връзка с база данни с помощта на компонента TDataBase и обекта TSession, който се създава автоматично в програмата. Описва как да създадете псевдоним на локална база данни и да получите достъп до таблиците на Paradox с парола.
  3. Клас TDataBase

Обект от тип TDataBase не е задължителен при работа с бази данни, но предоставя редица допълнителни функции за управление на връзката към базата данни. TDataBase служи за:

  • Създайте постоянна връзка с базата данни
  • Дефинирайте свой собствен диалог, когато се свързвате с базата данни (изпитване на парола)
  • Създаване на псевдоним на локална база данни
  • Промени в опциите за свързване
  • Управление на транзакции

TDataBase е невидим обект по време на изпълнение. Той се намира на страницата „Достъп до данни“ на палетата на компонентите. За да включите TDataBase в проекта, трябва да го „поставите“ в главния прозорец на вашата програма.

Създаване на постоянна връзка с база данни

Ако работите с база данни, тогава преди да започнете работа, се извършва процедурата за свързване към тази база данни. Процедурата за свързване, наред с други неща, включва запитване за потребителско име и парола (освен когато работите с локални Paradox и dBase таблици чрез IDAPI). Ако програмата не използва TDataBase, тогава процедурата за присъединяване се изпълнява, когато се отвори първата таблица от базата данни. Връзка с база даннисе прекъсва, когато програмата затвори последната таблица от тази база данни (това се случва, ако свойствотоKeepConnectionsна обектаSessionе зададено на False, но повече за това по-късно). Сега, ако отворите таблицата отново, процедурата за настройка на връзката ще се повтори и това може да бъде доста неудобно за потребителя. За да сте сигурни, че връзката няма да бъде прекъсната дори когато няма отворени таблици в тази база данни, можете да използвате компонент от типа TDataBase. В свойството AliasName посочете псевдонима на базата данни, с която работи програмата; в свойството DatabaseName - всяко име (псевдоним на база данни), към което ще се отнасят таблиците вместо стария псевдоним на базата данни. Задайте свойството Connected на True - процедурата за свързване към базата данни ще се извърши при стартиране на програмата. И накрая, свойството KeepConnection трябва да бъде зададено на True (вижте Фигура 1).

delphi

Фиг.1: Свойства на TDataBase в инспектора на обекти

В нашия пример, след като зададете свойствата DataBase1, трябва да зададете L oc_IBLOCAL за всички таблици, работещи с IBLOCAL в свойството DatabaseName.

Дефиниране на ваш собствен диалог при свързване към база данни

По подразбиране при свързване към базата данни се използва диалоговият прозорец за запитване на потребителско име и парола, показан на фиг. 2

delphi

Ако желаете, можете да промените външния вид на диалоговия прозорец или да го отмените напълно. За целта се използват свойствата и събитията на класа TDataBase -LoginPrompt, ParamsиOnLogin.

За да деактивирате подканите за потребителско име и парола, задайте свойството LoginPrompt на False. В същото време в свойството Params се изисква изрично да се посочи (по време на проектиране или по време на изпълнение) потребителското име и паролата. Например, в програма можете да пишете (докато връзката с базата данни, например, всъбитие за Form1 OnCreate):

За да използвате свой собствен диалогов прозорец, в който можете да правите заявки не само за потребителското име и паролата, но също така, например, мрежовия протокол, създайте манипулатор на събитие OnLogin за DataBase1:

процедура TForm1.Database1Login(База данни: TDatabase;

ако Form2.ModalResult = mrOK тогава

с LoginParams започнете

Стойности ['USER NAME'] := User_Name;

ТукForm2е нов диалогов прозорец за въвеждане на потребителско име и парола,User_NameиUser_Passса низове, където се записват въведените потребителско име и парола.

Създаване на псевдоним на локална база данни

Обикновено псевдоним на база данни (Alias) се дефинира в помощната програма за конфигуриране на BDE и се съхранява в конфигурационния файл IDAPI.CFG. В една програма обаче можете да използвате не само псевдонима на базата данни, предварително дефиниран в помощната програма за конфигуриране на BDE, но и така наречения локален (т.е. видим само в рамките на програмата) псевдоним. Това понякога е необходимо, например, за да се направи програмата безопасна, ако използваният псевдоним бъде премахнат от конфигурационния файл на BDE.

справочно

Фиг.3: Редактор на компоненти на клас TDataBase

Промяна на параметри при свързване

Понякога трябва да промените параметрите, дефинирани в помощната програма за конфигуриране на BDE, които се използват при установяване на връзка с база данни. Това може да се направи по време на проектиране, като се използва диалоговият прозорец, показан на Фигура 3 в полето „Замени на параметри“. Или по време на изпълнение (преди опит за свързване) чрез директно присвояване на свойството Params на обекта DataBase1:

TDataBase ви позволява да започнете транзакция в базата данни (метод StartTransaction), да я завършите (Commit) или да я върнете назад (RollBack). Освен това можете да промените нивото на изолация на транзакцията(имот TransIsoltion).

TransIsolation Oracle Sybase и Informix InterBase

Dirty read Read committed Read committed Dirty Read Read committed

Извършено четене (по подразбиране) Извършено четене Извършено четене Извършено четене Извършено четене Извършено четене

Повтарящо се четене Повторяемо четене Повтарящо се четене Извършено четене Повторяемо четене Повторяемо четене

„Мръсно четене“ – във вашата текуща транзакция се виждат всички промени, направени от други транзакции, дори ако те все още не са завършени с Commit. “Read Committed” - виждат се само “committed” промени, направени в базата данни. „Повтарящо се четене“ - вътре в транзакцията данните, които са били в базата данни по време на началото на транзакцията, са видими, дори ако действително вече има промени там.

  1. Обект на сесията
  2. Обект Session от типа TSession се създава автоматично в програма, която работи с бази данни (в този случай Delphi включва DB модула в програмата). Не е нужно да се притеснявате за създаването и унищожаването на този обект, но неговите методи и свойства могат да бъдат полезни в някои случаи. Този компонент съдържа информация за всички бази данни, с които работи програмата. Може да се намери в свойствотоБази данни. Вече сме запознати със свойствотоKeepConnectionsна този обект. Това свойство определя дали връзката с базата данни трябва да се поддържа, ако програмата няма отворени таблици от тази база данни.NetDir -директория, съдържаща споделения мрежов файл PDOXUSRS.NET, изискван от BD E.PrivateDir- директория за съхраняване на временни файлове.

Използвайки методите на обекта Session, можете да получите информация за настройките на BDE, като списък на всички псевдоними, драйвери на база данни или списък на всички таблици в база данни.

Друго важно предназначение на обектаСесия - достъп с негова помощ до защитени с парола Paradox таблици. Преди да отворите такава таблица, трябва да изпълните методаAddPassword :

Можете да премахнете парола с помощта на метода RemovePassword или RemoveAllPassword.

  • Посочване на мрежовия протокол при свързване към базата данни
  • В случая на InterBase можете изрично да посочите кой мрежов протокол да се използва при свързване към базата данни. Тази настройка се извършва или в помощната програма за конфигуриране на BDE, или в програмата - трябва да промените параметъра „ИМЕ НА СЪРВЪР“, който съдържа пълния път до файла на базата данни.