Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Obecné / Re:migrace ze zeosLib na myDAC, dotaz
« Poslední příspěvek od Delfin kdy Dnes v 19:08:19 »
mam celou databasi v utf8_czech_ci

To neni moje chyba :)
2
Obecné / Re:migrace ze zeosLib na myDAC, dotaz
« Poslední příspěvek od thcom kdy Dnes v 18:30:18 »
mam celou databasi v utf8_czech_ci

3
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Delfin kdy Dnes v 08:04:57 »
Len dopĺňam, že transakcia sa môže spustiť len jediný raz. Na to som zabudol, a dalo mi to poriadne zabrať.

Ano. Transakce je unikatni instance objektu ohranicujici davku prikazu v DBMS. A jako takova muze byt spustena (resp. vytvorena) jen jednou. Pomoci transakcniho objektu FireDAC (TFDTransaction) muzes vytvaret transakce opakovane, ale pujde vzdy o unikatni instance (tudiz z pohledu dat GTT definovane s ON COMMIT DELETE ROWS o separatni kontejner). Pokud ovsem nepujde o transakci vnorenou (vnorena transakce bude mit pristup k datum GTT, jedna-li se o stejny transakcni objekt FireDAC), tzn. v nasledujicim pripade lze sdilet data GTT mezi dvema query objekty:

Kód: Delphi [Vybrat]
  1. FDQuery1.Transaction := FDTransaction1; // ← stejny transakcni objekt prirazen dvema ruznym query objektum
  2. FDQuery2.Transaction := FDTransaction1; // ← stejny transakcni objekt prirazen dvema ruznym query objektum
  3.  
  4. FDQuery1.Transaction.StartTransaction; // ← start vnejsi transakce
  5. try
  6.   FDQuery1.SQL.Text := 'INSERT INTO MyTempTable (TheInteger) VALUES (123)';
  7.   FDQuery1.ExecSQL;
  8.  
  9.   FDQuery2.Transaction.StartTransaction; // ← start vnorene transakce
  10.   try
  11.     FDQuery2.SQL.Text := 'SELECT TheInteger FROM MyTempTable';
  12.     FDQuery2.Open;
  13.     Assert(FDQuery2.FieldByName('TheInteger').AsInteger = 123, 'GTT read failed!'); // data lze precist
  14.     FDQuery2.Transaction.Commit;
  15.   except
  16.     FDQuery2.Transaction.Rollback;
  17.     raise;
  18.   end;
  19.  
  20.   FDQuery1.Transaction.Commit;
  21. except
  22.   FDQuery1.Transaction.Rollback;
  23.   raise;
  24. end;

Zatimco v pripade pouziti ruznych transakcnich objektu ne:

Kód: Delphi [Vybrat]
  1. FDQuery1.Transaction := FDTransaction1; // ← tento query objekt ma svuj vlastni transakcni objekt
  2. FDQuery2.Transaction := FDTransaction2; // ← tento query objekt ma svuj vlastni transakcni objekt
  3.  
  4. FDQuery1.Transaction.StartTransaction; // ← start transakce
  5. try
  6.   FDQuery1.SQL.Text := 'INSERT INTO MyTempTable (TheInteger) VALUES (123)';
  7.   FDQuery1.ExecSQL;
  8.  
  9.   FDQuery2.Transaction.StartTransaction; // ← start transakce
  10.   try
  11.     FDQuery2.SQL.Text := 'SELECT TheInteger FROM MyTempTable';
  12.     FDQuery2.Open;
  13.     Assert(FDQuery2.FieldByName('TheInteger').AsInteger = 123, 'GTT read failed!'); // data nelze precist
  14.     FDQuery2.Transaction.Commit;
  15.   except
  16.     FDQuery2.Transaction.Rollback;
  17.     raise;
  18.   end;
  19.  
  20.   FDQuery1.Transaction.Commit;
  21. except
  22.   FDQuery1.Transaction.Rollback;
  23.   raise;
  24. end;
4
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Stanislav Hruška kdy 19-04-2018, 21:09:15 »
Len dopĺňam, že transakcia sa môže spustiť len jediný raz. Na to som zabudol, a dalo mi to poriadne zabrať.
5
Obecné / Re:trapeni s tiskem na COM
« Poslední příspěvek od PaJi kdy 19-04-2018, 15:47:25 »
Z vlastní zkušenosti doporučuji totéž co "Vandrovník". Ve Win7 je to tiskárna "Generic / Text Only". Používám to na "tiskárny" čárových kódů apod. Kdysi jsem Crnilu používal také, ale něco mi tam pořád "nesedělo". Tímto způsobem to mám na několika počítačích ve firemním prostředí a v appkách to neřeším a všechny nastavuji stejně - teď to dokonce posílám i po síti - a na appky jsem "nehrábl". Pro mě to byla nejjednodušší cesta. Nehledě na to, že ComX porty jsou obecně definitivně "odpískané", dnešní PC už je prostě standardně nemají a ve firemním prostředí je to pak problém.
Jinak možná se mýlím, ale ty vyšší znaky nad 128 jsou nějakým způsobem oříznuty (128-159) - nezdá se mi, že by to byl jen překlad mezi codepages. Mohlo by to být i nějakým nastavením na dané tiskárně??
6
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Delfin kdy 19-04-2018, 08:34:24 »
Citace
Z pohledu FireDAC jednoduse pouzij stejny transakcni objekt (linkuj stejnou Transaction pro query objekty ve kterych se chces k datum dostat).
Tu som robil chybu. Poplietlo ma to, že sme v diskusii konštatovali, že mám mať pre GTT samostatnú transakciu :D  V noci sa mi to vyjasnilo.

Nevim co konkretne delas, ale mel jsi obavy ze se Ti data budou "bit" (tak jsem si tu poznamku alespon vysvetlil):

Tak to si musím pre túto úlohu vytvoriť samostatnú transakciu. Aby sa mi to nebilo s ostatnými.

Coz se dit samozrejme muze. Kdybys napr. potreboval dve separatni sady dat, vytvoril bys dva separatni transakcni objekty (TFDTransaction). Pokud bys chtel jednu sadu, pouzijes jeden transakcni objekt.
7
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Stanislav Hruška kdy 19-04-2018, 08:19:24 »
Citace
Z pohledu FireDAC jednoduse pouzij stejny transakcni objekt (linkuj stejnou Transaction pro query objekty ve kterych se chces k datum dostat).
Tu som robil chybu. Poplietlo ma to, že sme v diskusii konštatovali, že mám mať pre GTT samostatnú transakciu :D  V noci sa mi to vyjasnilo.
8
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Delfin kdy 19-04-2018, 07:59:32 »
Nad tým tuho rozmýšľam. Zmenil som Isolation na xiDirty a Table.FetchOptions.RecordCountMode := cmTotal; Aj tak mám 0. Pokračujem zajtra.

Pokud sis nadefinoval tu tabulku s ON COMMIT DELETE ROWS tak je uplne jedno jakou pouzijes izolacni uroven transakce. Po jejim "commitu" (resp. zmene stavu) se data smazou. Ty data zkratka existuji jen v ramci jedne transakce (a ji vnorenych).

Z pohledu FireDAC jednoduse pouzij stejny transakcni objekt (linkuj property Transaction na stejny objekt vsem query objektum ve kterych se chces k datum dostat).
9
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od Stanislav Hruška kdy 18-04-2018, 22:24:27 »
Nad tým tuho rozmýšľam. Zmenil som Isolation na xiDirty a Table.FetchOptions.RecordCountMode := cmTotal; Aj tak mám 0. Pokračujem zajtra.
10
Firebird a Interbase / Re:Dočasná tabuľka - ako ju riešiť?
« Poslední příspěvek od vandrovnik kdy 18-04-2018, 22:13:47 »
To som akosi tak predpokladal. Ale ako mám teraz nájsť chybu :'( :( ?

Možná by pomohlo po dobu vývoje tu tabulku definovat ne jako dočasnou, ale jako klasickou, aby se dalo v db manageru na ty záznamy podívat.
Stran: [1] 2 3 ... 10