Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обновление таблицы по ODBC ...  [new]
shaaman
Member

Откуда:
Сообщений: 5
День добрый!
Есть внешний клиент который заносит строки по ODBC в табл. SQL Server 2000.
При первичном соединении он их просто вставляет, а затем апдейтит.
Но, если разорвать соединение, а потом заново законнектить, в этой таблице появляются лишние строки (он их заново создаёт)!
Вопрос: можно ли в скрипте на SQL-е отследить момент разрыва соединения с клиентом и транкейтнуть эту табл.?
Помогите люди советом...
14 дек 04, 16:36    [1180490]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
Alexander Popov
Member

Откуда:
Сообщений: 663
Может лучше сделать так что бы сначала вставка данных происходила во временную таблицу потом update этих данных и далее вставка в основную.
14 дек 04, 16:40    [1180507]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
послать на сервер запрос, который может не выполниться тока в случаи отсутствия коннекта (например, SELECT 1), переконнектиться и сделать необходимое.
14 дек 04, 16:41    [1180511]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Советую почитать про транзакции.
14 дек 04, 16:42    [1180514]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
shaaman
Member

Откуда:
Сообщений: 5
Проблема в том, что внешний клиен "чёрный ящик" и с ним ни чего не сделать...
Так то и пёс бы сним, но на этой табл. висит триггер который строки потом разбрасывает по вспомогательным таблицам.
И при появлении лишних строк во вспомогательных табл. появляются дубли :(
14 дек 04, 16:45    [1180535]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Проблема в том, что внешний клиен "чёрный ящик" и с ним ни чего не сделать...

и
автор
Вопрос: можно ли в скрипте на SQL-е отследить момент разрыва соединения с клиентом и транкейтнуть эту табл.?


Вот теперь понятно стало. И как вы себе это представляете - в скрипте?! Ведь скрипт выполнятеся на сервере, а если коннекта нет, то он и до сервера не дойдет и ошибку выдаст клиентский механизм, в Вашем случаи ODBC.
14 дек 04, 16:48    [1180549]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
shaaman
Member

Откуда:
Сообщений: 5
Я не очень хорошо знаком с ODBC, но мне казалось там есть флаг указывающий на то, что есть соединение...
В момент когда клиент разорвал соединение с табл., SQL наверное должен это отследить... (именно отключение, а не отсутствие данных).
14 дек 04, 16:54    [1180579]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
shaaman
Member

Откуда:
Сообщений: 5
Вообще то может быть я тут конкретно торможу...
А, как в принципе можно побороться с такой засадой?
14 дек 04, 16:56    [1180589]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы по ODBC ...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
SQL наверное должен это отследить...


Может он это отследить и откатить транзакции, если таковые имелись. Но и это он не всегда може сделать сразу. Но это Вам так же не поможет, ибо управление транзакциями у вас идет с клиента, а он у Вас - черный ящик.
14 дек 04, 17:01    [1180607]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить