The cursor you fetch of course will have a recno, but if you introduce some WHERE clause, RENCNOs wil differ, this is not a unique identifier of a record anymore. Use Primary Keys, id fields, guid fields, whater is unique and can be autogenerated. Likewise, it was not clear to me why I should need to issue a Table Update() command on a cursor? Indeed many of the entries in the Help files of VFP9 have titles like "UPDATE - SQL command" or "DELETE -SQL command".I'm a big evangelist for uniqueidentifiers, GUIDs, for the ease of creating them, also within VFP, not depending on a trip to the database and back. For sake of scalability, only fetch very small data tables as a whole, limit data via WHERE clause, only fetch what you really need for display, that also means, only fetch pagewise portions of data instead of what you're used to with USE or DE tables and the grid. Thanks, Olaf and Mike, for your kind replies In the matter of the use of .zhandle, I am indeed working inside a WITH . So I thought it might be possible to use these commands directly, rather than having to use SQLEXEC() as an interpreter every time.In My SQL like in T-SQL the function to create a GUID is NEWID(). It may be okay to fetch 1000 records, but if your data grows you don't want to fetch all data just because a user wants to edit a single customer name. When is one able to use the SQL versions of commands such as UPDATE and DELETE directly, rather than via this extra level of interpretation?Well, you have understood half of my explanation very well, the code I gave indeed overcomecomes the separation of the cursor and the table, all the properties set make the cursor updatable.The Easysoft software needed to recreate the following examples can be downloaded from the Easysoft web site. The complete program source for this section can be found in CSharp ODBCExample1The sample program did not contain provision for dealing with errors.Unfortunately in the real world, we need to handle unexpected situations.
Updating odbc comments