Ok, I haven't done this in a while, but I think I have done this a few ways.
First, by "metadata" of the database, I assume you mean stored procedures, maybe table triggers, database comment field?
I'll also assume you are trying to run from within an .exe (so commands like COPY PROCEDURES TO... and APPEND PROCEDURES FROM ... will not be available)
So...
1) if you know the "data model" of the dbc, you can open it like a table - then look for the metadata items you want (the stored procedure code, trigger code, etc). Do a SCATTER MEMO NAME ... Then open the other DBC as a table and do an APPEND FROM NAME ... After everything is copied that way I think you will want to do a PACK DATABASE or maybe VALIDATE DATABASE on the backup. I seem to recall doing that.
2) after you've copied all the tables, copy the "database files" with "COPY FILE <orig> TO <backup>" - copy the dbc, dct, and dcx this way. Again a PACK or VALIDATE database may be needed afterwards. And of course, be careful with this, test it out, etc. But I definitely used this approach before.
3) if you are not worried about the tables being opened at the time of doing the backup, you could just do the "COPY FILE <orig> TO <backup>" - that command allows paths in the from/to. Also, I think it allows wildcards, so you could do a complete copy in 1 command. Of course, the downside is the assumption of files being closed.
-HTH, -Charlie
---------------------------------------------
On 2/27/2019 12:22 PM, mbsoftwaresolutions@mbsoftwaresolutions.com wrote: I can easily do something like this:
CREATE DATABASE C:\Backup\MyDBC.dbc OPEN DATABASE C:\Production\MyDBC.dbc liNumTables = adbobjects(laTables,'TABLE') for ii = 1 to liNumTables lcFile = forceext("C:\BACKUP" + laTables[ii],'dbf') use laTables[ii] copy to (lcFile) database C:\Backup\MyDBC.dbc with cdx use endfor
...and that would get me a copy of all of the tables with their indexes. Great. But what's the easiest way to get all of the DBC meta-data into that new Backup database copy? I can't USE the MyDBC.dbc and do a COPY TO as that only makes the result a DBF and FPT.
Trying to think about a good disaster recovery plan (besides using CleverFox from Rick Schummer and Frank Perez...which is probably the best option!) for automating backups at the client who just got that ransomware virus.
tia, --Mike