LastInsertId возвращает 0

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Ответить
Fastex
Сообщения: 5
Зарегистрирован: Ср 29 ноя 2017 19:10

LastInsertId возвращает 0

Сообщение Fastex » Пт 15 дек 2017 15:38

Здравствуйте!

Пишу на C++ Builder xe
База данных MySQL

В БД есть таблицы связанные многие-ко-многим.
Например Преподаватели и Ученики. Каждый препод может обучать нескольких учеников, так же, как и все ученики могут обучаться разных преподов.

Задача состоит в том, чтобы из пользовательского интерфейса пользователь смог ввести данные преподавателя и прикрепить к этому преподавателю несколько учеников.
Проблема в том, что мне нужно знать id нового преподавателя, но запись ещё не сохранена, а выполнен только insert().

Пробую uniquery->LastInsertId: возвращает 0.
Пробовал ставить defaultvalues=true-не помогло .

Почему возвращается 0 и что можно сделать? Необходимо зарезервировать id. Что можно ещё попробовать ?

ViktorV
Devart Team
Сообщения: 199
Зарегистрирован: Чт 31 июл 2014 09:52

Re: LastInsertId возвращает 0

Сообщение ViktorV » Пт 15 дек 2017 17:09

При использовании связи master-detail, перед вызовом метода Post подчиненного датасета, вы обязательно должны вызвать метод Post у главного датасета. Также, пожалуйста, убедитесь, что у вас корректно заполнены свойства TMyQuery.MasterFields и TMyQuery.DetailFields у подчиненого датасета. Более подробную информацию об использовании связи master-detail, вы можете получить на нашем сайте: http://www.devart.com/mydac/docs/work_md.htm
Вы можете использовать CachedUpdates режим для detail таблицы, для возможности добавления данных для несуществующего преподавателя.
Если это не поможем вам в решении задачи, пожалуйста, составьте и вышлите нам небольшой пример, демонстрирующий проблему с помощью: https://www.devart.com/company/contactform.html, включая скрипты для создания и заполнения объектов БД.

Fastex
Сообщения: 5
Зарегистрирован: Ср 29 ноя 2017 19:10

Re: LastInsertId возвращает 0

Сообщение Fastex » Чт 21 дек 2017 22:44

Спасибо за помощь !

ViktorV
Devart Team
Сообщения: 199
Зарегистрирован: Чт 31 июл 2014 09:52

Re: LastInsertId возвращает 0

Сообщение ViktorV » Пн 25 дек 2017 09:26

Спасибо за интерес к нашим продуктам.
Обращайтесь к нам, если у Вас возникнут вопросы по нашим продуктам.

Ответить