Thanks for the reply. So do you know why I'd get a "No key columns are specified for the update table < tablename >. Use the KeyFieldList property of the cursor" error? I'm using that via the CURSORSETPROP method and the CA's KeyFieldList property and I still get that error (at one point in the thread, I indicated I'd had success getting an update to occur, but I think I accidentally updated the free table directly - the structures were the same at that point and I guess I didn't notice I was browsing the free table).
>Hi
>
>I use the CA with free tables all the time. I just open the table using the "USE" command and then use the "CursorAttach" method. The reason I do this is to avoid having two copies of the table open because the normal method for a cursor adapter is to open the table and then retrieve all the data specified in your "SelectCMD" into a cursor. I did not want to waste the time duplicating the data so I just open the table myself and attached it to the cursorAdapter.
>
>You may wonder why I did not use free tables directly and forget about cursoradpters. The reason was that I wanted to build an n-tier system so it could be easily changed to a database server backend later if needed. The second reason is that I create my cursoradpater classes automatically from my data dictionary. The classes then contains all the field default values and code I want to run when new records are created and this can be adjusted on site by simply changing the values in the data dictionary and regenerating the cursoradpaters. The third reason was that I wanted to experiment with free tables on a web server that could be sent to the local workstation and opened by the "cursoradpater" creating a kind of poor man's database server.
>
>Having experimented with all this I now develop and deploy applications for customers on my servers which they access using Terminal Services and Remote Desktop. So I really do not need cursoradpaters now because the data is always local but it did force me to develop a nice clean n-tiear architecture which works well in this scenario.
>
>Regards,
>Simon White