Forum Delphi.cz

Delphi => FireDAC => Téma založeno: Stanislav Hruška 30-11-2019, 22:21:15

Název: attempted update during read-only transaction
Přispěvatel: Stanislav Hruška 30-11-2019, 22:21:15

At block line: 11, col: 1'.
Bežne používaný kód mi odrazu vypisuje hore uvedený oznam. Pritom to nie je pravda. Viď test
Kód: [Vybrat]
  if not AQuery.UpdateTransaction.Active then
    AQuery.UpdateTransaction.StartTransaction;
if AQuery.UpdateTransaction.Options.ReadOnly then
ShowMessage('ReadOnly');
  try
    AQuery.Execute(AQuery.Params.ArraySize, 0);
Nemám nič spustené čo by pracovalo s DB (FB). Netuším kde môže byť zrada.
Název: Re:attempted update during read-only transaction
Přispěvatel: Stanislav Hruška 01-12-2019, 10:11:34

Tak som sa poustil do pokusov.
Vyhodil som Transaction/TransactionUpdate z Connection. Prestalo to vyhadzovať danú chybu. Ale viď poznámky dole.
Kód: [Vybrat]
procedure TFDFunction.QryExecute(const AQuery: TFDQuery; ASQLType: TExecuteSQLType; ACommit: Boolean);
begin
  if not AQuery.UpdateTransaction.Active then
    AQuery.UpdateTransaction.StartTransaction;
  try
    ShowMessage(IntToStr(AQuery.UpdateTransaction.DataSetCount));  //  je = 0 To ma prekvapilo. Očakával som 1.
    AQuery.Execute(AQuery.Params.ArraySize, 0);
    ShowMessage(IntToStr(AQuery.RowsAffected));  // = 7
    if ACommit then
    begin
      AQuery.UpdateTransaction.Commit;
      ShowMessage(IntToStr(AQuery.RowsAffected));  // = 7
    end;
V DB nie je vykonaná žiadna zmena. Pre istotu som znovu vytvoril nevizuálne komponenty FDConnection a FDTransaction-Update.
Název: Re:attempted update during read-only transaction
Přispěvatel: Stanislav Hruška 01-12-2019, 11:01:01
Po tej úprave Connection to ide to dobre. Len som kontroloval údaj, ktorý sa zhodou okolností nemenil :'( :'( :'(