Праяме підключення (додаток)

 

Додаток

         Приклад робочого додатку для здійснення під’єднання до РСКБД, та виконання найпростішого запиту.

         Слід пам’ятати, що підключення (TMySqlConnection) до mySQL повинне бути лише одне! І якщо здійсненя спроба підключення з невірними реквізитами користувача (або ж з деяких інших причин mySQL повернув помилку підключення) то повторна спроба має відбуватися на новому підключенні, тобто змінна має бути знищина а потім повторно створена.

         Кожному запиту (TMySqlQuery) відповідає одне підключення! Мало того одне підключення не може контролювати два запити, тобто якщо потрібно контролювати виконання одразу двох запитів, то відповідно підключень має бути два.

         Створимо форму приблизно такого вигляду:

         Тепер більш детально розглянемо виконуваний код форми:

Unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, sqlc{Додаємо наш модуль «прямої» роботи з РСКБД}, StdCtrls, Grids;

 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Button1: TButton;

    Memo1: TMemo;

    Button2: TButton;

    StringGrid1: TStringGrid;

    procedure Button1Click(Sender: TObject); {Натискаємо «З’єднатись»}

    procedure FormCreate(Sender: TObject); {Ініціалізація змінних}

    procedure FormDestroy(Sender: TObject); {Знищення змінних}

    procedure Button2Click(Sender: TObject); {Натискаємо «Виконати»}

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  c:TMySqlConnection; {З’єднання з РСКБД}

  q:TMySqlQuery; {Запит до РСКБД}

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

 c.Connect(Edit1.Text,Edit2.Text,Edit3.Text,Edit4.Text);

{З’єднуємося з реквізитами які було введено в полях вводу}

if c.Connected then {Якщо з’єднання вдале}

 Begin

   c.SetCharacterSet(Edit5.Text); {Вказуємо кодування}

   q.UseDB(Edit6.Text,c); {Вибираємо БД за замовчанням}

 End else ShowMessage('Error!'); {Якщо з’єднання не відбулося}

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

 q.Run(Memo1.Lines.Text,c); {Виконуємо набраний запит в текстовому полі на з’єднанні с}

 FillStringGrid(q,StringGrid1); {Заповнюємо отриманими результатати сітку}

 ResizeStringGrid(StringGrid1,0,0); {Вирівнюємо клітинки текстової сітки згідно з отриманими результатами}

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

 c:=TMySqlConnection.Create; {Ініціалізується підключення}

 q:=TMySqlQuery.Create; {Ініціалізується запит}

end;

 

procedure TForm1.FormDestroy(Sender: TObject);

begin

 q.Destroy; {Знащується підключення}

 c.Destroy; {Знищується запит}

end;

 

end.