Loading a Record

Philip Mötteli philip.moetteli at econophone.ch
Sun Feb 5 16:13:33 CST 2006


Hi,


Am 03.02.2006 um 11:15 schrieb Ruslan Zasukhin:
> On 2/3/06 11:19 AM, "Philip Mötteli"  
> <philip.moetteli at econophone.ch> wrote:
>
> * and in found table it set CURRENT record to be RecID from OID.
>
>        pTable->put_RecID( recid );
>
> So
>       I_Table_Ptr pTable = pdb->GoToRecord( OID );
>
>       // pTable already have load required record
>       // so you can read values:
>
>     for( I ){
>       pTable->get_Field(i)->get_Value()->get_String()
>     }

>
>> But, after having pointed something in the I_Table, I need to
>> actually load it to some local cache. How would I do that?
>
> No. you do not load anything manually!
>
> After put_RecID( 10 ) Valentina already have load this record into  
> fields.
> You can just read values of fields.

Great!
When is the memory occupied by the values of those fields released or  
changed (overwritten)? How long can I keep a pointer to those memory  
blocks given to me by "I_Value.begin()" and be sure, that the memory  
is accessible and contains the right value? Should I copy them  
immediately to be sure to keep the right value?
As I understand, if the VSDKC++ does not overwrite this part of the  
memory (e. g. with the next "I_Table.put_RecID()") and automatic  
garbage collection is used, these memory blocks should be valid and  
contain the right values, as long as I keep a pointer to them?


Thanks
Phil



More information about the Valentina mailing list