データベースへの接続を維持する Delphi プログラムがいくつかあります (一部の Oracle、一部の Firebird)。Windows がスリープ モードに入るときにプログラムが実行されていると、データベースへの接続が失われます。この状況を処理する最善の方法は何ですか? ネットワークがスリープ モードに入る前にイベントを受信して、状況をより適切に処理できるようにする方法はありますか?
2558 次
1 に答える
6
RRUZ について詳しく説明するには、次のようなものが必要です。
procedure WMPowerBroadcast(var AMessage: TMessage); message WM_POWERBROADCAST;
あなたの形で。次にWMPowerBroadcast
、次のようになります。
procedure TMyForm.WMPowerBroadcast(var AMessage: TMessage);
const
PBT_APMSUSPEND = 4;
PBT_APMRESUMESUSPEND = 7;
begin
case AMessage.WParam of
PBT_APMSUSPEND:
begin
// save your DB stuff. NOTE: IIRC you are pretty limited in the time
// you get to do this - 2 seconds ? may be the limit
end;
PBT_APMRESUMESUSPEND:
begin
// restore your DB connection
end;
else
// you're going to want to handle PBT_APMRESUMECRITICAL (XP and older systems) and PBT_APMRESUMEAUTOMATIC differently
// IIRC you did not get notification of the suspend in this case
end;
end;
于 2012-06-11T20:24:22.207 に答える