|
|
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста новичку. Конвертирую таблицу dbf в БД на SQL Server 2000. На соответствующую таблицу SQL Server создаю REMOTE VIEWER. Конвертирую обычной конструкцией INSERT INTO (в REMOTE VIEWER).Дохожу сканом (SCAN) до первой некорректной записи в исходной таблице dbf, где нарушаются ограничения целостности таблицы SQL Server (такую запись нужно пропустить при конвертации). Выдается ошибка Connectivity error, которую нельзя убрать через Ignore. Дальнейшие записи уже никак не получается сконвертировать. Пробовал скрывать ошибку своим обработчиком ON ERROR DO ... Тогда сканируются все записи dbf но INSERTы после ошибочной записи также не проходят и при закрытии БД CLOSE DATABASES выдается все таже не убираемая через IGNORE ошибка: Connectivity error. Помогите плиз, как решить эту проблему. Буду весьма благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 08:49 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
ну так проверяй перед инсертом - есть ли в таблице уже запись с таким ключем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 10:38 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Ответа два 1. Либо убрать повторяющиеся данные из источника (dbf) 2. Либо убрать ограничения на сервере Решение за Вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 10:38 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Я, наверное, не полностью сформулировал свою проблему. Убрать constraintы в БД SQL Server я не могу. БД - заказчика. Его интересуют именно помимо самой конвертации какие ограничения нарушены в каждой конкретной ошибочной записи. Это можно отловить через свою процедуру обработки ошибок по ON ERROR DO ... Проверять каждый constraint перед INSERT хороший выход, но однако не панацея. БД живая и заказчик в любой момент может поменять ограничения. Однако все равно спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 11:26 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Подавить ошибку нарушения целостности или ещё чего-нибудь, конечно можно, НО возникает вопрос - "А что делать дальше? При возникновении ошибки", ответ на этот вопрос приведет к решению, как программно разрулить ошибочную ситуацию. Т.е. надо ли продолжать "закачку дальше" и какие данные "заливать" (например при одинаковом PK, те которые встретились первыми или те которые в середине ) или прервать, или пусть юзер решает или отключить констрейнты и залить всё, а потом будем разбираться итд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 11:45 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Сейчас нашел решение своей проблемы. Можно ведь использовать не REMOTE VIEWER а напрямую готовить и выполнять запрос к БД на SQL SERVER через функции SQLPREPARE и SQLEXEC. Тогда при нарушении констрейнта SQLEXEC возвращает -1, дальнейшая конвертация не останавливается а продолжается. Ошибка ловится не через Error Event, а напрямую извлекается из массива ошибки через функцию AERROR. Второй элемент формируемого массива ошибки как раз и содержит подробное текстовое описание ошибки в том числе и имя нарушенного ограничения. Его вырезаем и помещаем в текстовый файл протокола вместе с ключом ошибочной записи. Что по сути и нужно заказчику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 12:08 |
|
||
|
Connectivity error
|
|||
|---|---|---|---|
|
#18+
Новичок_ламер...при нарушении констрейнта SQLEXEC возвращает -1, дальнейшая конвертация не останавливается а продолжается.... Это почему такая дискриминация, почему запись с первым попавшимся ключом должна прилипнуть к данным, а не вторая ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 12:35 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=229&tid=1590559]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 347ms |

| 0 / 0 |
