![]() |
|
|
![]()
|
|
| JackyFox |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Здравствуйте!
Делаю БД на MySQL, клиентская часть на C++ Builder 2006 + Zeoslib 6.6.6. Возникла проблема при попытке выполнить запрос, содержащий несколько операторов INSERT. По одиночке выполняются без проблем, а вот если их два или больше, то вы появляется ошибка 1064 "У вас ошибка в синтаксисе. Читайте мануал". Работаю по принципу:
В итоге ZQuery1->SQL содержит нечто подобное:
Пробовал обрамлять запрос в
Проводил вышеуказанные запросы, которые собственно взяты из логов работы компонента ZQuery, вручную через MySQL Workbench. Всё прекрасно выполняется. Думаю вот не делать ли ExecSQL() для каждого инсерта по отдельности. По сути у меня этих вставок более шести быть не должно за раз, но всё же чувствую какой-то дискомфорт от такого решения. Посоветуйте более элегантный вариант, или же укажите на ошибки. Спасибо --------------------
У вас менее 250 сообщений, ссылки отключены |
||||||
|
|||||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
По хорошему такой подход не кошерен априори.
Если уж и вставлять много данных, то я бы использовал builk insert, то бишь аля:
возможно (возможно!) поможет. однако не стоит забывать - мускул кеширует данные. кажись по умолчанию - 8 Мб. Это стоит учитывать, дабы не получить удар в интересное место. Разумеется кэшем можно управлять. Так же есть смысл использовать хранимые процедуры. |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
mrbrooks, попробую булки. Спасибо за совет.
Я сильно ламер по части БД. Расскажи, как грамотно производить транзакцию в случае необходимости заполнения сразу нескольких строк в таблице. Смотрел, что делает воркбенч при формировании запросов с несколькими инсертами: автокомит — ноль, потом инсерты, в конце комит. Но в бильдере такой подход вызывает ошибку. Видимо, ZQuery где-то надо подкрутить. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| mrbrooks |
|
||||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
да я обычно делал чет вроде этого:
рекомендую в этом плане ориентироваться на документацию мускула.
я думаю это связано с Zeos. В принципе транзакциями можно управлять и кодом. У TZConnection должны быть соответствующие методы. Добавлено через 9 минут и 51 секунду так оно и есть: старт: TZConnection::StartTransaction() подтверждение: TZConnection::Commit() отмена: TZConnection::Rollback() и еще всякая разная бодяга. |
||||
|
|||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
mrbrooks, не выходит со стартом и коммитом. Некогда сейчас разбираться, оставил пока вариант:
То бишь, каждый инсерт отправляется серверу по отдельности. Криво, зато работает. Будет время — поковыряю еще. Еще раз благодарствую за помощь. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
mrbrooks, я криворукий
Builk insert работает. Буду пользовать его. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |