Спробуємо відповісти на питання, як підключити Lazarus до бази даних MySQL, і як при цьому виконувати прості запити, використовуючи основні компоненти програми Lazarus. Використання компонент отображе- ня даних не буде, покажемо тільки принцип взаємодії з базами даних. Причому хочу звернути увага при -маніє, що додаток Lazarus і Delphi програмування по суті схожі і програмний код їх, мало чим відрізняється.
Подібно Delphi, Lazarus є середовищем RAD (від англ. Rapid application development - швидка розробка додатків), що дозволяє швидко створювати призначений для користувача інтерфейс. На відміну від Delphi, Lazarus є крос- сплатформенной середовищем. Підтримуються такі ОС, як GNU / Linux, Microsoft Windows, Mac OS X, FreeBSD, WinCE. Можливо перетворення Delphi проектів в проекти Lazarus.
Приклад підключення додатки Lazarus до бази даних MySQL:
Вам потрібно створити новий проект в Lazarus:
Автоматично буде згенеровано нова форма.
Завантажити - правила установки MySQL в Lazarus (20,17 MB) = 4,55 хв.
Спробуйте розтягнути її (Рис. 1), і перейменуйте її заголовок її в 'TryMySQL'.
Малюнок 1: Ось що маємо отримати
Розмістіть на формі (як на рис.1) три компонента TEdit з вкладки Standard і над кожним з них помістіть компонент TLabel. Задайте їм заголовки 'Host' (і імена HostLLabel, HostEdit), 'UserName' (UserLabel, UserEdit) і 'Password' (PasswdLabel і PasswdEdit). Як варіант ви можете використовувати компонент TLabelledEdit з закладки Additional.
Знайдіть властивість PasswordChar у компонента PasswdEdit, і змініть його на «*», в результаті чого коли ви будете вводите пароль, то замість нього будуть відображатися саме ці символи ( «************»). Обов'язково переконайтеся, що властивість Text у цього компонента не містить тексту.
Потрібно розташувати ще один компонент Tedit і TLabel в правому верхньому куті форми (рис. 1). Змініть заголовок на 'Enter SQL Command' і перейменуйте компонент в CommandEdit.
Помістіть на форму три кнопки, дві зліва під компонентами TEdit і одну праворуч під компонентом для команд.
Змініть властивості Label (Name) лівих кнопок на 'Connect to Database' (ConnectButton) і 'Exit' (ExitButton) і правої - 'Send Query' (QueryButton).
Розмістіть на формі великої TMemo з заголовком 'Results' (ResultMemo) зліва внизу так, щоб все, що залишилося, було заповнене. Знайдіть властивість ScrollBars і встановіть значення ssAutoBoth, щоб компонент міг прокручувати текст і вертикально і горизонтально. Властивість WordWrap встановіть в True.
Помістіть на форму статусну рядок (TStatusBar з закладки Common Controls) внизу форми і впишіть в властивість SimpleText рядок 'TryMySQL':
Тепер потрібно написати кілька обробників.
Зліва на формі, у нас три компонента TEdit для введення імені хоста, користувача і пароля. Як тільки в них будуть введені необхідні дані, потрібно натиснути на кнопку Connect. Оброблювач OnClick для цієї кнопки частково базується на модулі для FPC, який ми навели вище.
Результати запитів до бази даних не можуть бути відразу виведені за допомогою операторів Pascal write або writeln. спочатку їх необхідно перетворити в рядки і вивести в компонент TMemo.
Хоча оператори Pascal write і writeln і мають можливість перетворити типи «на льоту», в цьому випадку, використання компонента TMemo для виведення тексту вимагає прямого перетворення типів в строкову форму, відповідно змінні типу Pchar повинні бути перетворені в рядки шляхом використання StrPas, а числа будемо конвертуватися функцією IntToStr.
Треба додати рядки в TMemo використовуючи:
Таким чином, обробник ConnectButton матиме вигляд:
Причому поле для введення праворуч дозволяє нам вводити команди SQL без завершальній точки-з-коми "; ». як тільки ви введете синтаксис запиту - тисніть кнопку SendQuery - запит виконається і результат буде відображений в компоненті ResultsMemo.
Оброблювач SendQuery знову ж базується на версії FPC, за винятком ви- тання перетворення типів для подальшого відображення рядків.
Різниця між програмою на FPC і цією програмою полягає в тому, що в разі виникнення помилки програма на Free Pascal завершить свою роботу, але сесія MySQL при цьому залишиться відкритою. У другій програмі контроль повернеться в головну форму і можна повторити спробу введення. В кінцевому підсумку додаток, у другому випадку, нормально завершує свою роботу (закриваючи при цьому сесію MySQL) при натисканні кнопки Exit.
Повторюю ще раз, додаток Lazarus і Delphi програмування по сущест ву схожі і програмний код їх, мало чим відрізняється. Вам не важко буде вникнути і розібратися в незначних відмінностях написання програм.
Нижче наведено код обробника кнопки SendQuery:
У наступній статті ми розглянемо: - «Приклад створення таблиці бд в lazarus».