Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

Zeos tutorial/ru

Deutsch · English · Español · Français · Português · Русский · 中文(中国)

Обзор

Это руководство посвящено получению, установке и использованию Zeoslib с Lazarus и FPC.

Получение Zeos

Zeos недавно был перенесен на Lazarus, и пока нет выпусков, которые официально поддерживают его, но вы можете легко получить его из SVN, если выполните следующие действия:

SVN

Windows

Linux/BSD

ZIP

Вы можете скачать последнюю версию в виде ZIP-файла с sourceforge.net:

Установка компонентов

Это сложная часть, поэтому вам следует проявить немного терпения и внимательно прочитать эту часть.

  1. Используйте Components/Open Package File(.lpk) из главного меню.
  2. Перейдите в *zeosdbo_rework\packages\lazarus* и откройте zcomponent.lpk
  3. Нажмите только [Compile] в том случае, если вы не хотите устанавливать компоненты в IDE
  4. Нажмите [Install]
  5. Вас спросят, хотите ли вы перекомпилировать Lazarus.

Прим.перев: на момент перевода статьи (май 2021г) установка немного изменилась:


Если вы получаете сообщение об ошибке "Cannot find unit ZClasses"(Не удается найти модуль ZClasses) или что-то подобное, вам необходимо внимательно проверить регистр имен файлов в исходном дистрибутиве Zeos.

pascal
{ This file was automatically created by Lazarus. Do not edit!
  This source is only used to compile and install the package.
}
unit Zcore; 
interface
uses
  Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression, 
  Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables, 
  Zvariant; 
implementation
end.
text
 rename -v 'y/A-Z/a-z/' *

Немного о компонентах

Прим.перев.: позволил себе сделать краткое описание компонентов из набора на основе официальной документации.

TZConnection

Компонент TZConnection представляет собой комбинацию компонента, подобного BDE TDatabase, и компонента, который обрабатывает транзакцию. Транзакция запускается библиотекой ZEOS всякий раз, когда открывается соединение (метод Connect TZConnection) с базой данных. Это приводит к тому, что каждый доступ к базе данных выполняется автоматически в контексте выполняющейся транзакции.

AutoCommit

Так называемый режим AutoCommit о умолчанию всегда включен (установлен в «True»). Это также стандартное поведение соответствующего компонента BDE. Если AutoCommit активен, то каждое изменение оператора SQL будет подтверждаться в базе данных с помощью COMMIT после его успешного выполнения.

Если вы хотите управлять транзакцией сами при помощи последовательных StartTransaction..Commit/Rollback, то AutoCommit должен быть отключен (установлен в «False»). В рамках этой явной транзакции можно последовательно выполнить несколько операторов SQL, которые вносят изменения в базу данных. При вызове метода Commit все изменения, сделанные в этой явной транзакции, подтверждаются. Вызов метода Rollback сбрасывает эти изменения.

TransactIsolationLevel (TIL)

Компонент TZConnection предоставляет четыре полезных и предопределенных уровня изоляции транзакций (TIL):

Protocol

Свойство определяет, какой протокол коннекта (напр, ado, firebird, sqlite и т.д.) будет использоваться и, следовательно, к какому серверу SQL будет осуществляться доступ. Благодаря этому, вам не нужно устанавливать специальные компоненты для каждой базы данных, к которой вы хотите получить доступ, как это было в версии 5.x и ранее. Компоненты будут установлены один раз. Вы только выбираете протокол для поддерживаемого SQL-сервера, к которому хотите получить доступ, и все готово.

ReadOnly

Соединение с базой данных, поддерживаемое объектом TZConnection, по умолчанию настроено только для чтения (ReadOnly = True). Это означает, что доступ для записи в подключенную базу данных запрещен. Чтобы получить доступ для записи в базу данных, вы должны установить для ReadOnly значение False.

Properties

Редактор множества настроек, каждую из которых можно задать либо путем выбора в диалоговом окне

либо определением этого параметра в коде, например:

pascal
ZConection.Properties.Add ('lc_ctype=ISO8859_1');
//или
ZConnection.Properties.Add ('Codepage=ISO8859_1');

TZQuery и TZUpdateSQL

Компонент для чтения и изменения набора данных. Для чтения необходимо заполнить свойство SQL, затем открыть набор данных, например:

pascal
ZQuery.SQL.Text:= 'select * from MyTable';
ZQuery.Active:= True;//или if not ZQuery.Active then ZQuery.Open;

Для модификации набора данных необходимо использовать TZUpdateSQL, где должны быть заполнены свойства ModifySQL, InsertSQl, DeleteSQL и RefreshSQL для изменения, вставки, удаления и обновления данных соответственно. При этом оба компонента должны быть связаны следующим образом:

pascal
ZQuery.UpdateObject:= ZUpdateSQL;

а для выполнения модификации данных необходимо вызывать ZQuery.ExecSQL (вместо ZQuery.Open).

Генерацию модифицирующих запросов можно выполнять в design-time при помощи встроенного редактора. Для этого необходимо в design-time связать между собой ZConnection, ZTransaction, ZQuery и ZUpdateSQL. Затем выполнить подключение к базе данных, сделать активным ZQuery, выделить ZUpdateSQL, ПКМ вызвать контекстное меню и выбрать пункт "UpdateSQL editor..."

Затем последовательно выделяем первичный ключ в поле "Key Fields" и жмем "Select Primary Keys", потом в поле "Update Fields" выделяем поля, которые мы хотим модифицировать

Нажав кнопку "Generate SQL", получает автоматически сгенерированные запросы

Transaction и UpdateTransaction

Поля, где указываются транзакции для чтения (ZQuery.Open) и записи (ZQuery.ExecSQL) соответственно. Иногда читающей и пишущей транзакцией может быть одна транзакция (зависит от типа сервера).

Делаем свое первое приложение Zeos

Possible Bugs and Issues

See also


From the Free Pascal wiki, page "Zeos tutorial/ru", as it stood on 2021-05-20 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 3, последнее изменение: WikiArchive, .