parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 21.02.2007 10:44

скорее всего у вас в forum.p написано @CLASS...
и поэтому объект oSql ищется в нём, а не в MAIN, где вы создали объект oSql. если внутри forum.p будете писать ^MAIN:oSql.table - то всё будет работать.

но мне подобный подход очень не нравится, т.к. порождает зависимость класса с внешним миром через неправильное место.
эти зависимости лучше минимизировать:
@CLASS
MyClass

@constructor[...]
$oSql[$MAIN:oSql]
...

@method[...]
...
$tVar[^oSql.table{...}]
...
или вовсе устранить (я делаю так):
@CLASS
MyClass

@constructor[hParam]
$oSql[$hParam.oSql]
^if(!def $oSql){
	^throw[myclass;^$.oSql must be defined.]
}
...

@method[...]
...
$tVar[^oSql.table{...}]
...
и при создании объекта этого класса (например в index.html) передаю ему уже существующий sql-объект:
...
$oMyClass[^MyClass::constructor[$.oSql[$oSql]]]
...