03. april 2008 - 03:17Der er
4 kommentarer og 1 løsning
Er der forbindelse til fil
Hola
Jeg har min databasefil liggende på en anden maskine i et lan. Mister mit program forbinelsen (database-maskinen mister lan-forbindelse) så hænger programmet. Hvordan kan jeg undgå det?
Jeg har prøvet med
if Database.connected then //den er stadig registreret som connected, så det duer ikke.
prøvede en meget længere smøre:
CONST INTERNET_CONNECTION_LAN = 2;
type TfrmMain = class(TForm) //en masse private function IsConnectedToNetwork() : boolean; public { Public declarations } end;
function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall; external 'WININET.DLL';
function TfrmMain.IsConnectedToNetwork() : boolean; var dwConnectionTypes: Integer; begin try dwConnectionTypes := INTERNET_CONNECTION_LAN; if InternetGetConnectedState(@dwConnectionTypes,0) then Result := true else Result := false; except Result := false; end; end;
if IsConnectedToNetwork then //og det er jeg for min computer er stadig på LAN'et.
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
De fleste databasekomponenter har en OnBeforeDisconnect (eller AfterDisconnect) event man måske kan bruge. Kommer man der før man selv vil det kan den måske håndteres.
... men ellers vil jeg tillade mig at kopiere ovenstående IsConnected løsning. Den kan sikkert bruges.
function TfrmMain.IsConnectedToNetwork() : boolean; var dwConnectionTypes: Integer; begin try dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN; //etc... if InternetGetConnectedState(@dwConnectionTypes,0) then Result := true else Result := false; except Result := false; end; end;
Jeg har ikke testet om modem gælder adsl eller om der en fastnet type.
Men tak for hjælpen, smid et svar hvis du vil have pointene.
Tak a_nor, IcmpApi virker desværre ikke (som han også selv skriver på sin side) og jeg ville egentlig ikke bruge penge på en løsning, så vigtigt er det heller ikke. Men ellers en meget spændende side (dart).
Undskyld ulejligheden, men jeg holder mig til en mere simpel løsning: if FileExists(RegBaseInfo.gsDBHost) then begin //muuh end else raise exception.Create('Min Fejlbesked');
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.