|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.02.2013, 17:23 | #1 |
Пользователь
Регистрация: 17.09.2009
Сообщений: 36
|
Delphi COM 1c 8.2 Обработка дисконнектов
Добрый день форумчане.
Пишу сервис в среде Borland Delphi 2006, который подключается к 1с по COM-соединению. Подключаюсь так. Код HTML:
con1c:=createOleObject('V82.COMConnector'); conn:=con1c.connect(ConnectionString ); Каждый день запланирован ребут 1с сервера. (Ну бывают и нештатные ситуации ) Как корректно обработать событие разрыва подключения сервиса с 1с сервером? Попробовал вызывать процедуру "проверки соединения": ====== Код HTML:
try User1c :=conn.ПараметрыСеанса.ТекущийПользователь.Код; except con1c:=Unassigned; conn:=Unassigned; end; дальше "Переподключение " Код HTML:
try begin if VarIsEmpty(conn) then begin con1c:=createOleObject('V82.COMConnector'); conn:=con1c.connect('Srvr='connectstring'); end; end; except on E:Exception do begin con1c:=Unassigned; conn:=Unassigned; Может уже есть какой-нибудь готовый компонент? Мобыть я напрасно пытаюсь изобрести велосипед ? |
24.02.2013, 18:07 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Не понятно. Хотя нет, 1c и Delphi
Код:
По теме: Поставьте MadExcept, подключите к проекту, пересоберите проект и пускайте в ход, при ошибке получите массу полезной информации о том, откуда ноги растут. |
25.02.2013, 08:33 | #3 |
Пользователь
Регистрация: 17.09.2009
Сообщений: 36
|
Если кому интересно, то bugreport во вложении.
Что то мне подсказывает , что просто не выгружаются вовремя 1сные модули . |
25.02.2013, 10:47 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Ошибка не у вас. Вы вызываете исключение в ПО, которое хотите прибить.
|
25.02.2013, 12:50 | #5 |
Пользователь
Регистрация: 17.09.2009
Сообщений: 36
|
Если я правильно понял, то вы имеете ввиду мой шедевр ?
Код:
|
25.02.2013, 13:36 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
я толком, не понимаю, что там происходит.
Но код просто не имеет смысла. Код:
Код:
Вам будет лучше спросить на форумах 1c, как правильно завершать сеанс пользователя(закрывать подключение к серверу) и запускать его снова. А потом уже это через API делать. Последний раз редактировалось Человек_Борща; 25.02.2013 в 13:40. |
25.02.2013, 13:51 | #7 |
Пользователь
Регистрация: 17.09.2009
Сообщений: 36
|
в случае дисконнекта, conn.ПараметрыСеанса.ТекущийПользов атель.Код;
возвращает исключние с сообщением к примеру " 21.02.2013 14:19:34: Сервер баз данных не обнаружен Microsoft OLE DB Provider for SQL Server: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен. HRESULT=80004005, SQLSrvr: SQLSTATE=08001, state=1, Severity=10, native=17, line=0, SrvrName=dbsrv\dbsrv 21.02.2013 14:20:29: Сервер баз данных не обнаружен " , которое в дальнейшем обрабатывается исключением . пойду тогда 1с негов пытать как всетаки у них обрабатывается событие при разрыве соедениения . PS: Спасибо за madExcept. Интересная вещь |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка строк в Delphi | Onill | Помощь студентам | 10 | 03.05.2012 11:46 |
Обработка Image в Delphi | LilliPut | Помощь студентам | 11 | 16.05.2011 18:00 |
Delphi обработка ошибок | world12_tk | Помощь студентам | 3 | 20.09.2009 14:58 |
обработка изображений в Delphi | Астер | Мультимедиа в Delphi | 0 | 26.04.2009 12:33 |
Обработка ошибок в Delphi 7 | Наташкин | БД в Delphi | 3 | 21.12.2007 22:07 |