powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
52 сообщений из 52, показаны все 3 страниц
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950244
Всем привет!

Когда-то уже сталкивался с подобной проблемой и пришлось переходить на ZEOS компоненты. Прошло более 5 лет и вновь пришлось столкнуться с MySQL, но теперь уже использую компоненты FireDAC и хотелось бы на них и остаться. Приложение работает с хранимыми процедурами. Пытаюсь запустить вот так:

Код: pascal
1.
2.
DM.FDStoredProc1.Close;
DM.FDStoredProc1.ExecProc('US_INSERT', ['Test', 'TestPass', '12345', 'Codeword']);



Первый раз она отработает и всё ок, но второй запуск вернет ошибку: "Commands out of sync; you can't run this command now". Любой запуск процедуры, которая возвращает результат. Погуглил и выяснил, якобы не чистится результат предыдущего результата и с этим связана ошибка. Тогда вопрос, а как его скинуть?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950247
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чисто из любопытства: ты и двери всегда закрываешь прежде чем выйти из дома?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950251
Dimitry Sibiryakov

Чисто из любопытства: ты и двери всегда закрываешь прежде чем выйти из дома?


Хорошо. Я думаю так будет понятнее. Это предыдущий запрос.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
function LoginCheck(Login: string): Integer;
begin

    DM.FDStoredProc1.Close;
    DM.FDStoredProc1.Open('US_SELECT', [Login]);
    Result := DM.FDStoredProc1.RecordCount;

end;



А прописывая всегда Close, я никогда не получу ошибку, если где-то компонент остался открытым. Так как для все подобных запросов я использую один. Которые не требуется для результатирующего постоянного набора. Проще говоря, выполнять всякие вставки, апдейты, удаления и запрос статусов я всегда делаю через один квери.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950259
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронгя никогда не получу ошибку, если где-то компонент остался открытым.

Ага, ты получишь ошибку если он уже был закрыт или даже никогда не имел result set-а.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950266
Dimitry Sibiryakov

Евгений Стронгя никогда не получу ошибку, если где-то компонент остался открытым.

Ага, ты получишь ошибку если он уже был закрыт или даже никогда не имел result set-а.


Вероятность намного выше, что ты его забудешь где-то закрыть. Нежели начать код с его закрытия. По крайней мере это нормальная практика и в примерах она как раз и демонстрируется.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950267
Dimitry Sibiryakov

Евгений Стронгя никогда не получу ошибку, если где-то компонент остался открытым.

Ага, ты получишь ошибку если он уже был закрыт или даже никогда не имел result set-а.


Хотя может ты и прав и нужно закрывать запрос сразу после получения результата, чтобы он не "висел" открытым до следующего старта. Но это уже ладно... Проблема у меня сейчас совершенно с другим связана. Прошло более 5 лет, а проблема актуальна до сих пор)
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950272
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгВероятность намного выше, что ты его забудешь где-то закрыть. Нежели начать код с его закрытия.
это, типа, новый стиль программирования? Объект перед созданием надо уничтожить?
Вы бы тогда лучше писали что-то типа
Код: pascal
1.
2.
if DM.FDStoredProc1.isOpen then
 Achtung!;


чтобы найти места, в которых вы свои датасеты не закрываете вовремя.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950277
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Евгений Стронгя никогда не получу ошибку, если где-то компонент остался открытым.

Ага, ты получишь ошибку если он уже был закрыт или даже никогда не имел result set-а.

Не знаю как в энтих ваших фиредаках, а в фибах лишний .Сlose на TFIBQuery никогда ошибок не выдавал.
Независимо от того, открыт он был или нет.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950316
kdv
Евгений СтронгВероятность намного выше, что ты его забудешь где-то закрыть. Нежели начать код с его закрытия.

это, типа, новый стиль программирования? Объект перед созданием надо уничтожить?
Вы бы тогда лучше писали что-то типа
Код: pascal
1.
2.
if DM.FDStoredProc1.isOpen then
 Achtung!;


чтобы найти места, в которых вы свои датасеты не закрываете вовремя.

Это не новый стиль - это правильный стиль! И не понятна попытка умничать тут совсем не к месту, не зная даже кода, который написан перед закрытие. Форум превратился в каких-то осуждающих бабок, вместо того, чтобы ответить по теме. Вот тебе кусок из примера:

Свойство SQL - вероятно, самая важная часть TQuery. Доступ к этому свойству происходит либо через Инспектор Объектов во время конструирования проекта (design time), или программно во время выполнения программы (run time).
Интересней, конечно, получить доступ к свойству SQL во время выполнения, чтобы динамически изменять запрос. Например, если требуется выполнить три SQL запроса, то не надо размещать три компонента TQuery на форме. Вместо этого можно разместить один и просто изменять свойство SQL три раза. Наиболее эффективный, простой и мощный способ - сделать это через параметризованные запросы, которые будут объяснены в следующей части. Однако, сначала исследуем основные особенности свойства SQL, а потом рассмотрим более сложные темы, типа запросов с параметрами.

Свойство SQL имеет тип TStrings, который означает что это ряд строк, сохраняемых в списке. Список действует также, как и массив, но, фактически, это специальный класс с собственными уникальными возможностями. В следующих нескольких абзацах будут рассмотрены наиболее часто используемые свойства.

При программном использовании TQuery, рекомендуется сначала закрыть текущий запрос и очистить список строк в свойстве SQL:

Query1.Close;

Query1.SQL.Clear;


Обратите внимание, что всегда можно “безопасно” вызвать Close. Даже в том случае, если запрос уже закрыт, исключительная ситуация генерироваться не будет.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950318
fraks
Dimitry Sibiryakov

пропущено...

Ага, ты получишь ошибку если он уже был закрыт или даже никогда не имел result set-а.

Не знаю как в энтих ваших фиредаках, а в фибах лишний .Сlose на TFIBQuery никогда ошибок не выдавал.
Независимо от того, открыт он был или нет.


Я не знаю, какие они там получают ошибки. У меня всё прекрасно работает.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950392
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksв фибах лишний .Сlose на TFIBQuery никогда ошибок не выдавал.

Они со своим неестественным интеллектом прогнулись под дерьмопримеры, который "везде".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950518
Dimitry Sibiryakov

fraksв фибах лишний .Сlose на TFIBQuery никогда ошибок не выдавал.

Они со своим неестественным интеллектом прогнулись под дерьмопримеры, который "везде".


Попробовал с компонентами FireDAC вот такую вещь:

Код: pascal
1.
2.
3.
DM.qrySQLNEW.Open('select LOGIN from US where LOGIN = :LOGIN', [Login]);
DM.qrySQLNEW.ExecSQL(sql, [Login, General.MD5Hash(Pass), General.VERSION, Codeword]);
DM.qrySQLNEW.Open('select LOGIN from US where LOGIN = :LOGIN', [Login]);



И вообще никаких Close не надо. Видимо под капотом само всё происходит. И это радует.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950566
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следующим логичным шагом будет повторное использование туалетной бумаги. Попробуйте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39950648
Dimitry Sibiryakov

Следующим логичным шагом будет повторное использование туалетной бумаги. Попробуйте.


Да, спасибо за совет. Обязательно попробую. Сейчас это актуально.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39952757
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
второй запуск вернет ошибку: "Commands out of sync; you can't run this command now".
MySQL не разрешает в одном соединении второй селективный запрос, если для первого с сервера еще не забраны данные
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953246
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Следующим логичным шагом будет повторное использование туалетной бумаги. Попробуйте.

В UIB, например, несколько Open подряд без Close - вообще штатная операция, когда надо выполнить несколько одинаковых запросов, с разными параметрами.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953250
alekcvp
Dimitry Sibiryakov

Следующим логичным шагом будет повторное использование туалетной бумаги. Попробуйте.

В UIB, например, несколько Open подряд без Close - вообще штатная операция, когда надо выполнить несколько одинаковых запросов, с разными параметрами.


Да он какой-то обиженный. Не понятно, по какой причине прицепился к CLose и Open. Совершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа. Это рекомендация самих разработчиков. А в FireDac сделали вообще прикольно и синтаксического сахара подкинули. Теперь можно в одной строке сразу запустить запрос с параметрами, просто открыв запрос.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953253
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгСовершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа.
Это рекомендация самих разработчиков.

А можно ссылку на эту рекомендацию?

Так делают когда датасет привязан к гриду и прочей дб-авари. Но это явно не твой случай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953260
Dimitry Sibiryakov

Евгений СтронгСовершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа.
Это рекомендация самих разработчиков.

А можно ссылку на эту рекомендацию?

Так делают когда датасет привязан к гриду и прочей дб-авари. Но это явно не твой случай.


Да это вообще был пример. Я пробовал по-разному. Хотел избежать ошибки. Как решать проблему, с помощью компонентов, так и не понятно. Я уже давно всё переписал на прямой доступ без хранимой и забил на это. Как показывает практика - это и проще. Хранимки оправданы при крупных корпоративных решениях.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953261
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгЯ пробовал по-разному. Хотел избежать ошибки. Как решать проблему, с помощью компонентов,
так и не понятно.

Открыть документацию по MySQL API чтобы выяснить когда такая ошибка может возникать не
предлагать? Тогда остаётся только одно: перестать-таки повторно использовать компоненты, а
для выполнения запросов использовать специальный метод TFDConneciton.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953264
Dimitry Sibiryakov

Евгений СтронгЯ пробовал по-разному. Хотел избежать ошибки. Как решать проблему, с помощью компонентов,
так и не понятно.

Открыть документацию по MySQL API чтобы выяснить когда такая ошибка может возникать не
предлагать? Тогда остаётся только одно: перестать-таки повторно использовать компоненты, а
для выполнения запросов использовать специальный метод TFDConneciton.


Читал документацию о том, что проблема возникает по причине того, что сервак не может отдать несколько запросов в рамках одного подключения. И там есть специальный метод IP, который сбрасывает коннект. А на стороне клиента получается надо будет передергивать коннект. Решение мягко скажем не хорошее. Тут постоянный идет выбор между MSSQL и MySQL. У меня по крайней мере. MSSQL нравится, но VPS дороговато выходит по сравнению с Linux. Поэтому и приходится использовать MySQL, но тут свои "грабли". В общем оптимальным получилось делать всё с помощью запросов из клиента.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953275
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
Совершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа. Это рекомендация самих разработчиков.
Евгений Стронг
И там есть специальный метод IP, который сбрасывает коннект.
Да где же вы такие рекомендации находите?

Установите в свойствах подключения ResultMode: Store
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953276
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Установите в свойствах подключения ResultMode: Store
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953277
_Vasilisk_
Евгений Стронг
Совершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа. Это рекомендация самих разработчиков.
Евгений Стронг
И там есть специальный метод IP, который сбрасывает коннект.
Да где же вы такие рекомендации находите?

Установите в свойствах подключения ResultMode: Store


Спасибо. На будущее буду знать. Но постараюсь обходить хранимки стороной) По крайней мере на MySQL.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953278
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
Но постараюсь обходить хранимки стороной)
Не в хранимках дело. Лучше постарайтесь читать документацию
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953280
_Vasilisk_
Евгений Стронг
Совершенно нормально и ПРАВИЛЬНО делать Close перед манипуляциями с компонентом доступа. Это рекомендация самих разработчиков.
Евгений Стронг
И там есть специальный метод IP, который сбрасывает коннект.
Да где же вы такие рекомендации находите?

Установите в свойствах подключения ResultMode: Store


Ты уже неоднократно давал хорошие рекомендации, быть может сможешь помочь мне в топике: https://www.sql.ru/forum/1324848/delphi-10-3-rio-android-podkluchenie-k-mysql

Тут речь идет об подключении к MySQL из android устройства. Была рекомендация вполне рабочая - Datasnap, но это опять же сервер на Windows. Есть вариант использовать PHP, но вот именно как это технически организовать, не совсем ясно. Какие компоненты использовать, где сами скрипты хранить на сервере. И хранить ли их там или генерить на клиенте. Такие вот вопросы... Организационного характера.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953282
_Vasilisk_
Евгений Стронг
Но постараюсь обходить хранимки стороной)
Не в хранимках дело. Лучше постарайтесь читать документацию


Твой ответ является решением моей проблемы. Но как его выделить как решение? Или это может только модератор сделать?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39953290
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
Но как его выделить как решение?
Тут нет такого
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39962960
_Vasilisk_
_Vasilisk_
Установите в свойствах подключения ResultMode: Store


Мне сейчас потребовалось вновь запускать хранимки в MySQL и ошибка аналогичная. Параметра у меня по умолчанию стоит Store.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963057
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
Параметра у меня по умолчанию стоит Store
Значит вы либо его где-то меняете, либо используете другой Connection
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963059
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/DBMS_Environment_Reports_(FireDAC)
Потом все остальное ...
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963213
_Vasilisk_
Евгений Стронг
Параметра у меня по умолчанию стоит Store
Значит вы либо его где-то меняете, либо используете другой Connection


Приложил скрины, как у меня настроено подключение. При выполнении хранимки - ошибка. Если просто бы выполнил одно действие, то ошибки не будет. А вот когда выполняется после сразу второе, то ошибка. На примере запускается хранимка и далее получаю ответ от неё. На MSSQL она работала правильно. И там вообще не было аналогичных проблем.

Код: pascal
1.
2.
DM.qrySQL.Open('call LoginAdd (:pLogin, :pPass, :pCodeword)',[Login, MD5Hash(Pass), Codeword]);
Info(DM.qrySQL.FieldByName('MESS').AsString);
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963214
Dmitry Arefiev,
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963215
_Vasilisk_,
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963216
Dmitry Arefiev
Сначала:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/DBMS_Environment_Reports_(FireDAC)
Потом все остальное ...


Извиняюсь, но не понимаю, как это может мне помочь?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963264
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
Извиняюсь, но не понимаю, как это может мне помочь?
Чтобы что-то вам ответить Арефьеву нужна информация по вашим настройкам. Там описано, как можно эту информацию получить.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963274
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгНа MSSQL она работала правильно.

У тебя есть выбор:
1. Вернуться на MS SQL.
2. Послушать-таки советов и перестать использовать компоненты повторно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963278
bk0010
Евгений Стронг
Извиняюсь, но не понимаю, как это может мне помочь?
Чтобы что-то вам ответить Арефьеву нужна информация по вашим настройкам. Там описано, как можно эту информацию получить.


Вот информация по подключению. Я выделил сообщение. Кажется в нем причина. То есть это получается проблема в настройках сервера? Что он не может обработать множественный запрос?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963305
Dimitry Sibiryakov

Евгений СтронгНа MSSQL она работала правильно.

У тебя есть выбор:
1. Вернуться на MS SQL.
2. Послушать-таки советов и перестать использовать компоненты повторно.


Что значит использовать компонент повторно? У меня 30 хранимых процедур, 20 из которых делают вставку, апдейт и модификацию. Ты предлагаешь на каждую процедуру использовать отдельный компонент? Это же полный бред! Или же их генерить и уничтожать после каждого вызова? Это аналогичный бред. Компонент используется прекрасно повторно, в котором очищается SQL и всё. Никаких проблем нет и быть не может.

P.S.
Проблему я свою решил и связана она с со старой версией библиотеки libmysql.dll, которая была 2011 года. Скачал новую (которую нашел) от 2016 года и всё заработало. Скачать можно тут
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963313
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгТы предлагаешь на каждую процедуру использовать отдельный компонент? Это же полный бред!

То, что ты делаешь это бред. А отдельные компоненты с заданными в дизайн-тайм запросами
это серьёзное облегчение отладки и сопровождения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963315
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
P.S.
Проблему я свою решил и связана она с со старой версией библиотеки libmysql.dll, которая была 2011 года. Скачал новую (которую нашел) от 2016 года и всё заработало. Скачать можно тут

Не проще взять официальную от нужной версии, чем грузить с какого-то левого сайта?..
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963325
Dimitry Sibiryakov

Евгений СтронгТы предлагаешь на каждую процедуру использовать отдельный компонент? Это же полный бред!

То, что ты делаешь это бред. А отдельные компоненты с заданными в дизайн-тайм запросами
это серьёзное облегчение отладки и сопровождения.


Кроме огромного количества лишних строк кода я не вижу преимуществ, если честно. Каким образом это облегчит отладку?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963333
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгКроме огромного количества лишних строк кода я не вижу преимуществ

Какого кода? Компоненты создаются в дизайне, мышкой. Строк - ноль. Отладка облегчается,
внезапно, устранением самой причины существования этого топика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963335
Dimitry Sibiryakov

Евгений СтронгКроме огромного количества лишних строк кода я не вижу преимуществ

Какого кода? Компоненты создаются в дизайне, мышкой. Строк - ноль. Отладка облегчается,
внезапно, устранением самой причины существования этого топика.


Ну так у меня и есть созданный в дизайне один query, который в нужные моменты принимает SQL с параметрами и выполняется. Что не так то? А в сам SQL я передаю имя процедуры и входные параметры.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963337
Dimitry Sibiryakov

Евгений СтронгКроме огромного количества лишних строк кода я не вижу преимуществ

Какого кода? Компоненты создаются в дизайне, мышкой. Строк - ноль. Отладка облегчается,
внезапно, устранением самой причины существования этого топика.


Вот код:

Код: pascal
1.
2.
DM.qrySQL.Open('call LoginAdd (:pLogin, :pPass, :pCodeword)',[Login, MD5Hash(Pass), Codeword]);
Info(DM.qrySQL.FieldByName('MESS').AsString);



Запустил процедуру и получил значение поля MESS. Какой ещё тут другой способ может быть, мне не понятно. Использование компонента для хранимок не было сознательно.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963350
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений СтронгЧто не так то?

SQL тоже задаётся в дизайне. Кода - ноль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963366
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Евгений СтронгЧто не так то?

SQL тоже задаётся в дизайне. Кода - ноль.

А если в базе 50 хранимок - 50 компонентов? В них не запутаешься нафиг?
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963382
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpВ них не запутаешься нафиг?

Можно было запутаться четверть века назад, когда ввели TDataModule и появилась тенденция
все data access компоненты валить туда без разбора. Через некоторое время стало понятно,
что в большинстве случаев это тупик и вменяемые люди вернулись к принципу "компоненты
размещать по месту использования".

Вряд ли у кого-то из одной формы используется сразу 50 хранимок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963392
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Хм, я думал что дата модули предназначены для компонентов, которые используются из разных мест... во всяком случае у меня он содержит подключение к БД, запросы для справочников и пару функций для прямого выполнения SQL-запросов.
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963400
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Стронг
я не вижу преимуществ
кроме в принципе уже упомянутой возможности тонкой индивидуальной настройки различных св-в для независимых компонент, подвязанных к разным запросам/процедурам, для кого-то может оказаться существенным отсутствие необходимости перепрепарации запросов при их повторных вызовах
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963402
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpя думал что дата модули предназначены для компонентов, которые используются из разных мест...

Это да, но запросы к 50-ти процедурам к таковым вряд ли принадлежат. Хотя, конечно, это на
архитекторе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
    #39963405
alekcvp
Dimitry Sibiryakov

пропущено...

SQL тоже задаётся в дизайне. Кода - ноль.

А если в базе 50 хранимок - 50 компонентов? В них не запутаешься нафиг?


Прав ты совершенно. Дата модуль для того и предназначен. Накидал компонентов и обращаешься к нему. На постоянной основе разумно держать только компоненты для постоянного отображения данных в гриде. А все остальные операции по вставке, модификации и удалению делать через один единственный квери. И никогда не будет путаницы, всё красиво и не захламлено. Я для себя пришел к прекрасной модели: DataModule, в которой все компоненты доступа к БД и отдельный Unit со всеми процедурами. Можно вынести в dll, тут по желанию. И всё. Интерфейс должен быть только лишь "коробкой" из которой дергаются те или иные процедуры. Никакой логики в нем описано не должно быть.
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rio 10.3 FireDac MySQL Commands out of sync; you can't run this command now
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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