CLEAR conn=SQLCONNECT("LocalServer") ?conn TEXT TO cSQL NOSHOW CREATE TABLE #ContactsLU ( ID Int, ROOTID Int, CONTACTID Int, PARENTID Int, TYPE Char(2), NAME Char(40) ) ENDTEXT ?SQLEXEC(conn,cSQL) LOCAL oCA as CursorAdapter oCA = CREATEOBJECT("CATestInsert") oCA.Alias="ContactsLU" oCA.SelectCmd="Select * from #ContactsLU" oCA.UpdatableFieldList = "ID, ROOTID, CONTACTID, PARENTID, TYPE, NAME" oCA.UpdateNameList="ID #ContactsLU.ID, ROOTID #ContactsLU.ROOTID,"+; "CONTACTID #ContactsLU.CONTACTID, PARENTID #ContactsLU.PARENTID,"+; "TYPE #ContactsLU.TYPE, NAME #ContactsLU.NAME" oCA.Tables="#ContactsLU" oCA.DataSourceType="ODBC" oCA.DataSource=conn IF !oCA.CursorFill() AERROR(aerrs) DISPLAY MEMORY LIKE aerrs ENDIF SELECT ContactsLU INSERT INTO ContactsLU (RootId,ParentId,Type,Name) VALUES (234,243,"CN","Test2") lx=TABLEUPDATE() ?lx SQLDISCONNECT(conn) DEFINE CLASS CATestInsert AS CursorAdapter PROCEDURE BeforeInsert LPARAMETERS cFldState, lForce, cInsertCmd ? ? PROGRAM() ? "cInsertCmd=",cInsertCmd ENDPROC ENDDEFINEThanks,