Использую ZeosDBO-666.
Начал использовать, поскольку, во-первых, на Delphi он был, во-вторых: mysql-5.1.
И, к сожалению, в ближайшее время заменить его на нормальные компоненты не представляется возможным.
Возникло несколько вопросов:
1.) Не работают lookup поля в запросах.
При отключенном LookupCache - нет списка.
При включенном, - почему-то показывает совсем не ту запись, которая нужна. Вообще, в списке одна запись.
Для ZTable всё работает нормально.
Что с этим делать?
2.) При возврате результата из хранимой процедуры вылезает ошибка.
CLIENT_MULTI_STATEMENTS=true
CLIENT_MULTI_RESULTS=true
Вылезает какая-то ошибка с 'sync бла-бла-бла'... Я нашёл в сети решение: исправляется "драйвер" (в смысле zeos'овский).
Может, есть менее радикальные способы?
Сейчас я делаю Reconnect после каждого вызова процедуры...
Может, есть более хорошие способы?
3.) Ну, то, что ZStoredProc не работает, - это понятно.
В 7-alpha так и не исправили?
P.S.:
Мда... Печально. Пользовал бы TSQLQuery, число компонентов в модуле данных сократилось бы раза в два.
Добавлено спустя 2 часа 46 минут 25 секунд:
Да, ещё, периодически, не работают вызовы процедур через запросы с параметрами.
Тоже непонятно...
И с транзакциями какой-то маразм.
Процедура начинает транзакцию. Вызываю процедуру, используя ZReadOnlyQuery.
Ничего не происходит. Не изменяется таблица.
В клиенте mysql, вызываю ту же процедуру. Он долго ждёт и выдаёт, в итоге:
"mysql> call BlankReserve(0, '000', '13');;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction"
Добавлено спустя 24 секунды:
Запарил этот zeos и lazarus.