День добрый,имеется:
PostgreSQL 9.2.* x64 (x86)
База данных в кодировке WIN1251
декабрьская версия devart
Суть проблемы..
имеется две абсолютно идентичные таблицы. Пытаюсь с помощью batch импортировать данные из одной в другую с заменой (update) имеющихся ,но вместо вместо изменения происходит добавление строки...
в таблицах нету ни индексирования,ни первичных,ни вторичных ключей...даже проверка на уникальность отсутсвует
Если что-либо потребуется для верной обработки,- я добавлю
CRBATCHMOVE задваивает :(
-
- Сообщения: 5
- Зарегистрирован: Вс 10 фев 2013 05:17
Re: CRBATCHMOVE задваивает :(
Hello,
Мы не можем воспроизвести проблему, пожалуйста попробуйте скачать последнюю версию PgDAC и воспроизвести проблему на ней. Кроме того так как у Вас в таблицы нет ключей, в установите значение опции FieldMappingMode в mmFieldName:
если проблема будет повторяться пришлите пожалуйста скрипты для создания таблиц и вставки данных на alexp*devart.*com
Мы не можем воспроизвести проблему, пожалуйста попробуйте скачать последнюю версию PgDAC и воспроизвести проблему на ней. Кроме того так как у Вас в таблицы нет ключей, в установите значение опции FieldMappingMode в mmFieldName:
Код: Выделить всё
CRBatchMove1.FieldMappingMode := mmFieldName;
-
- Сообщения: 5
- Зарегистрирован: Вс 10 фев 2013 05:17
Re: CRBATCHMOVE задваивает :(
Вечер добрый!
выслал вопрос с мой ник @ hotmail точка сом
Вопрос: А как Batchmove определяет какую строчку нужно добавить,а какую обновить ?
Возможно ли там задать режим соответсвия ? (Если стобец 1 = стобец 1,а столбец 2 = столбец 2,то обновить,иначе добавить )
выслал вопрос с мой ник @ hotmail точка сом
Вопрос: А как Batchmove определяет какую строчку нужно добавить,а какую обновить ?
Возможно ли там задать режим соответсвия ? (Если стобец 1 = стобец 1,а столбец 2 = столбец 2,то обновить,иначе добавить )
Re: CRBATCHMOVE задваивает :(
Добрый день,
Спасибо я получил Ваше письмо. Для того чтобы избежать вставки одинаковых данных в режиме bmUppend и bmAppendUpdate Вам необходимо в обоих DataSet (исходный и конечный) установить в свойстве KeyFields имена полей по которым будет производиться поиск данных в конечном DataSet. В Вашем случае это поля "id". Для того, чтобы указать из какого поля исходного DataSet необходимо перенести данные в поле конечного DataSet Вам необходимо указать соответствие полей в свойстве Mappings, а также опцию FieldMappingMode в mmFieldName :
Спасибо я получил Ваше письмо. Для того чтобы избежать вставки одинаковых данных в режиме bmUppend и bmAppendUpdate Вам необходимо в обоих DataSet (исходный и конечный) установить в свойстве KeyFields имена полей по которым будет производиться поиск данных в конечном DataSet. В Вашем случае это поля "id". Для того, чтобы указать из какого поля исходного DataSet необходимо перенести данные в поле конечного DataSet Вам необходимо указать соответствие полей в свойстве Mappings, а также опцию FieldMappingMode в mmFieldName :
Код: Выделить всё
CRBatchMove1.FieldMappingMode := mmFieldName;
CRBatchMove1.Mappings.Add('имя_поля_в_конечном_DataSet=имя_поля_в_исходном_DataSet');
-
- Сообщения: 5
- Зарегистрирован: Вс 10 фев 2013 05:17
Re: CRBATCHMOVE задваивает :(
Спасибо !
keyField я и проморгал
Извиняюсь за беспокойство !
keyField я и проморгал
Извиняюсь за беспокойство !
Re: CRBATCHMOVE задваивает :(
Добрый день,
Пожалуйста. Я рад что смог помочь. Пишите нам если возникнут дальнейшие вопросы
Пожалуйста. Я рад что смог помочь. Пишите нам если возникнут дальнейшие вопросы