Here is attached debug output with {$DEFINE DSDebug}.
It seems, that exception is related to Append/Insert (it does not depend if dataset is empty before or not) followed by accesing OldValue

...
Setting current record to0
Post: Browse mode set
Active buffer requested. Returning:0
exception at 0045C732:
Access violation.
SetBufListSize: -1
  Freeing buffers :11
  SetBufListSize: Final FBufferCount=-1

L.

TFieldDef.Create : int_field(1)
TFieldDef.Create : str_field(2)
Creating fields
Count : 2
Def 0 : int_field(1)
Def 1 : str_field(2)
About to create fieldint_field
Creating field int_field
TFieldDef.CReateField : Trying to set dataset
TFieldDef.CReateField : Result Fieldno : 1 Self : 1
Setting dataset
About to create fieldstr_field
Creating field str_field
TFieldDef.CReateField : Trying to set dataset
TFieldDef.CReateField : Result Fieldno : 2 Self : 2
Setting dataset
Found field int_field
Calling internal open
Calling RecalcBufListSize
Recalculating buffer list size - check cursor
Recalculating buffer list size
Setting buffer list size
SetBufListSize: 10
   Reallocating memory :44
   Filling memory :48
   Filled memory :
   Assigning buffers :40
   Assigned buffers 0 :40
   SetBufListSize: Final FBufferCount=10
Getting next buffers
Getting next record(s), need :10
Getting next record. Internal RecordCount : 0
Result getting next record : TRUE
Getting next record. Internal RecordCount : 1
Result getting next record : FALSE
Result Getting next record(S), GOT :1
Getting previous record(s), need :10
GetPriorRecord: Getting previous record
Setting current record to0
Result getting prior record : FALSE
SetBufferCount: FActiveRecord=0 FCurrentRecord=-1 FBufferCount= 10 
FRecordCount=1
going to insert mode
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Done with append
Active buffer requested. Returning:0
Active buffer requested. Returning:0
1. Field.OnValidate: OldValue=O; Value=O; NewValue=O
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
2. Field.OnChange: OldValue=null; Value=O; NewValue=O
Post: checking required fields
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
3. BeforePost: OldValue=null; Value=O; NewValue=O
Trying to do
Trying : updatecursorpos
Setting current record to0
Trying to do it
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Active buffer requested. Returning:0
Post: Internalpost succeeded
Resync called
Getting next record(s), need :10
Getting next record. Internal RecordCount : 1
Result getting next record : TRUE
Getting next record. Internal RecordCount : 2
Result getting next record : FALSE
Result Getting next record(S), GOT :1
Getting previous record(s), need :10
GetPriorRecord: Getting previous record
Setting current record to0
Result getting prior record : FALSE
Setting current record to0
Post: Browse mode set
Active buffer requested. Returning:0
exception at 0045C732:
Access violation.
SetBufListSize: -1
   Freeing buffers :11
   SetBufListSize: Final FBufferCount=-1
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to