Sign in Join
Wiki copytemporary

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.

 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.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.