11.12.2006, 13:34 | #1 |
Участник
|
Синхронизация таблиц м/у 2-мя компаниями
Уважаемые Гуру, добрый день.
Есть небольшая проблемка, думается коллективный раз должен справиться с оной. Вообщем суть такова: Реализовываю синхронизацию различных таблиц м/у компаниями. Все это делаю путем модификации табличных методов insert, update, delete в компании источнике. с методом insert успешно справился: данный метод был вызван в методе insert() компании источника, в котором было сделано changeCompany void insertRec(Common _tableRec) { DictTable dt = new DictTable(_tableRec.TableId); DictField dictField; FieldId fieldId; int cnt = dt.fieldCnt(); //кол-во полей в таблице int i,cntFld=0,cntFldsys=0; int id; boolean flag; ; ttsbegin; commonRec = dt.makeRecord(); flag = false; for (i=1; i<=cnt; i++) { dictField = new dictField(_tableRec.TableId,dt.fieldCnt2Id(i)); fieldId = dt.fieldCnt2Id(i); if (!dictField.isSystem()) {//если поле не системное if (dictField.name(dt.fieldCnt2Id(i))) {//если поле имеет наименование id =fieldName2Id(_tableRec.TableId,dictField.name(dt.fieldCnt2Id(i))); if(id) { commonRec.(Id) = _tableRec.(fieldId); flag = true; } } } } if(flag) { commonRec.insert(); ttscommit; } else ttsabort; } а вот "проблемка" с update. Не охота также тупо перебирать ВСЕ поля таблицы, переприсваивать и потом апдейтить. Думается мне есть какое-то свойство у поля, по которому можно определить было изменено оно или нет. Если есть то можно получить список этих самых смодифицированных полей и работать ТОЛЬКО с ними. проблема собственно: Есть ли такой признак и как его правильно юзать (если он все-таки есть) ??? будут желающие поделиться опытом? |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Ре-синхронизация системных таблиц на основании AOT | 7 | |||
Владельцы таблиц в БД аксапты | 11 | |||
Синхронизация таблиц при изменении EDT | 1 | |||
синхронизация таблиц | 3 | |||
Синхронизация таблиц | 6 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|