update about macros and use CursorWithRec for cursor object