Показать сообщение отдельно
Старый 18.07.2008, 05:39   #4  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
mazzy, спасибо, появился повод посмотреть в сторону VSS... Пока ничего не понятно, но может шеф даст указ разобраться.
Пока получился вот такое текст:
X++:
UtilElements _UtilElements;
Issi_utilversionwritetrack tmptable;
treenode node;
TimeOfDay TimeFrom, TimeTo;
;
    #OCCRetryCount
    if (! this.validate())
        throw error("");

    try
    {
//        ttsbegin;

if ( DateFrom <= str2date('01-01-1901',123) && DateTo <= str2date('01-01-1901',123))
{
    DateFrom = systemdateget();
    DateTo = systemdateget();
    TimeFrom = timenow() - 360;
    TimeTo = timenow();
}
else
{
    TimeFrom = str2time('00:00:00');
  TimeTo = str2time('23:59:59');
}
while select _utilelements where
        ((_utilElements.CreatedDate <= DateTo &&
        _utilElements.CreatedDate >= DateFrom ) &&
        (_utilElements.CreatedTime <= TimeTo &&
        _utilElements.CreatedTime >= TimeFrom  )) ||
        (( _utilElements.ModifiedDate <= DateTo &&
        (_utilElements.ModifiedDate >= DateFrom ) &&
        (_utilElements.ModifiedTime <= TimeTo &&
        _utilElements.ModifiedTime >= TimeFrom ))
        )
{

    tmptable.RecordType = enum2Value(_utilElements.RecordType);
    tmptable.Name = _utilElements.Name;
    tmptable.ParentId = utilElements.ParentId;
    tmptable.parentName = xUtilElements::parentName(_utilElements);
    tmptable.SaveCount = _utilElements.SaveCount;
    tmptable.Version = _utilElements.version;
    tmptable.BaseVersion = _utilElements.baseVersion;
    tmptable.UtilLevel = enum2Value(_utilElements.utilLevel);
    node = xUtilElements::getnode(_utilElements);
    tmptable.Path =  (node)?node.treeNodePath():'';
    if ( _utilElements.ModifiedBy == '')
            tmptable.UtilModifiedBy =  _utilElements.CreatedBy;
    else
        tmptable.UtilModifiedBy = _utilElements.ModifiedBy;
    if ( (_utilElements.ModifiedDate) <= str2date('01-01-1901',123))
            tmptable.UtilModifiedDate = _utilElements.CreatedDate;
    else tmptable.UtilModifiedDate = _utilElements.ModifiedDate;
    if ( (_utilElements.ModifiedTime) == str2time('00:00:00'))
            tmptable.UtilModifiedTime =  _utilElements.CreatedTime;
    else tmptable.UtilModifiedTime =  _utilElements.ModifiedTime;
    tmptable.UtilRecId =  _utilElements.RecId;
    tmptable.insert();
}
Все это дело батчим каждые 10 мин... а-ля лог . Тупо конечно, но пока ничего другого в голову не лезет.