Andy is right about adding a field. Very bad idea. To be more specific, some processes in Macola perform a "schema validation check" prior to processing. What this does is look at tables to determine the number of columns and sometimes it checks for existence of certain fields, if this information does not match the hard coded values that Macola thinks exist then the process will fail. Not all tables are checked in every process so don't even think that you can see if you can slip one by with a little testing. Never do the following with a Macola database.
1. Add or Remove Columns from a table
2. Change the name of a column, table, or index
3. Change the datatype or length of a column
4. Add a unique index to a table (non-unique indexes to speed queries are fine)
5. Remove or modify existing Macola indexes.
6. Use filler fields to store data (Any time an update is performed to Macola these fields could be potentially dropped along with all data contained in the field.)
7. Setup any form of MS SQL replication that adds fields to a table.
8. Use SQL Triggers to before business logic validation that cancels transactions. (this is a method used to perform validation of data being entered in to a database and preventing the entry of data if certain conditions are not met. An example would be to create a SQL Trigger that prevents the creation or update of a customer record if user_def_fld_1 is not equal to "A", "B", or "C".)
Database changes that can be made by professional (someone who has a clue about SQL and database design):
1. Add new tables to the Macola databases
2. Create views that query existing Macola databases
3. Create stored procedures that select, insert, or modify data in to any table in the Macola database.
4. Create SQL Triggers that perform additional SQL tasks. These triggers should never throw an error and should never rollback an update to the Macola tables. This is one that should only be performed by experienced SQL developers.
I know this is a little off topic but I thought I should put it out there so that it is clear what type of changes can be made. If you are still in the Btrieve/Pervasive.SQL world all of the rules above apply except those that specifically mention SQL.
Scott Travis