Poslední příspěvky

Stran: 1 [2] 3 4 ... 10
11
Obecné / Re:TObjectList<T>.Clear - AV
« Poslední příspěvek od Stanislav Hruška kdy 21-04-2017, 21:49:52 »
Citace
x:= TList.create místo x:=TList<record>.Create.
Na to si dávam pozor. V tom to nebolo. Spôsobovala to táto procedúra
Kód: Delphi [Vybrat]
  1. procedure TConsumption.MoveDataAndGetIdx;
  2. var
  3.   I: Integer;
  4.   FIdx: Integer;
  5. begin
  6.   FIdx := - 1;
  7.  
  8.   for I := 0 to FlstConsumptionData.Count - 1 do
  9.   begin
  10.     if frmConsumption.jstdtpckrDateReading.Date < FlstConsumptionData[I].Reading then  
  11.     begin
  12.       FIdx := I;
  13.       Break;
  14.     end;
  15.   end;
  16.  
  17.   if (FIdx = - 1) then
  18.   begin
  19.     if FHotDB.DesiredDtSt = dsInsert then
  20.       FIdx := FlstConsumptionData.Count
  21.     else
  22.       Exit;  // Žiadna zmena poradia ani vloženie záznamu.
  23.   end ;
  24.  
  25.   if FHotDB.DesiredDtSt = dsEdit then
  26.   begin
  27.     if FOldIdx <> (FIdx -1) then
  28.       FlstConsumptionData.Move(FOldIdx, FIdx);
  29.   end
  30.   else
  31.   if FHotDB.DesiredDtSt = dsInsert then
  32.     FlstConsumptionData.Insert(FIdx, FNewData);
  33.  
  34.   FOldIdx := -1;
  35. end;
  36.  
Ja v nej problém nevidím.
12
Obecné / Re:TObjectList<T>.Clear - AV
« Poslední příspěvek od bohdan kdy 21-04-2017, 20:32:39 »
Nepíšeš jak ten objekt zakládáš. Jednou mi taky nechtěl fungovat TList<record> a bylo to v tom, ze jsem zakládal object jako
x:= TList.create místo x:=TList<record>.Create.

Pokud tedy zakládáš objekt jako
FlstConsumptionData := TObjectList.create tak to by mohl být ten problém.

Mělo by být
FlstConsumptionData := TObjectList<TConsumptionData>.create



13
Firebird a Interbase / Re:EMS script - Transakcie
« Poslední příspěvek od pf1957 kdy 21-04-2017, 19:07:34 »
Nič iné nemusím nastaviť. Tu sa to takto nedá? Len s pomocou "Query.Transaction" ?
V podstate ne, protoze kdyz se podivas do reference, tak zjistis, ze SP apod. se vykonavaji v kontextu bezici transakce. Ta je bud default (pri autocommit rezimu) nebo explicitne nastartovana a to SET TRANSACTION je jen pro pristup k default transakci a ne pro zahajovani transakci. na urovni DSQL jsou jen COMMIT/ROLLBACK ev. IN AUTONOMOUS TRANSACTION DO ...

Jinak pokud chces neco vazne delat s FB, tak bych rek, ze ti nezbyde nic jineho, nez si koupit The Firebird Book od Helen Borie, protoze s dokumentaci, ktera se volne vali po webu se moc daleko nedostanes.

Princip je stejny: co thread to vlastni connection na DB, v jeho kontextu vytvoren+zahajena transakce, ta predana jako parametr Query a cela DB oeprace zapouzdrena do try-catch/commit-rollback. Ovsem na strane klienta.
14
Obecné / Re:tFileStream - podivne chovani
« Poslední příspěvek od raul kdy 21-04-2017, 18:43:31 »
Tak otevreni souboru v hlavnim vlakne a predani streamu do zpracujiciho vlakna funguje. Je to kazdopadne velmi zvlastni chovani.
15
Firebird a Interbase / Re:EMS script - Transakcie
« Poslední příspěvek od berlusco1974@azet.sk kdy 21-04-2017, 15:09:33 »
Už aj ja nato čakám, aby sa niekto k tomu ešte vyjadril ... :-(
16
Firebird a Interbase / Re:EMS script - Transakcie
« Poslední příspěvek od Stanislav Hruška kdy 21-04-2017, 13:25:20 »
Ukážky boli trocha iné. Podľa mňa je najlepšie zmeniť taktiku/spôsob a nešpekulovať. To raise, za pomoci FireDAC, radšej nechám na klientovi.
Nech sa k tomu vyjadria skúsení. Ja končím. Už nemám čo napísať.
17
Firebird a Interbase / Re:EMS script - Transakcie
« Poslední příspěvek od berlusco1974@azet.sk kdy 21-04-2017, 13:21:06 »
Buď sa mi uloží Master+Detail, alebo NIČ. Vráti ma to do pôvodného formulára.

BEGIN TRANSACTION;
TRY
  INSERT INTO cis_evi  (Str,StrN)  VALUES (:Str,:StrN);
  INSERT INTO cis_poh (Str,StrN,X)  VALUES (:Str,:StrN,:X);
  COMMIT WORK;
CATCH ALL
  ROLLBACK WORK;
  RAISE;
END;
18
Obecné / Re:TObjectList<T>.Clear - AV
« Poslední příspěvek od Stanislav Hruška kdy 21-04-2017, 13:19:40 »
Tak nič. Mal som jednu funkciu, kde som si prehadzoval poradie prvkov. Tú som nahradil pomocou Sort a problém zmizol.
19
Obecné / TObjectList<T>.Clear - AV
« Poslední příspěvek od Stanislav Hruška kdy 21-04-2017, 12:55:45 »

Kód: Delphi [Vybrat]
  1.   FlstConsumptionData: TObjectList<TConsumptionData>;
Príkaz
Kód: Delphi [Vybrat]
  1.   FlstConsumptionData.Clear;
  2.  
mi len po pár opakovaniach padne na AV. Hneď pri Count := 0; (viď prílohu). Netuším prečo. Sú tam dve naplnené položky.

Access violation at address 004097BA in module 'JasotSVB.exe'. Read of address 00000002
20
Firebird a Interbase / Re:EMS script - Transakcie
« Poslední příspěvek od Stanislav Hruška kdy 21-04-2017, 12:39:33 »
Citace
Dokonca málokedy používam aj Table. Ani teraz neplánujem.
Tak TFDTable vždy používam na prepojenie s mojimi komponentami, ktoré zobrazujú požadované údaje.
Stran: 1 [2] 3 4 ... 10