![]() ![]() Подключение к MySQL из приложения Lazarus.Попробуем ответить на вопрос, как подключить 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: Project -> New Project -> Application Автоматически будет сгенерирована новая форма...
Попробуйте растянуть её (Рис. 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 используя: procedure ShowString (S : string); (* display a string in a Memo box *) begin trymysqlForm1.ResultsMemo.Lines.Add (S) end; Таким образом, обработчик ConnectButton будет иметь вид: procedure TtrymysqlForm1.ConnectButtonClick(Sender: TObject); (* Connect to MySQL using user data from Text entry boxes on Причём поле для ввода справа позволяет нам вводить команды SQL без завершающей точки-с-запятой « ; », как только вы введёте синтаксис запроса - жмите кнопку SendQuery - запрос выполнится и результат будет отображен в компоненте ResultsMemo. Обработчик SendQuery опять же базируется на версии FPC, за исключением исполь- зования преобразования типов для последующего отображения строк. Разница между программой на FPC и этой программой заключается в том, что в случае возникновения ошибки программа на Free Pascal завершит свою работу, но сессия MySQL при этом останется открытой. Во второй программе контроль вернется в главную форму и можно повторить попытку ввода. В конечном итоге приложение, во втором случае, нормально завершает свою работу (закрывая при этом сессию MySQL) при нажатии кнопки Exit. Повторяю ещё раз, приложение Lazarus и Delphi программирование по сущест- ву похожи и программный код их, мало чем отличается. Вам не трудно будет вникнуть и разобраться в незначительных отличиях написания программ. Ниже приведен код обработчика кнопки SendQuery: procedure TtrymysqlForm1.QueryButtonClick(Sender: TObject); var dumquery, strg: string; begin dumquery := TrymysqlForm1.CommandEdit.text; dumquery := dumquery+#0; query := @dumquery[1]; trymysqlForm1.statusbar1.simpletext := 'Executing query : В следующей статье мы рассмотрим: - «Пример создания таблицы бд в lazarus». Рекомендуем в повседневной деятельности:
![]() ![]() |