MAV & Hibernate

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

MAV & Hibernate

Сообщение Admin »

Можно ли в MAV как то после Гибернации восстановить подключение? А то проги все валятся после сна.

Спасибо
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Re: MAV & Hibernate

Сообщение Andrew Listiev »

Ты о каком Hibernate говоришь? :shock:
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: MAV & Hibernate

Сообщение Admin »

Компьютер с ОС Windows можно не выключать а переключать в режимы разные типа ожидания, когда винты останавливаются и т.д.
Так же есть режим сна, когда память сбрасывается на винт и комп мухой отрубается. После включения все программы находятся в памяти как будто ты не выключался.
Я думаю все понятно? Так вот после просыпания из этого режима соединение с SQL сервером разорвано.
Как бы его незаметно восстановить...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Re: MAV & Hibernate

Сообщение Andrew Listiev »

Ах про этот, я уж было про http://www.hibernate.org/ подумал :D
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: MAV & Hibernate

Сообщение Admin »

Апнем тему.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: MAV & Hibernate

Сообщение Andrew™ »

проверяй регулярно что то типа: (главное, чтобы не ресурсоёмкий запрос был)

IF MAVLOAD('select getdate()',datetimefield)
MAVDISCONNECT
If MAVCOMEMECT(ConnectName,ConnectString)
MAVSHOWERROR
END
END
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: MAV & Hibernate

Сообщение Admin »

Andrew™ писал(а):проверяй регулярно что то типа: (главное, чтобы не ресурсоёмкий запрос был)

IF MAVLOAD('select getdate()',datetimefield)
MAVDISCONNECT
If MAVCOMEMECT(ConnectName,ConnectString)
MAVSHOWERROR
END
END
Понятно... найти бы событие которое прогам разбегается при восстановлении винды из гибернейта еще...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Re: MAV & Hibernate

Сообщение Andrew Listiev »

Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: MAV & Hibernate

Сообщение Admin »

Всем спасибо. Все работает как доктор прописал...

Код: Выделить всё

                    PROGRAM
                    INCLUDE('equates.clw'),ONCE
                    INCLUDE('errors.clw'),ONCE
                    INCLUDE('keycodes.clw'),ONCE
                    INCLUDE('mav.inc'),ONCE
                    MAP
                      MODULE('MAV SQL')
                        INCLUDE('mavsql.inc'),ONCE
                        INCLUDE('mavfunc.inc'),ONCE
                      END
                      MODULE('Windows API')
                        GetWindowLong(UNSIGNED, SIGNED), LONG, PASCAL, NAME('GetWindowLongA')
                        SetWindowLong(UNSIGNED, SIGNED, LONG), LONG, PASCAL, NAME('SetWindowLongA')
                        CallWindowProc(ULONG,UNSIGNED,UNSIGNED,UNSIGNED,LONG),PASCAL,LONG,NAME('CallWindowProcA')
                      END
                      MAVCallBack(UNSIGNED,UNSIGNED,UNSIGNED,LONG),LONG,PASCAL
                      ConnectProc
                    END

DbManager           MAVConnectManager,NAME('MAV$DbManager')
DbFiles             MAVFiles,NAME('MAV$DbFiles')

ConnectString       CSTRING(200)
Result              STRING(200)

DataQueue           QUEUE
GoodsName             STRING(50)
                    END
PrevCallBack        LONG

GWL_WNDPROC         EQUATE(-4)
WM_POWERBROADCAST   EQUATE(0218h)
PBT_APMRESUMESUSPEND EQUATE(7)

Window WINDOW('MAV Resume'),AT(,,287,176),FONT('Tahoma',8,,FONT:regular,CHARSET:CYRILLIC),CENTER,GRAY, |
         RESIZE
       LIST,AT(7,7,274,143),USE(?List1),VSCROLL,FORMAT('20L(2)|M~GoodsName~@S255@'),FROM(DataQueue)
       BUTTON('Reconnect'),AT(6,156,45,14),USE(?ButtonReconnect)
       BUTTON('Clear'),AT(54,156,45,14),USE(?ButtonClear)
     END

  CODE
  OPEN(Window)
  PrevCallBack = SetWindowLong(Window{PROP:Handle}, GWL_WNDPROC, ADDRESS(MAVCallBack))
  ConnectProc
  ACCEPT
    CASE ACCEPTED()
    OF ?ButtonReconnect
      ConnectProc
    OF ?ButtonClear
      FREE(DataQueue)
    END
  END
  CLOSE(Window)

ConnectProc               PROCEDURE
  CODE
  MAVDISCONNECT('MSSQL')
  ConnectString = 'DRIVER={{SQL Server};SERVER=XXX;DATABASE=YYY;UID=ZZZ;PWD=PPP;App=AAA'
  IF MAVCONNECT('MSSQL', ConnectString)
    MAVSHOWERROR
    RETURN
  END
  FREE(DataQueue)
  IF MAVLOAD('SELECT TOP 100 G.GoodsName FROM Goods G', DataQueue)
    MAVSHOWERROR
    RETURN
  END

MAVCallBack               PROCEDURE(LOC:hWnd, LOC:usMsg, LOC:WParam, LOC:IParam)
  CODE
  IF LOC:usMsg = WM_POWERBROADCAST
    IF LOC:WParam = PBT_APMRESUMESUSPEND
      ConnectProc
    END
  END
  RETURN CallWindowProc(PrevCallBack, LOC:hWnd, LOC:usMsg, LOC:WParam, LOC:IParam)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить