wofs, у ZeosDBO имеется свой подход, обобщенный многих баз данных.
Отсюда некоторые тонкости могут быть опущены. Плюс общий подход к работе с данными - общий интерфейс. Философия близка к микрософскому ODBC. Это очень удобно когда вам нужно работать с многими базами данных. Не надо вникать как формировать данные, как создавать запрос, как извлекать данные - для каждой либлы базданных может существовать свой подход.
ZeosDBO стремится все сложности и особенности поглотить в себя - а вам представить обобщенный подход.
Чтобы сделать
- Код: Выделить всё
ZQuery.SQL.Text:='Select * from table1';
ZQuery.Open()
Требуются например для MySQL - более 10 операций, а для PostgreSQL - более 20, а для SQLite - 40 операций.
Вот чтобы уложится в две команды - ZeosDBO нужен.
Для одних баз нет явных указаний по транзакций. Для других таких как FireBird - обязательно нужно указывать какой вид транзакции для каждой операции.
Но ZeosDBO изначально настроен на простые варианты
(AutoCommit:=true) поэтому изначально с FireBird он настроен на работу как с MySQL.
Поэтому, если вам нужно особый подход - то ZeosDBO нужно указывать на него.
Добавлено спустя 24 минуты 32 секунды:wofs писал(а):Задача проста - жахнули серию изменений в одном соединении, сразу коммит. И эти изменения я должен увидеть во втором подключенном соединении, просто обновив запрос выборки. Ее я и пытаюсь решить.
Я представляю как это надо сделать, я не могу понять как это сделать в связке ZeosDBO+FireBird.
Можно явно указывать ZQuery/ZTable начало транзакции и завершение..
Добавлено спустя 8 минут 21 секунду:типа
- Код: Выделить всё
ZQuery.InsertSQL.Text:='
SET TRANSACTION READ WRITE NO WAIT READ COMMITTED RECORD_VERSION
Insert ..
COMMIT;
';
Добавлено спустя 3 минуты 12 секунд:Либо через
- Код: Выделить всё
ZQuery.BeforeInsert:
ZConnection.StartTransaction;
ZQuery.AfterInsert:
ZConnection.Commit;
Добавлено спустя 3 минуты 1 секунду:*Rik* писал(а):IBEventAlerter
Есть TZIBEventAlerter
IBExpress - вроде не бесплатный?