Изграждане на бази данни клиент-сървър в Delphi, Delphi, компоненти на Delphi, източници на Delphi

Изграждане на бази данни клиент-сървър в Delphi

Досега разглеждахме само локални бази данни, без да засягаме многопотребителския достъп. Целта на този урок е да се обсъдят присъщите характеристики на отдалечените бази данни.

Спомнете си, че когато се използва технологията "клиент-сървър", базата данни се намира на отдалечен компютър (сървър) и се нарича отдалечена база данни.

Приложение, което осигурява достъп до база данни от компютър на потребител, се нарича клиентско приложение.

Взаимодействието между клиента и сървъра може да бъде описано с две фрази (Фигура 9.1):

  • клиентът генерира SQL заявка към сървъра, където се намира базата данни, и я изпраща по мрежата;
  • сървърът изпълнява заявката и връща исканите данни на клиента.

Предимствата на този метод на работа са очевидни:

  • заявката се обработва на сървъра, докато клиентът получава само необходимите данни;
  • защото се изпращат само данните, от които се нуждаете, мрежовият трафик се намалява;
  • клиентското приложение не може директно да осъществява достъп до файлове, разположени на сървъра, като по този начин осигурява висока степен на защита на данните;
  • базата данни се управлява от сървъра, така че кодът на клиентското приложение е значително намален и опростен.

  • InterBase;
  • Oracle;
  • Sybase;
  • DB2;
  • Microsoft SQL Server.
  • свързване към сървъра и изключване от него;
  • формулиране на заявката и изпращането й на сървъра;
  • получаване на резултата от изпълнението на заявката от сървъра;
  • обработка на получени данни.
  • задействания;
  • генератори;
  • съхранени процедури;
  • дефинирани от потребителя функции;
  • транзакции;
  • кеширани промени;
  • събития.

Съхранена процедура Представлява малка програма, която се намира на сървъра на базата данни и може да бъде извикана от клиентското приложение.

Съхранените процедури ви позволяват да ускорите работата с данни на сървъра на базата данни поради следните предимства:

  • Когато използвате съхранени процедури, на сървъра се изпраща кратко извикване на съхранената процедура вместо дългия текст на SQL заявката. Това намалява мрежовия трафик;
  • съхранената процедура се изпълнява директно на сървъра. В резултат на това скоростта на достъп до данни не зависи от производителността на клиентската машина;
  • съхранената процедура, за разлика от SQL заявката, не проверява предварително синтаксиса;
  • съхранените процедури са общи за всички клиентски приложения и прилагат единни правила за работа с базата данни.

Компонентът TStoredProc е въведен за изпълнение на съхранената процедура в Delphi. Нека разгледаме основните му свойства.

Свойството DatabaseName от тип String показва компонента TDatabase, използван за установяване на връзка с базата данни. Това свойство е подобно на едноименното за компонентите ТTable и TQuery.

Свойството StoredProcName от тип String определя съхранената процедура, която да бъде извикана. Името на съхранената процедура се избира от падащия списък с помощта на инспектора на обекти.

След като изберете съхранена процедура, можете да зададете две други свойства. ПараметърTypeTRagatS свойството дефинира масив от параметри на компонента TStoredProc.

Свойството ParamBindMode от типа TParamBindMode определя как ще бъде установено съответствието между параметрите на компонента TStoredProc и параметрите на процедурата и може да приеме една от следните стойности:

  • pbByName - съответствието ще бъде установено по имена, т.е. имената на параметрите на компонента TStoredProc и съответните параметри на процедурата трябва да съвпадат. Тази стойност е по подразбиране;
  • pbByNumber - съответствието ще бъде установено в изброения ред, тоест първият параметър на компонента TStoredProc се съпоставя с първия параметър на процедурата и т.н.

Изпълнението на избраната съхранена процедура се извършва с помощта на извиквания към методите Prepare и ExecPgos:

  • метод приготви се подготвя съхранената процедура, която се състои в обвързване на параметрите на процедурата n на компонента TStoredProc в съответствие с зададената стойност на свойството ParamBindMode;
  • метод ЕхесРгос директно изпълнява съхранената процедура.

Листинг 9.1 илюстрира извикване на съхранена процедура от приложение при натискане на бутона.

Листинг 9.1. Покана за съхранена процедура

01. процедура TForm1 Button1ClickSender: TObject);

За записване на съхранени процедури и задействания се използва специален език на съхранени процедури. Различните сървъри използват различни диалекти. Няма да изучаваме всички, но ще разгледаме накратко езика на съхранените процедури, използван от сървъра InterBase, който има много общо с езика Паскал. Езикът на съхранената процедура включва оператори за контрол на потока на изчислителния процес (разклоняване, цикъл), както и някои функционалности на езика SQL.

Съхранената процедура се създава от оператора

Името на процедурата е последвано от незадължителен списък с входни параметри, които могат да се използват за предаване на първоначални данни от приложението към процедурата. Списъкът с изходни параметри, чрез които резултатите от процедурата се връщат към приложението, е посочен след думата RETURNS. Всеки параметър се описва с неговото име и тип, разделени с интервал. Трябва да има запетаи между различни параметри.

Когато използвате параметър в тялото на процедура, предшествайте името му с двоеточие.

Новосъздадената процедура може да бъде изтрита или променена. За да изтриете процедура, използвайте оператора

За да модифицирате съществуваща процедура, използвайте оператора