Zeoslib: Как определить, что запрос все еще обрабатывается?
Я использую Zeoslib в Delphi для доступа к локальной базе данных MySQL.
Я вызываю хранимую процедуру с объектом TZQuery:
ZMakeRankedTable.SQL.Text :=
'CALL MakeRankedTable(:tableA,:tableB,:SAMP_startTime,:SAMP_endTime,:Hourspan)';
Эта хранимая процедура заканчивается заполнением таблицы MySQL значениями.
Мне нужно получить доступ к этим значениям, но я понятия не имею, когда MySQL закончит обработку запроса. Я получаю доступ к таблице до завершения обработки.
Есть ли .IsAvailable
или же .IsExecuting
свойство, к которому я могу получить доступ, чтобы определить, завершен ли мой запрос? Если нет, то как я могу это сделать?
1 ответ
Нет доступных свойств, которые указывают, что ваш запрос все еще выполняется. Но когда команда ZMakeRankedTable.Execute завершается, mysql должен быть готов к обработке хранимой процедуры. Поэтому я вижу только 3 ситуации, когда вы можете получить доступ к таблице mysql, пока результаты процедуры еще не доступны.
- Вы запрашиваете из параллельного потока
- Вы запрашиваете у другого соединения, но транзакция 'сохраненного соединения proc' не завершена (автокоммит или коммит не произошли)
- Ваш сохраненный процесс запускает отложенный процесс и немедленно возвращается. Что маловероятно, так как вам нужно проделать определенную работу, чтобы иметь такой эффект в MySQL.
mdaems
Администратор проекта Zeoslib