parm diskfile="?", database="?", dataset="?" # Author: Paul H. Christidis phchristidis@west.raytheon.com # # This is an MPEX command file can be used to load back into # an IMAGE dataset the contents of a flat file. It is assumed # that the file was created with the save command of QUERY # from the same dataset. # setvar _db_bell chr(7) setvar _db_diskfile UPS("!diskfile") setvar _db_database UPS("!database") setvar _db_dataset UPS("!dataset" ) if _db_diskfile = "?" OR _db_database = "?" OR _db_dataset = "?" then echo !_db_bell echo Usage: ![finfo(hpfile,"fname")] Diskfile Database Dataset echo echo Diskfile - Name of flat file containing records to be loaded echo into the database. Usually this file would have been echo generated using the QUERY 'save' command. echo echo Database - Name of IMAGE database. It is assumed that the echo user of this command file is the database's creator or echo that the user has knowledge of the password that gives echo write/update access to the database. echo echo Dataset - Name of dataset, within the above database, into echo which the contents of the above disk file will be loaded. echo !_db_bell return endif # # Detrmine if we are within MPEX and invoke it if not. # setjcw insidempex=0 setvar _db_mpex "main.pub.vesoft" if insidempex = 0 then if finfo("!_db_mpex","exists") then run !_db_mpex; & info="xeq !hpfile '!_db_diskfile','!_db_database','!_db_dataset'" return else echo !_db_bell This command file requires 'MPEX' to execute... deletevar _db_@ escape 52 endif endif # echo (PHC) DISK2DB using MPEX 98.05.14 !hpdatef !hptimef echo setvar _db_err 0 if NOT FEXISTS(_db_diskfile) then echo !_db_bell **Unable to locate file: !_db_diskfile** setvar _db_err _db_err + 1 else if vefinfo(_db_diskfile).recsize > 255 then echo !_db_bell **Record size of !_db_diskfile is too large setvar _db_err _db_err + 1 endif endif if NOT FEXISTS(_db_database) then echo !_db_bell **Unable to locate database: !_db_database** setvar _db_err _db_err + 1 elseif vefinfo(_db_database).intcode <> -400 then echo !_db_bell **File (!_db_database) is NOT an IMAGE database... setvar _db_err _db_err + 1 else setvar _db_owner vefinfo(_db_database).owner = "!hpuser.!hpaccount" endif if _db_err <> 0 then return endif # if _db_owner then setvar _db_pass ";" else echo ** You are NOT the creator of the database ** !_db_bell input _db_pass;prompt="Enter DB's Password: " endif # setvar _db_cntr 0 setvar _db_dbid VEDBOPEN("!_db_database,'!_db_pass',1") echo 1. Opened database: ![VEFINFO(_db_database).FULLNAME] setvar _db_ffnum VEFOPEN("!_db_diskfile,old") echo 2. Opened disk file: ![VEFINFO(_db_diskfile).FULLNAME] echo 3. Starting to load records while VEFREADV("_db_ftext",_db_ffnum) do IF VEDBPUTL (_db_dbid,_db_dataset,"@;",_db_ftext) then setvar _db_cntr _db_cntr + 1 else echo !_db_bell Error adding records to dataset.. escape endif if _db_cntr mod 100 = 0 then echo !_db_cntr Records were processed.... endif endwhile echo !_db_cntr Records were added to the database !_db_bell echo 4. Closing database and disk file... if NOT VEDBCLOSE(_db_dbid,"",1) then echo !_db_bell *Error while closing the database endif calc VEFCLOSE(_db_ffnum) # #Clean Up # if BOUND(traceon) then showvar _db_@ else deletevar _db_@ endif