Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / [FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now / 5 сообщений из 5, страница 1 из 1
06.03.2018, 16:01
    #39611300
ФайрЮзер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now
Никак не борется. При попытке второй раз открыть таблицу, падает исключение, хотя при закрытии датасета результат должен вычищаться. В убогой документации есть пометка
Note: MySQL may return the "Commands out of sync; you can't run this command now" error when RecordCountMode = cmTotal. In this case, either set Mode to fmFetchAll or do not use cmTotal.
Но все параметры стоят по умолчанию, фетч на OnDemand, режим количества записей - cmVisible. Все параметры попробовал попеременял - вообще нет эффекта, как будто второй рекордсет нивкакую не забирается, очищая буффер.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  
  FConnection := TFDConnection.Create(nil);
  FConnection.DriverName := 'MySQL';
  FConnection.Params.UserName := 'test';
  FConnection.Params.Password := 'test';
  FConnection.Params.Database := 'test';

  FDataset := TFDStoredProc.Create(nil);
  FDataset.Connection := AConnection;
  FDataset.StoredProcName := AStoredName;
  FDataset.Open();
  FDataset.Close();
  FDataset.Open();


При этом если хранимку вызвать через SQL как 'Call StoredName()' то бага нет
...
Рейтинг: 0 / 0
06.03.2018, 18:33
    #39611433
ФайрЮзер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now
Запустил их тестовое приложение, настроил на свою хранимку, открыл, закрыл, открыл второй раз - демка упала. Бредятина, как они вообще могут продавать продукт, который едва на ладан дышит, думал хоть FireDac будет заменой DBX, но похоже DBX стабильнее чем это новое
...
Рейтинг: 0 / 0
06.03.2018, 18:42
    #39611441
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now
ФайрЮзер,

попробуй найти где-нибудь AnyDAC до его перехвата
...
Рейтинг: 0 / 0
07.03.2018, 12:29
    #39611760
ФайрЮзер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now
Так я токио купил, чтобы с 7-ки перейти на FireDac, т.к. потребовались какие-то фишки от AnyDac в продакте, и в итоге похоже купил корыто 8(
...
Рейтинг: 0 / 0
07.03.2018, 13:59
    #39611824
ФайрЮзер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now
Порылся в коде, там вообще шайтан-труба, всегда используется store result для всех запрошенных рекордсетов при открытии запроса, при этом потратил пол ночи на отладку - выяснил что
Код: pascal
1.
Assigned(Session.Lib.mysql_stmt_next_result) = False


Потому что
Код: pascal
1.
2.
if FVersion >= mvMySQL050503 then
      @mysql_stmt_next_result := GetProc(smysql_stmt_next_result);

И если версия сервера 5.6 но библиотека доступа 5.1 то взятие второго рекордсета просто глушится со всеми вытекающими приветами.

С одной стороны конечно сам болван что использовал старую версию библиотеки, а с другой - хз, так глубоко закапывать грабли нужно поучиться.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / [FireDAC][Phys][MySQL] Commands out of sync; you can't run this command now / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]