2014-07-29 2 views
0

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

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

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

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

ответ

1

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

+0

Thanks Jaridmo, сражался с ним некоторое время. У меня был код для создания временных таблиц с create, если они не существуют, и думал, что для обычных таблиц и временных таблиц не будет разрешено обмениваться именами. Большое спасибо. –