|
midas프로그램에서 하나의 레코드에 두명이 수정을 했을경우
2번째 수정을 한 사람에서 원래의 값, 다른사람이 수정한 값, 자신이 수정한 값을
보여주어 수정을 선택적으로 하려고 합니다.
그런데 다른사람이 수정한 값은 NULL로만 나오는데
왜 그런지 모르겠습니다.
void __fastcall TEmployeeForm::EmployeesReconcileError(
TClientDataSet *DataSet, EReconcileError *E, TUpdateKind UpdateKind,
TReconcileAction &Action)
{
Action = HandleReconcileError(Owner, DataSet, UpdateKind, E);
}
void __fastcall TReconcileErrorForm::InitDataFields() {
int i;
bool HasCurValues;
TFieldData *FD;
TField *ds;
HasCurValues = false;
for(i = 0; i < FDataSet->FieldCount; i++) {
ds = FDataSet->Fields->Fields[i];
if (ds->FieldKind != fkData)
continue;
FD = new TFieldData;
try {
FD->Field = ds;
FD->Edited = false;
if (FUpdateKind != ukDelete)
FD->NewValue = VarToAnsiStr(ds->NewValue, ds->DataType);
HasCurValues = !VarIsEmpty(ds->CurValue);
FD->CurValue = VarToAnsiStr(ds->CurValue, ds->DataType); //이부분의 값은 계속 NULL로만
if (FUpdateKind != ukInsert)
FD->OldValue = VarToAnsiStr(ds->OldValue, ds->DataType);
FDataFields->Add(FD);
} catch (Exception &e) {
delete FD;
throw;
}
}
InitUpdateData (HasCurValues);
}
ds->CurValue가 다른사람이 수정한 값으로 채워져야 할것 같은데 null로만 데이타값이
나오네요...
아니면 맨 나중에 입력한 사람의 값을 수정되도록 하려면 어떻게 해야 하나요
|