At 04:37 PM 11/7/2005, you wrote:
I am trying to modify a database record. The element of the record is derived from the corresponding structure, in which it is designated as "UInt16" data type. Now I try to use DmSet to write, and have a problem with "UInt8" data type being required for DmSet.

My code line reads as:

err = DmSet (p, OffsetOf(TransStructType, BasekVA),sizeof(Record->BasekVA), Record->BasekVA);


This does not cause a crash or a compiler complaint. It simply does not put the number on the screen that I want. I've been using StrAtoI and StrItoA to read and write to fields, and these return 32 bit integers. This hasn't presented any problem, until I try to write an 8 bit integer to a sixteen bit "chunk". The value that comes back when I write the value to the screen is not the one that I enter. The conversion process is clearly getting in the way.

Is there another API call to write to an integer in a record that permits one to write to a 16 bit integer?

DmSet is the same api as MemSet, but for database memory. To write an 16-bit integer, use DmWrite, taking the address of a Int16 variable that you've saved the value into, and passing the size of that variable in as well.


-- Ben Combee, Senior Software Engineer, Palm, Inc.
   "Combee on Palm OS" weblog: http://palmos.combee.net/
   Developer Forum Archives:   http://news.palmos.com/read/all_forums/


--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/

Reply via email to