Страница 1 из 1

Application не видит словарь.

Добавлено: 12 Сентябрь 2011, 20:39
kreator
С8. Столкнулся с такой проблемой. Измененяю файл словаря в свойствах application. Сохраняю. Закрываю проект. Открываю. Вот такое сообщение.
1.jpg
Ну и данных в application нет. Хотя словарь открывается и через app и так.
Никто не сталкивался?

Re: Application не видит словарь.

Добавлено: 12 Сентябрь 2011, 20:46
Дед Пахом
Ну а что Вы хотите? Поменяли словарь - поменялись все внутренние идентификаторы словарных переменных, а в структуре окон эти идентификаторы связывают контролы со словарём.

Re: Application не видит словарь.

Добавлено: 13 Сентябрь 2011, 10:40
Игорь Столяров
Здесь видимо вопрос немного о другом ...

Действительно в C6 была операция "Application -> Change Dictionary" которая позволяет производить замену словаря для приложения.
Удобно, например если для разных сборок программы, используются словари с разными драйверами БД ...
Как это сделать в C7 / C8 я не знаю ..... Такой операции нет.

Re: Application не видит словарь.

Добавлено: 13 Сентябрь 2011, 10:50
kreator
Да в том-то и дело, что изменения в словарях минимальные. А не определяются все таблицы.
1.jpg
В клаше где-то глюк.
Я гарантирую на 100%, что имена таблиц - одинаковые. Возможно, Аппликуха понимает словарь не по именам таблиц, а по каким-то идентификаторам?

Re: Application не видит словарь.

Добавлено: 13 Сентябрь 2011, 11:10
Игорь Столяров
kreator писал(а):Возможно, Аппликуха понимает словарь не по именам таблиц, а по каким-то идентификаторам?
Есстественно. Выгрузи словарь в TXD и увидишь, что для каждой таблицы, ключа, поля есть свой цифровой ID.
Поэтому простая замена словарей возможна, только если в них полностью соответствуют ID всех элементов словаря.
А вот кстати, упомянутая мною ниже операция замены словаря в C6 как раз делает сопоставление по именам.

Re: Application не видит словарь.

Добавлено: 13 Сентябрь 2011, 12:05
Дед Пахом
Ну вот, а теперь перечитываем пост от 12 Сентябрь 2011, 19:46

Re: Application не видит словарь.

Добавлено: 13 Сентябрь 2011, 13:22
kreator
Нашёл решение!

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

Summary

When you replace a data dictionary, you must take the following steps to preserve the internal relationships between the application and the data dictionary: first, create a text application file (.TXA), then update the data dictionary, finally create a new application (.APP) from the text application file (.TXA).

By using the Dictionary Synchronizer to update the Qwktutor.dct (as opposed to simply replacing it with a copy of the Tutorial.dct), you are able to see exactly which items changed and you can intelligently manage those changes; if both dictionaries have changed, you can incorporate the changes from both dictionaries by synchronizing each dictionary with the other; finally, the Dictionary Synchronizer can generate a Clarion program to convert your existing data to the new data format.
Пока, вроде, прокатило! Хотя и дурость это, считаю.
Всем спасибо!!!