Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

SQL SERVER -> AS400 : Data transformation

152  
  rimqpp0 гость15.08.09 21:00
NEW 15.08.09 21:00 
пертягиваю данные с SQL Server в AS 400.
Удается INSERT-ить, SELECT-ить через OPENQUERY.
Но UPDATE, DELETE дает ошибку. И ето при том что вначале когда таблица в AS400 была почти пустой DELETE и UPDATE шло без проблем.
Теперь дает следуюшую ошибку (привожу также пример SELECT-a который пытаюсь удалить):
SELECT * FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(идет без проблем)
DELETE FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(дает ошибку :
Der OLE DB-Provider 'IBMDASQL' konnte nicht aus der select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = 'VG00001')-Tabelle löschen.
Die Aktualisierung entsprach nicht den Schemaanforderungen.
[OLE/DB provider returned message: Key column information is insufficient or incorrect. Too many rows were affected by update.]
OLE DB-Fehlertrace [OLE/DB Provider 'IBMDASQL' IRowsetChange::DeleteRows returned 0x80040e21: DBROWSTATUS_E_SCHEMAVIOLATION]. )
подскажет кто нибуть где искать загвоздку? Как в AS400 правильно удалять и как правильно искать Key column?
#1 
Nickolaychuk прохожий24.08.09 16:43
NEW 24.08.09 16:43 
в ответ rimqpp0 15.08.09 21:00
rimqpp0,
В подобной ситуации у меня работало с таким синтаксисом:
DELETE OPENQUERY(S44DE055, 'select KBNEI1 from rl35tb14.KMFIFC1')
WHERE KBNEI1 = 'VG00001';
#2 
  rimqpp0 гость31.08.09 11:06
NEW 31.08.09 11:06 
в ответ Nickolaychuk 24.08.09 16:43
Спасибо за ответ. вижу что не один сталкиваюсь с подобными занятиями. Можно иногда хоть спросить совета.
Там проблема была в ID. Сам сервер AS400 я не видел, есть какая то терминальная прога, но выглядит по типу ES-ки с 80 годов.
Работаю через vpn на удаленном сервере, с которого пока нашел только способ через open query загнать данные в DB2.
После того как админ добавил ID в таблицы (какой то уж очень специфичный на вид unique identifier), стало возможым удалЯть и делать update.
#3 
Nickolaychuk прохожий31.08.09 15:52
31.08.09 15:52 
в ответ rimqpp0 31.08.09 11:06
Alex,
Рад, что все разрешилось :)
> Спасибо за ответ. вижу что не один сталкиваюсь с подобными занятиями. Можно иногда хоть спросить совета.
Хотел ответить, что быстрее будет получить на такие вопросы ответы на sql.ru
потом увидел, что вы прекрасно об этом осведомлены. :)
#4