Автоматизация Master Detail

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Закрыто
Akella
Сообщения: 217
Зарегистрирован: Пн 02 апр 2012 14:41

Автоматизация Master Detail

Сообщение Akella » Чт 19 апр 2012 12:27

Не могу сообразить, как правильно подключить 2 TUniQuery, чтобы создать связь Master/Detail между ними.

В базе (MySQL 5.1) есть 2 таблицы:

Главная

Код: Выделить всё

CREATE TABLE tLimits(
  id INT(11) NOT NULL AUTO_INCREMENT,
  id_user INT(11) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = MYISAM
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;
Детальная:

Код: Выделить всё

CREATE TABLE tLimitsDetail(
  id INT(11) NOT NULL,
  id_limits INT(11) NOT NULL,
  ex_count SMALLINT(6) DEFAULT NULL,
  common_count SMALLINT(6) DEFAULT,
  frame_count SMALLINT(6) DEFAULT,
  bold_count SMALLINT(6) DEFAULT,
  remark VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = MYISAM
CHARACTER SET utf8
COLLATE utf8_general_ci;
"Связующее поле" - id_limits

Как организовываю связь в приложении (DXE2, UniDAC 4.1.6)

В главном Наборе Данных TUniQuery (далее НД, qLimits) обычный запрос:

Код: Выделить всё

select id, id_user from tLimits
Создал столбцы.

В детальный НД (qLimitsDetail) вставил запрос:

Код: Выделить всё

SELECT ld.id
     , ld.id_limits
     , ld.ex_count
     , ld.common_count
     , ld.frame_count
     , ld.bold_count
     , ld.remark
FROM
  tLimitsDetail ld
В детальном НД выбрал в свойстве MasterSource тот DataSource, который привязан к главному НД - dsLimits.

Щёлкаю по кнопке в свойстве MasterFields и получаю AV
Access violation at address 00000000. Read of address 00000000.
Даже если прописать ручками все поля, то всё равно получаю AV при открытии НД в дизайне:

Изображение

Что я делаю не так?

Akella
Сообщения: 217
Зарегистрирован: Пн 02 апр 2012 14:41

Сообщение Akella » Чт 19 апр 2012 12:38

Теперь когда хочу вызвать редактор столбцов у детального НД, получаю AV
Access violation at address 0C84E8DF in module 'dac160.bpl'. Write of address 00000006.

Akella
Сообщения: 217
Зарегистрирован: Пн 02 апр 2012 14:41

Сообщение Akella » Чт 19 апр 2012 12:47

Перезапустил среду.
Открыл редактор столбцов у детальной таблицы, выбрал команду "Add all fields" получаю:
Assertion failure (D:\Projects\Delphi\Dac\MySql\Source\MySqlApiDirect.pas, line 501).
у меня такой папки нет

Akella
Сообщения: 217
Зарегистрирован: Пн 02 апр 2012 14:41

Сообщение Akella » Чт 19 апр 2012 13:42

Пока что проблему удалось победить. Удалил из модуля детальный НД и снова его создал.

Тех. поддержка-то не очень спешит помочь :(

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Чт 19 апр 2012 14:31

Я не могу повторить проблемы которые Вы обнаружили. Скорее всего проблема была вызвана какими-то настройками Вашего проекта. Если данные проблемы возникнут вновь, пришлите пожалуйста Ваш проект на andreyz*devart*com .
Мы осуществляем техническую поддержку на нескольких английских и русских форумах (включая наши форумы). Мы стараемся отвечать на вопрос в течении одного рабочего дня после его появления на форумах.

Akella
Сообщения: 217
Зарегистрирован: Пн 02 апр 2012 14:41

Сообщение Akella » Чт 19 апр 2012 14:42

Забыл написать.
У меня всё с того, что в первую очередь появилось сообщение о совпадении поля id толи при открытии редактора столбцов, то ли ри добавлении всех столбцов.
Да, если вдруг получится воспроизвести, конечно же пришлю более подробное описание

Закрыто