21.04.2011, 15:07 | #1 |
Участник
|
Имеем экспортированный текстовый файл со счетами продаж. При перекачке (импорте) этих счетов датапортом в другой БД при совпадении полей получаем сообщение "Счет номер ключевое поле уже существует". Каким образом сравнить два ключевых поля на совпадение и "подменить" всю запись новым значением из файла экспорта?
|
|
21.04.2011, 15:19 | #2 |
Участник
|
В общем случае в коде триггера OnBeforeImportRecord() можно воспользоваться механизмом
IF NOT INSERT THEN ... подменить в текущей записи ключевые поля, после чего выполнить вставку |
|
21.04.2011, 15:39 | #3 |
Участник
|
А каким образом производить подмену? Есть ли для этого какой-то оператор?
|
|
21.04.2011, 15:47 | #4 |
Участник
|
Цитата:
Пример из закачки Gen. Journal Line LineNo := LineNo + 10000; "Gen. Journal Line"."Line No." := LineNo; "Gen. Journal Line"."Account Type" := "Gen. Journal Line"."Account Type"::"G/L Account"; "Gen. Journal Line"."Bal. Account Type" := "Gen. Journal Line"."Bal. Account Type"::"G/L Account"; "Gen. Journal Line"."Journal Template Name" := 'ОБЩИЙ'; "Gen. Journal Line"."Journal Batch Name" := 'СТАНДАРТ'; но это в качестве примера :-) |
|
21.04.2011, 15:47 | #5 |
Участник
|
Оператор присваивания
Вообще, вам надо менять первичный ключ в заголовке счета и во всех строках, старый номер необходимо сохранять для последующей сверке. В идеале, если делаете экспорт из одной базы в другую, то лучше вести разную нумерацию счетов в разных базах, чтобы не было пересечений. |
|
21.04.2011, 17:15 | #6 |
Участник
|
|
|