powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Connectivity error
7 сообщений из 7, страница 1 из 1
Connectivity error
    #34058944
Помогите пожалуйста новичку. Конвертирую таблицу 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.
Помогите плиз, как решить эту проблему. Буду весьма благодарен.
...
Рейтинг: 0 / 0
Connectivity error
    #34059204
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так проверяй перед инсертом - есть ли в таблице уже запись с таким ключем.
...
Рейтинг: 0 / 0
Connectivity error
    #34059212
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответа два

1. Либо убрать повторяющиеся данные из источника (dbf)
2. Либо убрать ограничения на сервере

Решение за Вами.
...
Рейтинг: 0 / 0
Connectivity error
    #34059432
Спасибо за ответы. Я, наверное, не полностью сформулировал свою проблему. Убрать constraintы в БД SQL Server я не могу. БД - заказчика. Его интересуют именно помимо самой конвертации какие ограничения нарушены в каждой конкретной ошибочной записи. Это можно отловить через свою процедуру обработки ошибок по ON ERROR DO ... Проверять каждый constraint перед INSERT хороший выход, но однако не панацея. БД живая и заказчик в любой момент может поменять ограничения. Однако все равно спасибо за ответы.
...
Рейтинг: 0 / 0
Connectivity error
    #34059503
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подавить ошибку нарушения целостности или ещё чего-нибудь, конечно можно, НО возникает вопрос - "А что делать дальше? При возникновении ошибки", ответ на этот вопрос приведет к решению, как программно разрулить ошибочную ситуацию.
Т.е. надо ли продолжать "закачку дальше" и какие данные "заливать" (например при одинаковом PK, те которые встретились первыми или те которые в середине ) или прервать, или пусть юзер решает или отключить констрейнты и залить всё, а потом будем разбираться итд.
...
Рейтинг: 0 / 0
Connectivity error
    #34059594
Спасибо всем. Сейчас нашел решение своей проблемы. Можно ведь использовать не REMOTE VIEWER а напрямую готовить и выполнять запрос к БД на SQL SERVER через функции SQLPREPARE и SQLEXEC. Тогда при нарушении констрейнта SQLEXEC возвращает -1, дальнейшая конвертация не останавливается а продолжается. Ошибка ловится не через Error Event, а напрямую извлекается из массива ошибки через функцию AERROR. Второй элемент формируемого массива ошибки как раз и содержит подробное текстовое описание ошибки в том числе и имя нарушенного ограничения. Его вырезаем и помещаем в текстовый файл протокола вместе с ключом ошибочной записи. Что по сути и нужно заказчику.
...
Рейтинг: 0 / 0
Connectivity error
    #34059706
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичок_ламер...при нарушении констрейнта SQLEXEC возвращает -1, дальнейшая конвертация не останавливается а продолжается....

Это почему такая дискриминация, почему запись с первым попавшимся ключом должна прилипнуть к данным, а не вторая ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Connectivity error
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]