X11
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Господа, опять возвращаюсь к AppendRecord, если вы не против. Проблема в том, что записи в базу физически не попадают. Связка Fib 6.9.6, cxGrid x43, Firebird 2, D2007. У FibDataSet установлено свойство AutoCommit в True. Код: with dbgIdSpr.dataController do begin beginupdate; dbgSyncSPR.datacontroller.beginupdate; Screen.Cursor := crHourGlass; try ForEachRow(false, FillFromSpr); finally endupdate; dbgSyncSPR.datacontroller.endupdate; Screen.Cursor := crDefault; dxStatusBar1.Panels[1].Text := 'ОК'; Application.ProcessMessages; end;//try end;//with procedure TfmMlsOptions.FillFromSpr(ARowIndex: Integer; ARowInfo: TcxRowInfo); Var RecIndex: integer; begin with dbgIdSpr.DataController do begin if ARowInfo.Level = Groups.GroupingItemCount then begin with tSprs do try SQLs.SelectSQL.Text := 'select id, name from ' + Values[ARowInfo.RecordIndex, dbgIdSprNAME.Index]; Open; First; while not Eof do begin dbgSyncSpr.DataController.AppendRecord; RecIndex := dbgSyncSpr.DataController.RecordCount - 1; dbgSyncSpr.DataController.Values[RecIndex, dbgSyncSprID_SPR.Index] := Values[ARowInfo.RecordIndex, dbgIdSprID.Index]; dbgSyncSpr.DataController.Values[RecIndex, dbgSyncSprID_IN_KVX.Index] := FBN('ID').AsInteger; dbgSyncSpr.DataController.Values[RecIndex, dbgSyncSprVALUE_IN_KVX.Index] := FBN('name').AsString; dxStatusBar1.panels[0].Text := FBN('name').AsString; Application.ProcessMessages; next; end;//while finally Close; end;//try-finally end;//if end;//with end; | После цикла вижу записи в гриде. Закрыл/открыл окно. Записей нет. Если добавляю записи ручками (редактирую руками ячейки), то данные сохраняются. На что мне ещё обратить внимание? Что я забыл?
---------- /не мы такие, жизнь такая/ |
|