Вставка XE6 TUniQuery с помощью SubSelect

Я работаю в проекте VCL. Я заполняю TUniQuery Insert, который использует sub select. Глядя на файл журнала MySQL, я вижу, что команда обращается к базе данных. Об ошибках или исключениях не сообщается, и все, кажется, выполняется правильно. Однако, когда я запрашиваю базу данных, данных там нет. Если я скопирую и вставлю команду из файла журнала и запущу ее в dbForge, она выполнит команду правильно и заполнит таблицу. Ниже приведен код без указанных полей:

UniQuery->Close();
UniQuery->SQL->Clear();
UniQuery->SQL->Add("INSERT INTO tmplegacypricingdistinct (...) ");
UniQuery->SQL->Add("SELECT DISTINCT ... FROM tmplegacypricing");
UniQuery->Execute();

Я планирую превратить таблицы, используемые во временные таблицы, однако в настоящее время они являются реальными таблицами.

Некоторые мысли, которые у меня были, заключались в том, что это может быть соединение, но, поскольку оно регистрируется в файле журнала mysql, я не вижу в этом проблемы. У меня есть работа, которая заключалась бы в том, чтобы вытащить информацию, а затем вставить одну запись за раз, но я бы не хотел перетаскивать данные по проводу и должен был это делать. Мысли или идеи о том, что я могу сделать, чтобы все это происходило на стороне сервера, или в чем может заключаться моя проблема с описанным выше подходом?


person James Oravec    schedule 29.07.2014    source источник


Ответы (1)


Убедитесь, что у вас нет таблиц TEMPORARY и таблиц REAL с одинаковыми именами. MySQL позволяет вам это сделать.

person jaridmo    schedule 29.07.2014
comment
Спасибо, Джаридмо, некоторое время боролся с этим. У меня был код для создания временных таблиц с помощью create if not exists, и я думал, что и обычным, и временным таблицам не будет разрешено совместно использовать имена. Большое спасибо. - person James Oravec; 29.07.2014