Changeset 106 for oup/rewrite/DataAccess


Ignore:
Timestamp:
Feb 21, 2007, 4:09:30 AM (18 years ago)
Author:
alloc
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • oup/rewrite/DataAccess/Access_OUP_ADB.pas

    r105 r106  
    1717
    1818    procedure UpdateListCache;
     19
     20    function GetLinksToFile(FileID: Integer): TLinks;
     21    function GetLinksFromFile(FileID: Integer): TLinks;
    1922
    2023    function GetFileInfo(FileID: Integer): TFileInfo; override;
     
    167170  FQuery.Close;
    168171end;
     172
     173
     174
     175function TAccess_OUP_ADB.GetLinksToFile(FileID: Integer): TLinks;
     176var
     177  i: Integer;
     178begin
     179  SetLength(Result.ByName, 0);
     180  FQuery.SQL.Text := 'SELECT src_link_offset, src_id FROM linkmap WHERE target_id = ' + IntToStr(FileID) + ' ORDER BY src_id ASC;';
     181  FQuery.Open;
     182  SetLength(Result.ByID, FQuery.RecordCount);
     183  if FQuery.RecordCount > 0 then
     184  begin
     185    i := 0;
     186    repeat
     187      Result.ByID[i].SrcOffset := FQuery.FieldByName('src_link_offset').AsInteger;
     188      Result.ByID[i].Destination := FQuery.FieldByName('src_id').AsInteger;
     189      Inc(i);
     190      FQuery.Next;
     191    until FQuery.EOF;
     192  end;
     193  FQuery.Close;
     194end;
     195
     196function TAccess_OUP_ADB.GetLinksFromFile(FileID: Integer): TLinks;
     197var
     198  i: Integer;
     199begin
     200  SetLength(Result.ByName, 0);
     201  FQuery.SQL.Text := 'SELECT src_link_offset, target_id FROM linkmap WHERE src_id = ' + IntToStr(FileID) + ' ORDER BY target_id ASC;';
     202  FQuery.Open;
     203  SetLength(Result.ByID, FQuery.RecordCount);
     204  if FQuery.RecordCount > 0 then
     205  begin
     206    i := 0;
     207    repeat
     208      Result.ByID[i].SrcOffset := FQuery.FieldByName('src_link_offset').AsInteger;
     209      Result.ByID[i].Destination := FQuery.FieldByName('target_id').AsInteger;
     210      Inc(i);
     211      FQuery.Next;
     212    until FQuery.EOF;
     213  end;
     214  FQuery.Close;
     215end;
     216
    169217
    170218
Note: See TracChangeset for help on using the changeset viewer.