|
21.10.2005, 11:17 | #1 |
Участник
|
Я может быть что-то не так делаю?! qbds2 = _qbds2; - ошибка.
ситуация такая:
есть родительский класс, у которого в декларации живут query и qbds. до этих объектов есть методы доступа на чтение. есть метод класса addDataRange(), который вешает фильтры на qbds. есть класс потомок в котором в декларации qbds2. перекрыт метод addDataRange(), в котором после супера стояла строчка qbds2 = this.qbds().addDataSource(...); это приводило к ошибке "Ошибка времени выполнения. : Неправильные типы аргументов в операции присвоения значения переменной." сделал так: завел локальные переменные метода qbds0 = this.qbds(); tempQbds; строка tempQbds = qbds0.addDataSource(...) работает без вопросов, а стокой ниже qbds2 = tempQbds вызывает ту же ошибку. сделал метод доступа для qbds2 QueryBuildDataSource qbds2(QueryBuildDataSource _qbds2 = qbds2) { ; qbds2 = _qbds2; return qbds2; } строку переделал на this.qbds2(tempQbds); - ошибка переместилась в метод доступа на присвоении. вопрос: что я делаю не так?!?! классы Query*** это что-то такое, что не работает как остальные чтоли?! раньше такого за ними не было замечено вроде. что делал: перекомпилировал по 10 раз по всякому, менял название qbds2 на что-нибудь другое, экспортировал/импортировал класс - не помогает НИЧЕГО. иногда аксапта на присвоении валится, а один раз выдала сообщение "Internal fujl" с кнопокой [ОК] не, ну что за фигня-то? если я в чем-то не прав, так и скажите... |
|
21.10.2005, 11:20 | #2 |
Moderator
|
Выкладывайте проект.
__________________
Андрей. |
|
21.10.2005, 12:04 | #3 |
Участник
|
Цитата:
Сообщение от Dron AKA andy
Выкладывайте проект.
описанная выше ситуация заработала. просто так. меня что-то напрягает то, что в аксапте запросто может потеряться ссылка на метод родителя, при компиляции всё будет нормально, а при выполнении либо не найден метод, либо см. выше. как откомпилировать дерево объектов, чтоб все ссылки восстановились, чтоб всё работало?! если у меня 50 классов я устану по каждому бегать, перекрывать потерявшийся метод, компилировать, удалять его, компилировать, компилировать родителя.... должен же быть способ, чтоб всё само? почему мне не помогали инкрементальные компиляции всех классов в ветке даже? как лечил случай, описанный выше: снёс из АОТ ВСЁ дерево классов, потом его заимпортировал, получил кучу ошибок компиляции. раз пять покомиплировал, ошибок осталось меньше. зашёл в каждый метод, где была ошибка - добавил и стёр пробел, чтоб метод стал считаться отредактированым - после компиляции ошибки эти изчезли. стал тестировать - не находились методы родительских классов в потомках. перекрывал их, компилировал, удалял метод, снова компилировал. в общем собралось пока еще не всё, но ветку одну потестировать уже можно. ещё попрыгать с оставшимися придётся, видимо... просто праздник какой-то сегодня... |
|
21.10.2005, 12:07 | #4 |
Moderator
|
Обычно инкрементная компиляция родителя помогает.
__________________
Андрей. |
|