Автор: X11
Дата сообщения: 05.10.2009 10:32
Господа, опять возвращаюсь к 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;