I have not seen your code but in general the idea of a temporary table to update a permanent table is not the normal way to use SQL. When you start adding data to a table from the program it will not be written until you 'commit'. Therefore, appending or any changes to a table can be considered a temporary table until it is committed. In fact that is how SQLdb works - it creates a temporary table for you (sort of). A "begin" transaction is sent to database engine. To save the data just commit after validating or any changes, etc... So instead of creating a routine to transfer the data from the temporary table to the real table - just use the "Begin", "Rollback" and "commit" routines available from the SQL. SQLdb does most of the work for you. Send a 'SELECT' statement and a begin is also sent.
However, I see how it could be a nice way to collect data and then validate the data before committing. In fact the DBgrid can be used as you suggest. But the DBgrid does not need to be a temporary table but the real table. Regarding your question about the read only I have no idea. I haven't had it happen to me with out me setting it. John _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives