home *** CD-ROM | disk | FTP | other *** search
- /*
- Listing 9.12. Create databases based on contents of an array (Part A)
- Author: Craig Yellick
- Excerpted from "Clipper 5: A Developer's Guide"
- Copyright (c) 1991 M&T Books
- 501 Galveston Drive
- Redwood City, CA 94063-4728
- (415) 366-3600
- */
-
- #include "dbfsytem.ch"
-
- function SysCreate(sys_, which)
- /*
- Given a system structure array and an optional
- filename, create database(s).
- */
-
- local n
- if which <> nil
- n := ascan(sys_, ;
- { |d_| upper(d_[SYS_DBFNAME]) == upper(which)})
- if n > 0
- SysCreate1(sys_, n)
- else
- // Error handler?
- endif
-
- else
- for n := 1 to len(sys_)
- SysCreate1(sys_, n)
- next n
- endif
- return nil
-
- static function SysCreate1(sys_, n)
- local dbstru_ := {}, f
- for f := 1 to len(sys_[n, SYS_STRU])
- aadd(dbstru_, {sys_[n, SYS_STRU, f, STRU_NAME],;
- sys_[n, SYS_STRU, f, STRU_TYPE],;
- sys_[n, SYS_STRU, f, STRU_LEN ],;
- sys_[n, SYS_STRU, f, STRU_DEC ]})
- next f
- dbcreate(sys_[n, SYS_DBFNAME], dbstru_)
- return nil
-
- // end of file CHP0912.PRG
-