Показать сообщение отдельно
Старый 29.09.2006, 14:35   #8  
BVN is offline
BVN
Участник
 
88 / 13 (1) ++
Регистрация: 07.04.2005
Адрес: г. Королёв МО
ну как вариант можно рассмотреть и такое копирование, по названию полей и их одинаковых типов...
PHP код:
void  dddd(   Common  _from,    Common  _to)
{
    
DictTable   dictTable = new DictTable(_from.tableId);
    
DictTable   dictT = new DictTable(_to.tableId);
    
fieldId     fieldId   dictTable.fieldNext(0);
    
DictField   dictField,dictF;
    
int i;
    
int id;
    
boolean flag;
    ;

    
ttsbegin;
        
flag =false;
        for (
1<= dictTable.fieldCnt(); i++)
        {

             
dictField     = new dictField(_from.TableId,dictTable.fieldCnt2Id(i));
             
fieldId         dictTable.fieldCnt2Id(i);
                if(!
dictField.isSystem())
                {
                    if(
dictField.name(dictTable.fieldCnt2Id(i)))
                    {
                    
dictF = new dictField(_to.TableId,fieldName2Id(_to.TableId,dictField.name(dictTable.fieldCnt2Id(i))));
                    
id =fieldName2Id(_to.TableId,dictField.name(dictTable.fieldCnt2Id(i)));
                        if(
id && dictField.baseType()==dictF.baseType())
                        {
                        
_to.(Id)   = _from.(fieldId);
                        
flag true;
                        }
                }
        }

}
    if(
flag)
    {
    
_to.insert();
  
ttscommit;
    }
    else
  
ttsabort;

За это сообщение автора поблагодарили: Poleax (1), Hans (1).