| 1 | 
   | 
 unit ConnectionManager; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 2 | 
   | 
 interface | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 3 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 | 4 | 
 < | 
 uses TypeDefs, DataAccess, Access_OniArchive, Access_OUP_ADB; | 
 
 
 
 
 
 
 
 
 
 | 4 | 
 > | 
 uses TypeDefs, DataAccess, Access_OniArchive, Access_OUP_ADB, Access_OniSplitArchive; | 
 
 
 
 
 
 
 
 
 
 
 
 | 5 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 6 | 
   | 
 type | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 7 | 
   | 
   TConnections = array of TDataAccess; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 34 | 
   | 
     function CloseConnectionByIndex(Index: Integer; var Msg: TStatusMessages): Boolean; overload; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 35 | 
   | 
     function CloseConnection(ID: Integer; var Msg: TStatusMessages): Boolean; overload; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 | 
   | 
     function CloseConnection(FileName: String; var Msg: TStatusMessages): Boolean; overload; | 
 
 
 
 
 
 
 
 
 | 37 | 
 + | 
     function FileOpened(FileName: String): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 | 
   | 
   published | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 154 | 
   | 
     backend := DB_ADB | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 155 | 
   | 
   else if ext = '.DAT' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 156 | 
   | 
     backend := DB_ONI | 
 
 
 
 
 
 
 
 
 | 157 | 
 + | 
   else if ext = '.ONI' then | 
 
 
 
 
 
 
 
 
 | 158 | 
 + | 
     backend := DB_ONISPLIT | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 159 | 
   | 
   else | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 160 | 
   | 
   begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 161 | 
   | 
     Msg := SM_UnknownExtension; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 169 | 
   | 
       FConnections[i] := TAccess_OniArchive.Create(FileName, FLastID + 1, CreateMsg); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 170 | 
   | 
     DB_ADB: | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 171 | 
   | 
       FConnections[i] := TAccess_OUP_ADB.Create(FileName, FLastID + 1, CreateMsg); | 
 
 
 
 
 
 
 
 
 | 172 | 
 + | 
     DB_ONISPLIT: | 
 
 
 
 
 
 
 
 
 | 173 | 
 + | 
       FConnections[i] := TAccess_OniSplitArchive.Create(FileName, FLastID + 1, CreateMsg); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 174 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 175 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 176 | 
   | 
   if CreateMsg = SM_OK then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 182 | 
   | 
   else | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 183 | 
   | 
   begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 184 | 
   | 
     FConnections[i].Close; | 
 
 
 
 
 
 
 
 
 
 | 180 | 
 – | 
     FConnections[i].Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 185 | 
   | 
     FConnections[i] := nil; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 186 | 
   | 
     SetLength(FConnections, Length(FConnections) - 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 187 | 
   | 
     Msg := CreateMsg; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 264 | 
   | 
 end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 265 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 266 | 
   | 
  | 
 
 
 
 
 
 
 
 
 | 267 | 
 + | 
 function TConnectionManager.FileOpened(FileName: String): Integer; | 
 
 
 
 
 
 
 
 
 | 268 | 
 + | 
 var | 
 
 
 
 
 
 
 
 
 | 269 | 
 + | 
   i: Integer; | 
 
 
 
 
 
 
 
 
 | 270 | 
 + | 
 begin | 
 
 
 
 
 
 
 
 
 | 271 | 
 + | 
   Result := -1; | 
 
 
 
 
 
 
 
 
 | 272 | 
 + | 
   if Length(FConnections) > 0 then | 
 
 
 
 
 
 
 
 
 | 273 | 
 + | 
     for i := 0 to High(FConnections) do | 
 
 
 
 
 
 
 
 
 | 274 | 
 + | 
       if FConnections[i].FileName = FileName then | 
 
 
 
 
 
 
 
 
 | 275 | 
 + | 
       begin | 
 
 
 
 
 
 
 
 
 | 276 | 
 + | 
         Result := FConnections[i].ConnectionID; | 
 
 
 
 
 
 
 
 
 | 277 | 
 + | 
         Exit; | 
 
 
 
 
 
 
 
 
 | 278 | 
 + | 
       end; | 
 
 
 
 
 
 
 
 
 | 279 | 
 + | 
 end; | 
 
 
 
 
 
 
 
 
 | 280 | 
 + | 
  | 
 
 
 
 
 
 
 
 
 | 281 | 
 + | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 282 | 
   | 
 initialization | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 283 | 
   | 
   ConManager := TConnectionManager.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 284 | 
   | 
 finalization |