home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a012 / 1.ddi / CHAP09.EXE / CHP0912.PRG < prev    next >
Encoding:
Text File  |  1991-06-01  |  1.2 KB  |  48 lines

  1. /*
  2.    Listing 9.12. Create databases based on contents of an array (Part A)
  3.    Author: Craig Yellick
  4.    Excerpted from "Clipper 5: A Developer's Guide"
  5.    Copyright (c) 1991 M&T Books
  6.                       501 Galveston Drive
  7.                       Redwood City, CA 94063-4728
  8.                       (415) 366-3600
  9. */
  10.  
  11. #include "dbfsytem.ch"
  12.  
  13. function SysCreate(sys_, which)
  14. /*
  15.    Given a system structure array and an optional
  16.    filename, create database(s).
  17. */
  18.  
  19. local n
  20.   if which <> nil
  21.     n := ascan(sys_, ;
  22.          { |d_| upper(d_[SYS_DBFNAME]) == upper(which)})
  23.     if n > 0
  24.       SysCreate1(sys_, n)
  25.     else
  26.       //  Error handler?
  27.     endif
  28.  
  29.   else
  30.     for n := 1 to len(sys_)
  31.       SysCreate1(sys_, n)
  32.     next n
  33.   endif
  34. return nil
  35.  
  36. static function SysCreate1(sys_, n)
  37. local dbstru_ := {}, f
  38.   for f := 1 to len(sys_[n, SYS_STRU])
  39.     aadd(dbstru_, {sys_[n, SYS_STRU, f, STRU_NAME],;
  40.                    sys_[n, SYS_STRU, f, STRU_TYPE],;
  41.                    sys_[n, SYS_STRU, f, STRU_LEN ],;
  42.                    sys_[n, SYS_STRU, f, STRU_DEC ]})
  43.   next f
  44.   dbcreate(sys_[n, SYS_DBFNAME], dbstru_)
  45. return nil
  46.  
  47. // end of file CHP0912.PRG
  48.