home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 2.ddi / EXAMPLES / CH15EX04.PRO < prev    next >
Encoding:
Text File  |  1990-03-26  |  2.7 KB  |  74 lines

  1. /*
  2.    Copyright (c) 1986, 90 by Prolog Development Center
  3. */
  4. constants
  5. % register.bin may be in the programs directory "..\\programs\\register.bin"   
  6.   filename = "register.bin"
  7. domains
  8.    db_selector = mydba
  9.    mydom = city(zipcode, cityname);
  10.            person(firstname, lastname, street, zipcode, code)
  11.    zipcode, cityname, firstname, lastname, street, code  =  string
  12.  
  13. predicates
  14.    listdba(db_selector)
  15.    bt_keys(db_selector, bt_selector, string, ref)
  16.    bt_keysloop(db_selector, bt_selector, string, ref)
  17.  
  18. clauses
  19.    listdba(Db_selector) :-
  20.       write("\n********************************************"),
  21.       write("\n           DATABASE LISTING"),
  22.       write("\n********************************************"),
  23.       db_statistics(Db_selector, NoOfTerms, MemSize, DbaSize, FreeSize),
  24.       write("\n\nTotal number of records in the database: ", NoOfTerms),
  25.       write("\nNumber of bytes used in main memory: ", MemSize),
  26.       write("\nNumber of bytes used by the database: ", DbaSize),
  27.       write("\nNumber of bytes free on disk: ", FreeSize),
  28.       fail.
  29.  
  30.    listdba(Db_selector) :-
  31.       db_chains(Db_selector, Chain),
  32.       write("\n\n\n\n******* Chain LISTING *************"),
  33.       write("\n\nName=", Chain),
  34.       write("\n\nCONTENT OF: ", Chain),
  35.       write("\n------------------------------\n"),
  36.       chain_terms(Db_selector, Chain, mydom, Term, Ref),
  37.       write("\n", Ref, ": ", Term),
  38.       fail.
  39.  
  40.    listdba(Db_selector) :-
  41.       db_btrees(Db_selector, Btree),             /* Returns each B+ tree name */
  42.       bt_open(Db_selector, Btree, Bt_selector),
  43.       bt_statistics(Db_selector, Bt_selector, NoOfKeys,
  44.                     NoOfPages, Dept, KeyLen, Order, PageSize),
  45.       write("\n\n\n******** INDEX LISTING **************"),
  46.       write("\n\nName=     ", Btree),
  47.       write("\nNoOfKeys= ", NoOfKeys),
  48.       write("\nNoOfPages=", NoOfPages),
  49.       write("\nDept=     ", Dept),
  50.       write("\nOrder=    ", Order),
  51.       write("\nKeyLen=   ", KeyLen),
  52.       write("\nPageSize= ", PageSize), nl,
  53.       write("\nCONTENT OF: ", Btree),
  54.       write("\n-----------------------------\n"),
  55.       bt_keys(Db_selector, Bt_selector, Key, Ref),
  56.       write("\n", Key, " - ", Ref),
  57.       fail.
  58.    listdba(_).
  59.  
  60.    bt_keys(Db_selector, Bt_selector, Key, Ref):-
  61.       key_first(Db_selector, Bt_selector, _),
  62.       bt_keysloop(Db_selector, Bt_selector, Key, Ref).
  63.  
  64.    bt_keysloop(Db_selector, Bt_selector, Key, Ref):-
  65.       key_current(Db_selector, Bt_selector, Key, Ref).
  66.  
  67.    bt_keysloop(Db_selector, Bt_selector, Key, Ref):-
  68.       key_next(Db_selector, Bt_selector, _),
  69.       bt_keysloop(Db_selector, Bt_selector, Key, Ref).
  70.       
  71. goal
  72.    db_open(mydba, filename , in_file),
  73.    listdba(mydba).
  74.