In looking at the SYSCOLUMNS table, I've found that not all tables have entries for their columns. Why is this? Is there a way to automatically update SYSCOLUMNS to include info about all tables in my db?
That is really strange. Texis has never forgotten to add things to the SYStem tables before. The only thing I can think of that would cause this is some kind of odd permissions issue with respect to tsql or vortex. Make sure that all the programs using the DB are setuid to the correct user.
Try: "select * from SYSCOLUMNS order by TBNAME"
and: "select * from SYSTABLES".
and "select * from SYSINDEX"
See if the corruption has extended beyond just SYSCOLUMNS. I would be very leary of the status of this database at this point.
If they are really gone from SYSCOLUMNS then something very odd happened when the tables were created. The entries can be restored with with the addtable command, but you'll probably have to recreate indexes.
Run kdbfchk on SYSCOLUMNS to make sure it's not corrupt.
To use addtable, you need to rename bookorder.tbl to something else. Then drop table bookorder. Then rename bookorder.tbl back to it's real name. Then addtable bookorder.tbl . Then rebuild all indices on bookorder (they are automatically dropped when you drop the table).