Archív konference Delphi

Zpět na výběr roku archívu nebo přejít na fulltextové vyhledávání v konferenci.

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 07:11:19

> Puvodni zprava, kterou napsal Martin Kubecka dne 7 Mar 99,:
>
> > > Rozhodne
> > > si myslim, ze je mnohem lepsi venovat tomu pri navrhu
> > > databaze o nekolik hodin vice, aby zadne zamky potreba
> > > vubec nebyly...
> >
> > To je podle me neresitelne (u vetsiny aplikaci).
>
> To ale podle meho nazoru rozhodne neni pravda.
>

Je to pravda.
Co udelas, kdyz se prihlasim nejakym query executorem
a udelam update na zaznam, ktery by mel byt jinak zamcen?

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Ovl�dac� panely

[*] Milan Fiedler <milanf(zv)rts(tec)cz> - 8.3.1999 07:52:02

Pisete vice informaci ve Win32 SDK, pod heslem CPIApplet.
Kde to najdu, mozna mne postrcte tim spravnym smerem.

Diky

Milan Fiedler



-----P�vodn� zpr�va-----
Od: Ondrej Krajicek <krajicek(zv)promedia(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b�ezna 1999 20:19
P�edm�t: Re: Ovl�dac� panely


>Do slozky Ovladaci Panely zastupce pridat nejde. Ona to vlastne neni
>slozka, ale klasicky control.exe, jak jej zname z Windows 3.11, az na
>to, ze obsah vykresli do okna exploreru. Nicmene muzes vytvorit
>Control Panel Applet, vice informace ve Win32 SDK helpu pod heslem
>CPlApplet.
>
>Ondrej Krajicek
>
>-----P�vodn� zpr�va-----
>Od: Milan Fiedler <milanf(zv)rts(tec)cz>
>Komu: Konference <delphi-l(zv)fwd(tec)cz>
>Datum: 4. b�ezna 1999 15:25
>P�edm�t: Ovl�dac� panely
>
>
>Potreboval bych do slozky "Ovladaci panely" p�idat zastupce, nevite
>prosim kde zjistit cestu, nebo kam zaspat. Nemohu to najit mozna
>koukam jinam nez mam.
>
>
>Dekuju
>
>Milan Fiedler
>milanf(zv)rts(tec)cz
>
>
>

ICS TSMTPCli komponenta

[*] Mor�ol Marian <Marian.Morzol(zv)ostrava.aksignal(tec)cz> - 8.3.1999 08:12:20

Jak zajistit aby Mail Server poslal zpet zpravu : "Zprava byla dorucena"
nebo "Zprava byla prectena" podobne jako v MSOutlooku pomoci komponenty
TSMTPCli od Francoise ?
Poslal jsem ten dotaz uz do jeho konference, dostal jsem sice odpoved,
ale nejsem z toho moc chytry.
Prosim kus kodu. V OnHeaderLines jsem sice napsal :

if StrLIComp(Msg, 'From:', 5) = 0 then
StrCat(Msg, #13#10 +
'Disposition-Notification-To:<Marian.Morzol(zv)ostrava.aksignal(tec)cz>');

ale nevypada toze by to mail server vzal jako prikaz (spis jako poznamku
... podobne jako ve Francoisove prikladu).

Tisicere diky.

Form.BorderStyle:= bsNone;

[*] Fryz, Zdenek <fryz(zv)dcb(tec)cz> - 8.3.1999 08:19:01

jednou z nevyhod odchyceni zpravy WM_NCHitTest s vracenim "M.Result :=
htCaption" je, ze se napr. nezobrazi lokalni menu, jestlize je k formulari
pripojeno,nebo se vubec nevykona udalost OnMouseDown. Proto pro posunuti
formulare bez titulku pouzivam :

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, 61458, 0);
end;
end;

Stejnym zpusobem lze za behu posouvat napr. i tlacitka a ostatni komponenty,
ktere maji vlastnost 'Handle'.

Pouziti zpravy WM_NCHitTest ale muze byt uzitecne, jestlize formular ma
vlastnost BorderStyle:=bsNone a pritom
chci menit jeho velikost :

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
.
.
.
if (M.XPos>left) and (M.XPos<left+5) then M.Result := HTLEFT;
.
.
.

end;

ahoj

Zdenek Fryz


> -----P�vodn� zpr�va-----
> Od: Petr Brant [SMTP:p.brant(zv)samo(tec)cz]
> Odesl�no: 06.03.1999 11:40
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: RE: Form.BorderStyle:= bsNone;
>
> Ahoj,
>
> posilam ukazku z meho archivu:
>
>
> type
> TForm1 = class(TForm)
> private
> { Private-Deklarationen }
> public
> { Public-Deklarationen }
> procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
> end;
.
.
.
>

pomooc --- Internal Error URW527

[*] Ing. Jaroslav K�e�ek - 8.3.1999 08:59:58

To jsem z toho jelen, srnec i danek.

Nevite nahodou nekdo, co s timhle errorem kompilatoru? Objevilo se mi to u
D4-Standard pote, co jsem priradil proceduru do promenne typu procedura.
Mozna to nedelam spravne, ale ta chyba by se podle helpu nikdy nemela
objevit.

ServicePack 3 mam nainstalovany.

Dokazete mi nekdo poradit?

Jaroslav Krecek

Instalace BDE

[*] David Adamec <ADAMECD(zv)vs.xion(tec)cz> - 8.3.1999 09:08:22


> Ing. Zdenek Sraier wrote:
>
> > zapolim s problemem distribuce maleho pomocneho programu, ve kterem
> > potrebuji pouzivat databaze (Paradox). Instalace celeho BDE je blbost.
>
Mam pocit, ze v Install Shieldu pro D3 jde nastavit kterou cast BDE chces
nainstalovat (nebo cely BDE).
-David


pomooc --- Internal Error URW527

[*] Ing. Jaroslav K�e�ek - 8.3.1999 09:09:26

Tak jsem na neco prisel:
--- Ta procedura, kterou jsem prirazoval byla jedna z overloaded procedur.
Pokud jsem to predelal tak, ze uz neni overloaded, tak to Delphi spolknou.

Myslite si taky, ze na tuhle variantu Inprise zapomneli, nebo mi neco
nedochazi?

Jaroslav Krecek

-----P�vodn� zpr�va-----
Od: Ing. Jaroslav K�e�ek <grafex(zv)iol(tec)cz>
Komu: DELPHI Distribution List <delphi-l(zv)fwd(tec)cz>
Datum: 8. b�ezna 1999 8:59
P�edm�t: pomooc --- Internal Error URW527


>To jsem z toho jelen, srnec i danek.
>
>Nevite nahodou nekdo, co s timhle errorem kompilatoru? Objevilo se mi to u
>D4-Standard pote, co jsem priradil proceduru do promenne typu procedura.
>Mozna to nedelam spravne, ale ta chyba by se podle helpu nikdy nemela
>objevit.
>
>ServicePack 3 mam nainstalovany.
>
>Dokazete mi nekdo poradit?
>
>Jaroslav Krecek
>
>

Odchytavani zprav

[*] Tomas Balusek <tpplus(zv)zasova(tec)cz> - 8.3.1999 09:15:35

Hmm, sypu si popel na hlavu ;-( Ja si opravdu _myslel_ ze to tak je :-)
(Uz si to nemyslim :-)

Bye T.B.
-----P�vodn� zpr�va-----
Od: Mgr. Anton�n Blatn� <blatny(zv)atlas(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 7. b�ezna 1999 7:39
P�edm�t: Re: Odchytavani zprav


>Zprava by mela byt platna v celem systemu, tzn. ze ji muzes odchytit kde
>>xcesh
>>
>
>Jak uz jsem psal v odpovedi na puvodni dotaz, toto pochopitelne neni
pravda.
>
>Mgr. Antonin Blatny
>blatny(zv)atlas(tec)cz
>

elementarny problem s C/S

[*] Scholze Libor <Libor.Scholze(zv)pvt(tec)cz> - 8.3.1999 09:21:25



> ----------
> Od: Richard Willmann[SMTP:sales(zv)nocomment.sk]
> Odesl�no: 23. �nora 1999 19:27
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: elementarny problem s C/S
>
> ahoj,
> �
> viem ze je to elementarna vec, ale nakolko som este CS nikdy nerobil ... :
> �
> na sieti je clovek A a B
> �
> 1. clovek A prezera tabulu a zacne editovat nejaky zaznam
> 2. clovek B ma tu istu potrebu a zacne editovat ten isty zaznam
> 3. clovek A skonci skor a vykona prikaz update ... where id=idEditoavneho
> zaznamu
> 4. clovek 4 skonci tiez, a chce update ....
> �
> co teraz? Ako spravim to, ze pred editaciou by sa zaznam "Zamkol na
> editacie a mazanie" a odomkom az po upadte alebo cancel, tak aby napr. B
> nemohol zmazat zaznam, ktory prave edituje A ...
> �
> rw
> �
> �
> Richard Willmann
> �
> ---
> No Comment Group, s.r.o.
> Hattalova 12/A
> 831 03 Bratislava
> �
> Tel.: +421 905 616 306; +421 903 75 24 75;� Fax: +421 7 444 53 127
> sales(zv)nocomment.sk; www.nocomment.sk
>
>
Doufam, ze jsem ulohu pochopil spravne a ze Vam to vubec k necemu
bude:

Pokud opravdu chcete zamknout vetu, aby ji urcitou dobu nemohl
zamnkout ci zmenit nikdo jiny, udelejte si treba univerzalni funkci, ktera
jen a pouze zamyka vetu v databazi a ihned Vam vraci vam vysledek, zda se ji
to podarilo nebo zda byl jiz zaznam zamceny nebo zda jiz zruseny. Vstupnim
parametrem teto funkce muze byt Query a funkce pouzije aktualni zaznam
Query. Otevre SELECT .... FROM ... (jmeno tabulky si zjisti z persistentu
nebo to muze byt dalsi parametr) ... WHERE ROWID = rowid_aktualni_vety_Query
FOR UPDATE NOWAIT. Pred volanim teto funkce muzeme navic zrusit autocommit
(Database.StartTransaction), pokud chceme, aby veta zustala zamcena i po
zavolani teto funkce. Dal s Query pracujeme dle potreby - Edit, Post, Commit
atd. V ORACLE, kde ROWID predstavuje umisteni zaznamu v databazi a tudiz po
zruseni vety muze jina veta ziskat stejny ROWID, musite misto ROWID pro
identifikaci zaznamu pouzit neco jineho, napr. vsechny sloupce primarniho
klice (jina Vase univerzalni funkce Vam je zjisti).

Vas

Libor Scholze
PVT a.s., o.z. Liberec
Voronezska 144
46171 Liberec 1
Tel. +48 5217313
Email: Libor.Scholze(zv)pvt(tec)cz

Cestina v Paradoxu-memo

[*] David Adamec <ADAMECD(zv)vs.xion(tec)cz> - 8.3.1999 09:23:16

1)Mam problem.
Pripojuji se na dat. tabulku paradox a mam problemy s cestinou.
Tabulka obsahuje i polozky 'memo'. Vsechny data v DBGridu se zobrazi
spravne, ale jak znamo v dbgridu nelze zobrazit memo. Tak sem tam dal
DBMemo a tam se nezobrazuje cestina. Pokousel jsem se nastavit
vsechny mozny kodovani cestiny, ale nepomaha to.
Pouzivam D3.


2) Nevite nekdo strukturu souboru paradox a jeho memo casti?

-David


Vypocet

[*] Jaroslav N�dhera <csh(zv)czn(tec)cz> - 8.3.1999 09:33:50

Ja to beru. Ale co neberu je, ze na jednom procesoru to dava jiny vysledek
nez na druhem. Proto jsem to posilal do konference.

J. Nadhera

-----P�vodn� zpr�va-----
Od: Ing. Jaroslav K�e�ek <grafex(zv)iol(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 5. b�ezna 1999 13:31
P�edm�t: Re: Vypocet


>To prece neni nijak zvlastni. Proste ve svete pocitacu je omezena presnost
>vysledku a mezivysledku, zrovna tak jako je omezena velikost cisel. Viz.
>odpoved p. Polaka.
>
>A premyslet se nad tim taky moc nemusi. Staci si zazit pravidlo, ze je
>potreba nejdriv cislo zvetsovat a pak teprve delit. Samozrejme za
>predpokladu, ze ti behem vypoctu nepretece.
>
>Jaroslav Krecek
>

Tray

[*] SPELZA s.r.o. <spelzasro(zv)brno(tec)comp(tec)cz> - 8.3.1999 09:34:21

Vyzkou�ej n�sleduj�c�:

var
XNotifyData : TNotifyIconData;

function XGetIconHandle: hIcon;
begin
Result:= Application.Icon.Handle;
if Result = 0 then
Result:= LoadIcon(0, IDI_Application);
end;

procedure InitXNotifyData;
begin
FillChar(XNotifyData, SizeOf(XNotifyData), 0);
with XNotifyData do
begin
cbSize:= SizeOf(XNotifyData);
Wnd:= Handle;
uID:= 1;
uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
StrPCopy(szTip, Application.Title);
(* uCallBackMessage:= procedura pro obsluhu Messages; *)
hIcon:= XGetIconHandle;
end;
end;

procedure TrayIconAdd;
begin
InitXNotifyData;
Shell_NotifyIcon(NIM_ADD, (zv)XNotifyData);
end;

procedure TrayIconDelete;
begin
Shell_NotifyIcon(NIM_DELETE, (zv)XNotifyData);
end;

procedure TrayIconChange(const AText: string);
begin
StrPCopy(tiNotifyData.szTip, AText);
Shell_NotifyIcon(NIM_MODIFY, (zv)XNotifyData);
end;

Bye. Jara
svehla(zv)atlas(tec)cz


-----P�vodn� zpr�va-----
Od: Ing. Brcko <brcko(zv)pobox.sk>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 6. b�ezna 1999 11:00
P�edm�t: Tray


>Myslim ze to uz bolo ale ja to nie som schopny nejak zvladnut.
>Pouzivam RxTrayIcon. Problem je ze neviem ako aplikaciu minimalizovat do
tray-u a ako ju s tadial vytiahnut. Podla tohto navodu:
>
> Shell_NotifyIcon(NIM_ADD,(zv)NotifyData);
> ShowWindow(Wnd,sw_Hide);
>
>to sice mozno chodi ale este sa mi to nepodarilo rozchodit pretoze mi na
NotifiData vzdy hlasi "Unknown identifier" a ani sa mi nepodarilo zistit v
ktorej unite sa nachadza.
>
>A preto prosim tych skusenejsich aby mi pomohli s problemom ako takym
celkovo. ( Step by Step ).
>
> Vdaka
>
>____________________________________
>P. S. V. P. U.
>http://www.pobox.sk/

elementarny problem s C/S

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 8.3.1999 09:53:01

Absolutne a bezvyhradne s Jaroslavem i s Petrem souhlasim.
Zapomenme na to, ze kdysi nejake zamky existovaly.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
> URCITE NEDALO !!! I nekolik minut muze byt nepripustne dlouha doba!
> Nevymyslejte hlouposti.
>
> Vzdyt i muj jmenovec Jara CIMRMAN, prukopnik slepych
> ulicek, prece jiz davno zjistil, ze tudy cesta opravdu nevede. Kdyz na sve
> prvni CimrBazi zkousel poprve scitat pocty pivniku v Cechach, zjistil, ze
> tato cesta k cili nevede, protoze zadny poradny cesky pivnik
> nevydrzi byt 30 minut strizlivy! Mimochodem, to vite, ze i tenhle jeho
> genialni vynalez mu ukradli? Nejakej pan Oracle nebo tak nejak se jmenoval.
> Nechte si od Jary poradit a pustte zamky z hlavy.
>
> Ale vazne.
> Kdy je ktery cas kratky a kdy dlouhy. Tohle nic neresi. Nekdy je minuta
> dlouho a nekdy nestaci ani pul hodiny. Vazne si nekdo mysli, ze by program
> mohl fungovat na vetsim poctu stanic, kdyby tam byly takovehle zamky?
> K omylu casto dochazi chybnou predstavou, ze je blokovan jen ten jediny
> zaznam a ze pravdepodobnost, ze dva klienti budou chtit pracovat na jednom
> zaznamu, je mala a tudiz zamky vlastne nicemu nevadi. Jenze programy
> byvaji trochu slozitejsi. Vezmeme jednoduchy priklad. Mejme sklad a skladove
> karty. Na sklade se udrzuje aktualni stav zasoby a pocita se prumerna cena.
> Z toho duvodu se vzdy po ulozeni prijmoveho nebo vydajoveho dokladu spusti
> ulozena procedura, ktera pro vsechny skladove karty pouzite na vytvorenem
> dokladu vypocita aktualni stav zasob a zapise je do techto karet. Kdyz
> narazi na zamek, ma moznost cekat nebo vyhlasit chybu. V prvnim pripade by
> ulozeni jednoho prijmoveho dokladu mohlo trvat cele hodiny, ve druhem
> pripade by to s velkou pravdepodobnosti stale hlasilo chybu. Nektere
> transakce jdou proste a jednoduse napric databazi a zamky jsou zde
> vylouceny.
> Proc nejsou na Interbazi zamky? Nekdo to vidi jako nedostatek. Ja ne.
> Pouziti zamku je prece velmi snadne, tak proc si lamat hlavu s logikou a
> integritou databaze. Hodne programatoru k tomu snadno sklouzne, zejmena
> tech, kteri prechazeji od souboru. V souborech to mnohdy je nutnosti,
> protoze tam zcela chybi transakce, prvky integrity, trigry a pod. Casto se
> divim jak nekteri programatori namisto, aby se zajimali o efektivni a mocne
> prostredky databazovych stroju, tak hledaji sve oblibene zamky. Kdysi jsem
> programoval ve FoxPro a bez zamku jsem neudelal ani ranu. Take mi to chvili
> trvalo, tak vim o cem pisu. Ted zamky nepotrebuji k nicemu. Mozna se najdou
> situace s jejich opodstatnenim. Ja nerikam, ze se nemohou nikdy pouzit, ale
> rozhodne by se nemely pouzivat tam, kde se to da zaridit bez nich. To je
> urcite vetsina pripadu.
> Jaro.

=================================
> >Rozhodne
> >si myslim, ze je mnohem lepsi venovat tomu pri navrhu
> >databaze o nekolik hodin vice, aby zadne zamky potreba
> >vubec nebyly...
> >
> >
> >S pozdravem
> > Petr Zahradnik, pocitacovy expert
=================================

elementarny problem s C/S

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 8.3.1999 09:53:48

> //prevod x penez z uctu a na uctu b:
> starttransaction
> a := a - x; //ucet a musi byt zamcen
> b := b + x; //ucet b musi byt zamcen
> //dalsi akce souvisejici s prevodem -
> // - ulozeni informace o (financni transakci)
> //do nejakeho protokolu, penezniho deniku atp.
> commit

Ale vzdyt to prave neni pravda!
O integritu takoveho prevodu penez se mi prave bez jakehokoli explicitniho zamykani postara transakce.
Pokud se pripsani na ucet b nepodari, nastane rollback a nepovedl se tedy cely prevod.
Mam to bez starosti, SQL Server (InterBase urcite, ale jiste i ostatni) si s tim poradi sam.

> Nebo - jak bys bez zamku resil docasnou nemoznost
> updatovat nejaky zaznam uzivatelem, ktery jej normalne updatovat muze?
> To nedokazes. Musel bys tam nasadit trigger, ktery by se rozhodoval na
> zaklade nejakeho semaforu nebo vymyslet nejake jine kostrbate reseni.

Docasna nemoznost updatovat zaznam se ve fazi analyzy resi necim jako "Entity life history".
Takovy "semafor" nebo rekneme "status" je pak nutnym dusledkem teto analyticke uvahy a nevidim v tom nic kostrbateho. Je to naopak velmi ciste a trigger to resi snadno a hladce.

Honza Sebelik
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================

Win, NT

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 8.3.1999 10:07:16

> From: "Ing. Ludek Florian" <ludan(zv)bluerose(tec)cz>
> >Typ OS lze jednoduse zjistit dotazem na promenou Win32Platform, ktera je
> >deklarovana v SysUtils.
> Souhlas, ale zase nevis, jestli je to Win95 nebo Win98.

Ve Visual Basicu je na to RO property:
If (Application.OperatingSystem = "Windows (32-bit) 4.10") then
....win98....
end if
If (Application.OperatingSystem = "Windows (32-bit) 4.00") Then
....win95....
End If
Snad se to da rozlisit i v Delphi pomoci cisla
verze 4.00/4.10.
>
> Bye Ludan
>
>
>
>
-----------------------------------------------
Ing. Zdenek Drvota e-mail:drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail:info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz


Vypocet

[*] Tu�ek Roman <TucekR(zv)p15.mepnet(tec)cz> - 8.3.1999 10:07:00

Pentium 266MMX ? Ty snad skoncily na nizsich frekvencich ne ?

to neznam leda snad Celeron nebo Pentium 2

----------
Od: Martin Lasevic
Komu: 'delphi-l(zv)fwd(tec)cz'
P�edm�t: RE: Vypocet
Datum: 5. b�ezen 1999 8:23

Neni pravda. Delaji to i vybrane P 266 MMX.

Martin

-----Puvodni zprava-----
Od: Jan.Kubeczka(zv)trz(tec)cz [SMTP:Jan.Kubeczka(zv)trz(tec)cz]
Odeslano: 5.boezna.1999 7:53
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Re: Vypocet

Byly to prvni Pentia 60MHz

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 10:12:22

Puvodni zprava, kterou napsal Polak Jiri dne 8 Mar 99,:

> > > To je podle me neresitelne (u vetsiny aplikaci).
> >
> > To ale podle meho nazoru rozhodne neni pravda.
>
> Je to pravda.
> Co udelas, kdyz se prihlasim nejakym query executorem
> a udelam update na zaznam, ktery by mel byt jinak zamcen?

Neudelam nic, ale naprogramuji to tak, aby nemusel byt zamcen.
Je mozne, ze v urcitem pripade danou situaci vyresis zamkem
jednoduseji, je dokonce mozne, ze v urcitem pripade se bez
zamku neobejdes. Ale rozhodne se zde nejedna o vetsinu
aplikaci.


S pozdravem
Petr Zahradnik, pocitacovy expert

==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Delphi 4 Update pack #3

[*] Ing. Miroslav Ondrisek, BONNEL TECHNOLOGIE, s.r.o. <bonnel(zv)telecom(tec)cz> - 8.3.1999 10:29:11

Potvrzuji, �e po nainstalovani Service Packu 3 se objevily v New/Item
volby Service a Servis Application. Jen pro ty, kteri si nevsimli
prikladam vypis nazvu zmen z prilozene dokumentace - o servicexh ani
zminka:

2. BUG FIXES
===========================================================
2.1 MIDAS & Socket Server (Client/Server edition)
2.2 MIDAS & TProvider (Client/Server edition)
2.3 MIDAS & TSocketConnection (Client/Server edition)
2.4 MIDAS & TClientDataSet (Client/Server edition)
2.5 VCL (All editions)
TMainMenu.
TToolbar
TImageList
TCoolBar
2.6 CORBA (Client/Server edition)
SetPrincipal
CorbaInitialize
ORBInit
Pinging
StringToObject
2.6 CORBA & Marshaling (Client/Server edition)


Mira


Parameter not set in Query

[*] Tomas Balusek <tpplus(zv)zasova(tec)cz> - 8.3.1999 10:31:35

Zdravicko,
zacala se mi nenadale objevovat hlaska viz. %subj%. Objevuje se v mistech, kde mam dve query propojene parametrem [SELECT * FROM TABLE WHERE DATUM=:DATUM] - DataSource tehle query je nastaven na druhou query ve ktere vybiram DATUM [SELECT DISTINCT(DATUM) FROM TABLE2].
Podotykam, ze se jedna o konstrukci, ktera fungovala bez nejmensich problemu !!! Nemuze mit na toto vliv BDE 5.01 prip. Wir98 (nejsem si totiz vedom jakekoliv jine zmeny, ktera by to mohla spachat...)?

Diky za kazdou radu, shedivim z toho
T.B.

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 10:31:22

Puvodni zprava, kterou napsal Polak Jiri dne 8 Mar 99,:

> Nejen urcity zaznam, nekdy je potreba zamykat treba celou tabulku
> nebo databazi. Tam, kde je potreba udelat zamek, je mozne zpravidla

Pane boze, to snad ne ??? Zamknout tabulku nebo databazi? To si
ale opravdu delas legraci, ze?

> vymyslet jine reseni, ale nema to cenu. Zamek je nejjednodussi

Prave ze to ma cenu a velikou. Pokud je to program pro jednu osobu,
tak je lepsi zamek, ale pokud na tom ma delat vice lidi, tak to
je nejhorsi reseni. Samozrejme, ze je to nejjednodussi reseni...
ty si ulehcis praci a zakaznik pak bude nadavat...

> moznosti, jak zablokovat moznost zmenit data obecne, tedy
> jak pro aplikaci, tak pro uzivatele s nejakym online nastrojem
> pro provadeni SQL. Nebo - jak bys bez zamku resil docasnou nemoznost
> updatovat nejaky zaznam uzivatelem, ktery jej normalne updatovat muze? To
> nedokazes. Musel bys tam nasadit trigger, ktery by se rozhodoval na
> zaklade nejakeho semaforu nebo vymyslet nejake jine kostrbate reseni.

Proc kostrbate? Triggery jsou od toho, aby se pouzivaly. Rozhodne
je lepsi pouzit 20 triggeru nez jeden zamek.

> Dale - v diskusi padl nazor, ze zamykani zaznamu je pozustatek
> souborovych databazi. To je asi pravda, ale neznamena to,
> ze uz tento mechanismus neni aktualni. Napriklad transakce si vyrabi
> zamky. Bez teto moznosti by byly nanic.

Coze?

> A s transakci je i ten priklad v praxi:
>
> //prevod x penez z uctu a na uctu b:
> starttransaction
> a := a - x; //ucet a musi byt zamcen

Proc?

> b := b + x; //ucet b musi byt zamcen

Proc?


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 10:34:34

Proc nejsou na Interbazi zamky? Nekdo to vidi jako nedostatek. Ja ne.
Pouziti zamku je prece velmi snadne, tak proc si lamat hlavu s logikou a
integritou databaze. Hodne programatoru k tomu snadno sklouzne, zejmena
tech, kteri prechazeji od souboru. V souborech to mnohdy je nutnosti,
protoze tam zcela chybi transakce, prvky integrity, trigry a pod. Casto se
divim jak nekteri programatori namisto, aby se zajimali o efektivni a mocne
prostredky databazovych stroju, tak hledaji sve oblibene zamky. Kdysi jsem
programoval ve FoxPro a bez zamku jsem neudelal ani ranu. Take mi to chvili
trvalo, tak vim o cem pisu. Ted zamky nepotrebuji k nicemu. Mozna se najdou
situace s jejich opodstatnenim. Ja nerikam, ze se nemohou nikdy pouzit, ale
rozhodne by se nemely pouzivat tam, kde se to da zaridit bez nich. To je
urcite vetsina pripadu.
Jaro.

[Viktor] Tak jo, ale jak to teda ta Interbase resi? Nemohl bys to nejak v kratkosti objasnit?

begin 600 WINMAIL.DAT
M>)\^(B4)`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`" `*
M`"(`((zv)`!`# !`2" `P`.````SP<#``(zv)`"(zv)`A`#<``0!$`0$)(zv) $`(0```#1#
M0T$Y,30X,C9$-40R,3$Y,T$Y,# R,$%&,T)$.3%#`!\'`0.0!(zv)#\!(zv)``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0"(zv)KF7(zv)1FF^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YI1N!<2)'*3=4F$=*3J0`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80TKVP*0,`!Q#]`(zv)``'(zv)`($ $```!E````
M4%)/0TY%2E-/54Y!24Y415)"05I)6D%-2UD_3D5+1$]43U9)1$E*04M/3D5$
M3U-4051%2TI!3D503U5:251)6D%-2U5*15!214-%5D5,34E33D%$3D4L5$%+
M4%)/0U-)3$%-00`````"`0D0`0```-<#``#3`P``] 0``$Q:1G4O$;)J=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* \0<3($-%`H,`
M4 +R#U=(zv),"!486(zv)#<0* ?1,*(zv) C((#L);S(U-3,"(zv) J!=6,`4 L#;&D,,S8!
M0 M(zv);F<Q,*PR.0J(zv)`V!T!9!T"Z8$(% #8&,(zv);F5JQG,(8!C 82!)`C $D$!B
M87II('H0<&L$>3\'L6MD;R!T$1K =FED&?!J86LW&L 8T!JP<P&0%[!K+FP(zv)
M2AE0&- N"J(*(zv)%#;"& 9X'09]!D(zv):A"0%X!#!9 0D'9E;&T9\'/U$&!D&- L
M&M ;<!XQ&*%=`) (zv)"V `P 5 : M(zv)=F<9( 0(zv)"0!G:1N &2!AOQS4"X 7L G
M'7 9$60<$.<!H!G0'+ (zv)2 1P&- ?LK\)P"!2!; 9(!^(zv)&N!M(.'S'Q(:P'-K
M"0`=4!]"(R!>:(zv)> $& <U!>Q:!](zv):_\9D1GP'D(/(zv)"81&? $<![P[PA(zv)!N D
M8!Q05BAU)O$:TB)M)4!H9'D>`FYU9G0E0!OP:2P<U!>";[LC(!]Q;1H`'G +
M8" /</1Y8AGP="0``( ;<!YPJQ](zv)%X!V&D (zv)(A9Y'V%O!1 )P"I0&5!P!' <
M4$/V81OP)5%E'-0;,!L0+##_&V$8P2=&(^<9\!!A! `:X/\?8 &(zv)*E /L!H!
M*" `P!:0_2A ( $0,4$PH ,`+S$$8'YC&- K-QOP"7$M\2*V;XQV>2FA-=%O
M:G4?9'\(zv)H F ,Y$>\!Z(zv)*$ "8&G>8(zv)GP,V(:,1Q02RI (!'Y&/!E;2LW(_(V
MT!%1.(&X1F]X&($O,3CP>AVF^SHA&,%U`0`+8 ,(zv)(9 TH?<M(2CA$P!K$) >
MT1KA#W#_&Q 6D":%+= '0#+A'X(PLOL^\3SQ< 0`/C()(zv)!H$&,&S+V UX6)U
M*"$Q$6E \;THX4TKT!E!,U$08&H:L.<,<!SC`)!T=0#0$) $(/<>$"(zv)(zv)*:%O
M+V$;\AC0`P#V;1Q5!1!K$' E\D/C.C#_*B 9$B%0*D$O8!U2,O$X`/L<U -(zv)
M>A,(zv)(X(S)$(zv)!'K#_2,4[, 5 +!$G(0$`,T(:X7\BP!H!!1 ;, 5 /#)#$6C?
M/D$:P!X0'-0(<&,=<!Z"_G0`D!E!%X %(!\(zv)*. <U.\<< -(zv)',50]6,`00PR
M%X59$N!;5B%0)$%=`S!BG0% :1+(zv)`S 6]#,S$='_/E(;4#+B. `PXQKA%[!,
MT?\!D!EF,U$)< "0&F)((0,(zv)?S,(zv)!" :X1C10&(D(zv)"0`=+\;(zv)"KQ.*$;8!\`
M'7 _4;%?%M\7XE/!'.,3(zv)0!<, `#`! 0``````,`$1 ``````P" $/____]
M``<P`.0HR49IO(zv)% ``(zv)P`.0HR49IO(zv)$+``" "" &``````# ````````1(zv)``
M```#A0````````,``H (( 8``````, ```````!&`````!"%`````````P`%
M(zv) (zv)(zv)!(zv)``````P ```````$8`````4H4``/ .```>`"6 "" &``````# ````
M````1(zv)````!4A0```0````0````X+C ``P`F(zv) (zv)(zv)!(zv)``````P ```````$8`
M`````84````````+`"^ "" &``````# ````````1(zv)`````.A0````````,`
M,( (( 8``````, ```````!&`````!&%`````````P`R(zv) (zv)(zv)!(zv)``````P ``
M`````$8`````&(4````````>`$& "" &``````# ````````1(zv)`````VA0``
M`0````$`````````'(zv)!"(zv) (zv)(zv)!(zv)``````P ```````$8`````-X4```$````!
M`````````!X`0X (( 8``````, ```````!&`````#B%```!`````0``````
(zv)```>`#T``0````4```!213H(zv)``````,`#33]-P``6K.%
`
end


Tray

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 8.3.1999 10:38:52

> StrPCopy(szTip, Application.Title);
> (* uCallBackMessage:= procedura pro obsluhu Messages; *)


CallBackMessage neni adresa procedury pro obsluhu messagess ale cislo
zpravy, ktere se posle jako parametr WM_COMMAND do obsluhy zprav okna.

PS pokud chces u schovane aplikace zobrazovat menu na stisk mysi - MS ma v
implementaci chybu, ktera zpusobi ze se menu nechova tak jak ma pokud se
pouzije obvykly postup (myslim, ze se to projevuje jen na NT). Reseni jsem
nasel v KB (podstatu problemu si uz nepamatuju)


Zdravi
D. Toman

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 10:50:02


> -----Original Message-----
> From: Jan �ebel�k [mailto:honza(zv)haes(tec)cz]
> Sent: Monday, March 08, 1999 9:54 AM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: elementarny problem s C/S
>
> > //prevod x penez z uctu a na uctu b:
> > starttransaction
> > a := a - x; //ucet a musi byt zamcen
> > b := b + x; //ucet b musi byt zamcen
> > //dalsi akce souvisejici s prevodem -
> > // - ulozeni informace o (financni transakci)
> > //do nejakeho protokolu, penezniho deniku atp.
> > commit
>
> Ale vzdyt to prave neni pravda!

Je to pravda! Transakce si oba zaznamy skutecne zamkne

> O integritu takoveho prevodu penez se mi prave bez jakehokoli
> explicitniho zamykani postara transakce.

Netvrdil jsem nic jineho. Ale uz tim, ze tu transakci otviras,
tak zamky vytvaris, i kdyz "jenom" mimochodem. Je videt, ze
se bez zamku neobejdeme, nema cenu tvrdit, ze je to pouze
pozustatek souborovych databazi a nema cenu zamky pouzivat.
Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne s Jaroslavem
i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake zamky existovaly."
Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
mi, jak to chces jinak delat.
BTW taky nepouzivam explicitni zamykani zaznamu, uz jsem to tady psal,
a pro editace mi to pripada nevhodne. Ale tim, ze tento mechanismus
pouzivaji transakce a ja je samozrejme vyuzivam, musim s tim pocitat
a nemuzu rict, ze zamky nepouzivam (zvlast kdyz jich pri behu me procedury
vznikne a zanikne treba nekolik set tisic). A zapomenout na ne taky nemuzu,
protoze na jejich pocet ma vliv treba i tvar SQL prikazu, algoritmy
procedury atp. a mel bych se snazit jejich pocet minimalizovat.

> Docasna nemoznost updatovat zaznam se ve fazi analyzy resi
> necim jako "Entity life history".
> Takovy "semafor" nebo rekneme "status" je pak nutnym
> dusledkem teto analyticke uvahy a nevidim v tom nic
> kostrbateho. Je to naopak velmi ciste a trigger to resi
> snadno a hladce.

Jo - je to jenom tebou realizovany zamek. Nebo myslis, ze zamek
uvnitr DB je udelan jinak? Ten triggerovy je nevyhodny proto,
ze je zde prilis velka rezie. V DB je optimalizovan.
Navic triggery nejsou vsude bezproblemove, co tam, kde z nejakeho
duvodu trigger nemohu pouzit?

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

D4 a Sybase ASA 6.0

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 10:50:34

Puvodni zprava, kterou napsal Adrian Hollay dne 8 Mar 99,:

> Da sa nejako pomocou nativneho SQL Links drivera pre
> SYBASE napojit na Sybase Adaptive Server Anywhere 6.0??

Podle me by to melo jit, protoze v manualu pisou, ze tam jsou
oba drivery (CT i DB), ale nezkousel jsem to, protoze nemam
Client/Server, ale jen Professional. Proste nemam SQL Links.
Tim padem mi take Inprise pije krev, ze SQL Link neni mozno
doukoupit zvlast k Professional... at si to nabouchaji.

> Stretol sa s tym niekto, alebo o tom niekto pocul??
> Novy Anywhere je podla mojho nazoru daleko lepsi ako
> InterBase 5.0, no napojil som sa na neho len cez ODBC.
> Dakujem.

Ja ho take mam na ODBC.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Destruktor?

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 10:59:35


[Viktor] Dik. Ted je mi to zcela jasne.

Tak sorry, poviem to jednoducho, destructor treba volat explicitne. Objekt
v D moze mat viac destructorov. Diki za opravu co sa tyka VMT, teraz mi je
to jasne, zrejme som to nechapal celkom spravne. Kazdopadne, pokial sa
dobre pamatam, v BP nebolo treba volat constructor ani destructor pokial
objekt neobsahoval virt. metody. V D treba volat constructor a destructor
vzdy, pretoze premenna typu objekt resp. class je len ukazovatelom. Ako som
uz napisal, v D constructor vracia adresu vytvoreneho objektu, teda syntax
volania constructora je trochu ina ako v BP.

L.

> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:viktor.lostak(zv)chmi(tec)cz] On
> Behalf Of Viktor Lostak
> Sent: Friday, March 05, 1999 10:49 AM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: Destruktor?
>
> Automaticky sa nevolaju, ale nie je to ani celkom tak ako v P
> 7.0. Ked totiz v Delphi zavolas destruktor najakeho objektu, tak
> sa z pamate uvolni cely objekt, nie iba VMT.
> V P 7.0 sa dala deklarovat (var o:TMyObjekt) priamo instancia
> objektu a constructor vytvoril len VMT (ak mal objekt virtualne
> metody). Destructor zase VMT uvolnil. Ked sa v P 7.0 zadeklaroval
> smernik na objekt (var po:^TMyObjekt), tak bolo treba najprv
> vytvorit instaciu objektu a potom zavolat constructor. Pred
> uvolnenim instancie sa zase musel volat destructor. V delphi sa
> neda deklarovat priamo instancia objektu. Deklaracia var
> o:TMyObject je len deklaraciou smernika na dany typ objektu tak
> ako v P 7.0 var o:^TMyObject. Na rozdiel od P 7.0 v D netreba
> explicitne vytvarat instanciu objektu pomocou new ako P 7.0, ale
> staci zavolat constructor a ten uz rovno vytvori instanciu
> objektu aj VMT a vrati adresu objektu (o:=TMyObject.Create).
> Rovnako destructor v D uvolni nielen VMT ale aj instanciu
> objektu, teda o.destroy uvolni s pamati VMT aj samotny objekt.
> Neviem ci je to uplne presne ako som napisal, ale tak nejako to chapem
ja.
>
> Lubo.
>
> [Viktor] Mno, jak to mam rict... Ja jsem ti fakt hodne vdecny za
> snahu a nemyslim to zle... Ale to, co pises, to jsou vazne bludy.
> Konstruktor nikdy zadnou VMT nevytvari, ta se dela uz pri
> prekladu a konstruktor (krome jineho) nastavuje ve vyhrazene
> pameti pointer na VMT, cimz se fakticky vytvori instance objektu.
> ja vim presne, jak to chodi v BP.
>
> Jde mi o to, jestli musim volat destruktor explicitne ja sam,
> nebo jestli to za mne udela jazyk. Tedy jestli kdyz opoustim
> proceduru, zavola destruktory pro lokalni instance a jestli kdyz
> rusim objekt v pameti, zavola sam destruktor.
>
> To se da zodpovedet patrne tim, jestli lze ve tride deklarovat
> vic destruktoru nez jeden nebo destruktory s parametry. Pokud
> ano, pak nevim, jak by se mohly volat automaticky.

begin 600 WINMAIL.DAT
M>)\^(B(zv))`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`0````4D4Z
M($1E<W1R=6MT;W(_`&<%`06 `P`.````SP<#``(zv)`"(zv)`[`",``0!*`0$(zv)(zv) ,`
M#(zv)```,\'`P`(``H`.P`2``$`.0$!"8 !`"$````X0T-!.3$T.#(V1#5$,C$Q
M.3-!.3 P,C!!1C-"1#DQ0P`C!P$#D 8`+ L``"$````+``(``0````L`(P``
M`````P`F```````+`"D```````,`+(zv)```````P`V``````! `#D`(&7:7DII
MO(zv)$>`' ``0````P```!$97-T<G5K=&]R/P`"`7$``0```"H````!OF8K;#>W
M!<U TAH1TI.D`""O.]D<``)JDR `+>./( `&-UP(zv)`)$TO" ``!X`'(zv)P!````
M!0```%--5% `````'(zv)`?# $````6````=FEK=&]R+FQO<W1A:T!C:&UI+F-Z
M`````P`&$%E3&NH#``<0D (zv)``!X`"! !````90```%9)2U1/4D1)2U1%1$I%
M34E43UI#14Q!2D%33D5404M33U)262Q03U9)14U43TI%1$Y/1%5#2$\L1$53
M5%)50U1/4E1214)!5D],051%6%!,24-)5$Y%3T)*14M45D1-3UI%34$`````
M`(zv)$)$ $````'" ```P(zv)``/\-``!,6D9UH$*O, ,`"(zv)!R8W!G,3(U=C(`] 'W
M( *D`^,"`&,": K <V5T,C,XU0``*(zv)+A80> ( <3`H#Q!Q,(zv)0T4"(zv)P!0`O(0
M%^ P(%1A: -Q`H,.4&$2U'!R<3(%W * ?;,*(zv) C((#L);PXP-0* &0J!=6,`
M4 L#;&DS6C8!0&,`00M(zv);(zv)X0,#PR.0NG"K$*(zv)0PQ(%M05FEK= 6P70,P8IT!
M0&D3H ,P&>0S,Q*1-"!$&[ N$[ )(zv)"!J#1%0;1MP&] (zv)>F-E(zv)PM(zv)'?!A<VYE
M+AG;IQKT'+<4\&]T!9!T$I(C&O,3P&L(zv)<P6P<GF(zv)+"!P;W8(D&T>4OD>`&1N
M!' 8L!/(zv)(J !`'AS='(8L!O1'E )<&*5'M!V!O!A!4!E> M0B0W(zv):70?(2!/
M8AX`SQO )2 =8!X(zv);WH>$25A?R+(zv)`- D&2+0': =<1MP>H4>T&\4\&%V=2 %
MH",B0![0='EK'M!63>Y4(J A0"E(zv)>AXB'(zv)$C,NL?`B*(zv)>(zv)EP:A%!(E C$U\?
M(! Q"K #(!ZA:RR1<ZLI4B822RK(zv)9"E 82. OROA(L HX!(1*>$NL&()<#\B
ML!$P)6 1,"*(zv))L!"4/\LX0;A'G DV(zv)6(zv)`( D5(zv)!P_QMP)"DO12_P)G,?("_P
M*>#]$^!V$A$BX `(zv)': '(zv)!O0]&1Y':!6)M$QGS*F)!K^=BZ(zv)(I()<!O0)R$Y
M<0> ]FX1("H!<"F0-'4)<"WP71V(zv)8PM(zv)!!$>`6P)\""Z=2HP>C51(4 )`&T=
MH+9!+; L<W4J\!$(zv)< 0`[P= ,+(FX#):=BE(zv))> >T,<NX#M!*9!V>70E, EP
M5Q\(zv)$^ T974JDF0>T'/R>0(P87(zv)E(P,`'M R6?\>T2M1`V 0,"F0"X _X3UA
MKS#2'T :]!KS3!]'-!_H#QKT&: "T11Q<S$V(*(zv)^("U(DD\%$&=$<<T#($T'
MD"G(zv)9V5(DT5&#R$D&M,+,2$F:2TQ-,8T`4 90#$X, % #-#53#-B2&%&`V$Z
M#(,<,"4I,'<?('(M`0!L< )H3!!L0&9W9"[J8RKP6QF3=0,(zv)`, #$.T;T#HB
MX!O"+(zv)D`)$ B(/Y $# >,$^11Z-0,!.(zv)' )O)D #H1KS2'!"0/ '0&:=)D!F
M3C(J4!NS($Q14[\:YDAA!F ",$WG3:!I0>"-(I%-"L 0," P-2*(zv)C#$Y6!!7
M\# Z-%(zv)PM$%-56E44+!-]B=.W3HG56IU)F$A8$WG4D7N.AU(zv))#,;PC]*/TM*
M&4 _`<$9F1T3"]-(85,V077G&] G40W(zv):WDITA\(zv))3+^:D&1!T 14 ,`$5 K
M1#,2'RV%47%$I3$`4S8W+C#_+F$=T1O08F J\";!3N,I`;\E,(zv)0(zv))"14LQ$(zv)
M'O!K0/R_(B%3-BGA*O P0Q%0=24QWV2$8J T="*(zv)8])I)0$J8?\=H%,V-H Q
M`&9A+Z,'0#A"[FL+8"AQ)6$H-6 %P%"PZ%1->294*3EA!S $8/M$85%A;C_"
M4S9!-3(zv)Q/MO_0(,#$3PR*F%OX"(A`, T5[TUHG4'0!\(zv)4R<V!"DHH=\D."D0
M$'!TPVNT;&:4*>'_9:)N(zv)BD0;T<#(6J&!X $H)\;L#WQ-&9O\R+ .EYP:/]J
M%#%):1$4\"; 4S9T!05 _W&#)> ZMG,"(L!B(6?5,CO]':!0"7%3)VNS"? '
M<'%WYRQA:P%X<FUU$' U(zv)25#_R0H-F).U"G24S8?($'A;TG_<1]!-7>2;V(_
MLW "<B=P5O\A8#OV;T0_L0A(zv)>[9_`F[A_FYBH#J!<I=J.F5F;H)P!/=]9B%(zv)
M':!.'M #8"Z(zv)")#_-%$=X)'%)M$?("344S8EF/] 8XNQ(zv)(5QT8$8(L $8 6(zv)
M_RF0'R 'X$2R;F-C=&IW(zv)-+_(zv)B\X!"% /%$J\"AQ(Y!S]ON6^7(O:G3#)1&6
MP1MP0 75<J8H4+ ]DIA#"7 \T?]W(zv)5,V" `N,$2R.&HFT6NU/V/1=)9CDI\!
MG6]!+6\N_20C;V*(zv):[4$(#!#&W"?,_^?$"G(zv)!& F`&Q6;:(zv)'P"+C^YJ!*T1U
M"U!V<3EQ'Q%$H_\L(zv)CX'8Y)E(A\(zv):3$Q<1YPWRT2(P$>\$4U86A,7 "GT+]&
M+[!7&T-(<!N?'*M-(Y#_(J!I,1Y2`, C$ 40DP&V(zv)+P(zv)2A[1$' C$1MP9B((zv)
M_P5 $^ N\24(zv)!8&/L2D1:G?'$2!$06+2;7ES&4 C$_9Z/#"V(zv)D&N4B/Q*;$^
M(?\'D"J1(T$B4$!1*N!V<0HQ^S9!4S9+,F1HQ+. -D!Z8M\CD"F0=-)B\9:#
M:6H2(D#_$5!.T1[0/=&)T5,G.7%O8<\CL#(zv)Q+;"]^"AK`V%C\7\+(zv)$#Q</ 1
M(%%A*8 >`7;]EE)H*M% T<%H$3&?P2+ WPN *K%\,BIC)>!M*O!X(zv)?^W<F)S
MG.T14(KG4S8>\">!?R,0K,2U=R/1DZ!$ZF%H2O\!`!XBKQ*U<20Q&4"&`H3!
M_X9Z5+.5R<KAJ>$BH(A8!N!WSK8>8A[0;79QO1 >M'K_*B =HV*(zv)SL6^L2KP
M*4 (8/\D0(3!P7A$( F "'!!D6?D_VA98J A$3P(zv)+U!V4<DI0[+_U/A3-B1(zv)
MSU)UEL8UUS>IX?]H6<SO68# <VL!!' BP0F OQ" ,#$D4'9QU>'.IVPG(?_$
M\2105P# DF]G?Y<-X&A9_YB"*O C83Q!TE/7RJCB*6#_-(zv)$B(zv)(-A+U"]$)#8
MM5(*L#>NHLL1M71B8J$>$6]H^VQ!)31A8A(zv)?0$>RL6A(! L:Y!8Q`.S(zv)``,`
M$! !`````P`1$ $````#`( 0_____T `!S `^1I52FF^`4 `"# `^1I52FF^
M`0L``( (( 8``````, ```````!&``````.%`````````P`"(zv) (zv)(zv)!(zv)``````
MP ```````$8`````$(4````````#``6 "" &``````# ````````1(zv)````!2
MA0``\ X``!X`)8 (( 8``````, ```````!&`````%2%```!````! ```#(zv)N
M, `#`": "" &``````# ````````1(zv)`````!A0````````L`+X (( 8`````
M`, ```````!&``````Z%`````````P`P(zv) (zv)(zv)!(zv)``````P ```````$8`````
M$84````````#`#* "" &``````# ````````1(zv)`````8A0```````!X`08 (
M( 8``````, ```````!&`````#:%```!`````0`````````>`$* "" &````
M``# ````````1(zv)`````WA0```0````$`````````'(zv)!#(zv) (zv)(zv)!(zv)``````P ``
M`````$8`````.(4```$````!`````````!X`/0`!````!0```%)%.B `````
*`P`--/TW``#R8H4`
`
end


Vypocet

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:05:52

Zkus nejdrive nasobit: Trunc((960*15)/100).
Je to blbe, kdyz vlastni procesor popira bazalni pravidla matematickych
operaci. Predstava,
ze bych mel u kazdeho vypoctu premyslet, jak to zaonacit, aby to pocitalo
dobre, mne , uprimne receno privadi do vyvrtek.[Viktor] To se neda nic delat, vzdycky, kdyz pouzivas vypocty v pohyblive
carce a chces je mi jiste a stabilni, tak to bohuzel delat musis. Viz
nejake skriptum "numericka matematika", zpravidla hned v uvodu. Je to bida.

begin 600 WINMAIL.DAT
M>)\^(C<*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`,````4D4Z
M(%9Y<&]C970`VP,!!8 #``X```#/!P,`" `+``4`- `!`"8!`2" `P`.````
MSP<#``(zv)`"P`$`"(zv)``0`9`0$)(zv) $`(0```$$Q0T$Y,30X,C9$-40R,3$Y,T$Y
M,# R,$%&,T)$.3%#`!H'`0.0!(zv)!\!0``(0````L``(zv)`!````"P`C```````#
M`"8```````L`*0```````P`N```````#`#8``````$ `.0`(zv)!)L_2VF^`1X`
M< `!````# ```%)%.B!6>7!O8V5T``(!<0`!````%(zv)````&^:4L_EDB1RJ+5
M)A'2DZD`(*\[V1P``!X`'(zv)P!````!0```%--5% `````'(zv)`?# $````6````
M=FEK=&]R+FQO<W1A:T!C:&UI+F-Z`````P`&$/\?*:<#``<0C $``!X`"! !
M````90```%I+55-.14I$4DE614Y!4T]"250Z5%)53D,H*#DV,"HQ-2DO,3 P
M*4I%5$]"3$)%+$M$65I63$%35$Y)4%)/0T533U)03U!)4D%"05I!3$Y)4%)!
M5DE$3$%-051%34%424-+64,``````(zv)$)$ $```!K`(zv)``9P(``/L"``!,6D9U
M2244>W<`"(zv)$#`?<(zv)`J0#XP(`8P)H"L!S970R,SC5```J`N%A!X (zv)!Q,"(zv)/$'
M$R!#10*#`% "\(zv)]78# (zv)5&%H`W$"(zv)'T3"H (R" ["6\R-34S`H *(zv)75C`% +
M`VQI##,V`4 +8&YG,3"L,CD*H -(zv)= 60= NF$"!::W4$(&YE:AID!1!V$) 0
M8'-O8(zv)AI=#H2\')U;F,(*"(zv)Y%L J,34I8B\7,# I+(zv)JB"H!*$1"0=&\(zv)`F!B
M92R (&MD>7H(zv)=(zv)M(zv)U'-T`P`(zv)%X%C!Y %L4!P;W!I<F$;X&&&>(zv)= '/-A=FED
M"V .( # %[ ?,6EC:WD=#W (zv)'< $D #0:2X(zv)3E )<1S0'L!A+!LT>IT0D&(?
MT(zv)> `R (zv)=1Q [QXP`0`3(!R0>1VP%] B<&,7(zv)!](zv)>7-L#\ <,&K\86L;LAY
M`B (zv)4201`:"^>1NR(S$9L = &]!D&9"K"7 <,&T8T" <,'47(zv)&\'<";1"7 =
M4&XEH1D182YD'0`F4",!=(zv)`(zv)96M[&R4I2V,`00PR%X42X%M(5FEK&\!R70,P
M8IT!0&D2X ,P%O0S,Q'1;Q+P&] /L!C!9!X``P!C[R9 (C ?0!PP=B*P'] ?
MP/,<-1VP=7HH,00(zv)(Q0E<+)V':%H>0)(zv)&2)C"L!W'5 E0#%(zv):!U1)# 0D&W]
M'0!J! `7L#'!(.$9H!YA[QPP`9 D8P;(zv):"_ (C$N4_\?(!B(zv)! `(zv)(zv)"N0'( 8
MT210"1"0<VL%$G5M("*^;C:(zv)!G$?L!\8(I B'#":>AZG:"W!,*%U=(zv)1P[G4(zv)
M(zv)!N5'N!A&R J<!;?%Q?C&T,3(zv)0`\H `#`! 0``````,`$1 !`````P" $/__
M__] ``<P0(VN%$MIO(zv)% ``(zv)P0(VN%$MIO(zv)$+``" "" &``````# ````````
M1(zv)`````#A0````````,``H (( 8``````, ```````!&`````!"%````````
M`P`%(zv) (zv)(zv)!(zv)``````P ```````$8`````4H4``/ .```>`"6 "" &``````#
M````````1(zv)````!4A0```0````0````X+C ``P`F(zv) (zv)(zv)!(zv)``````P ``````
M`$8``````84````````+`"^ "" &``````# ````````1(zv)`````.A0``````
M``,`,( (( 8``````, ```````!&`````!&%`````````P`R(zv) (zv)(zv)!(zv)``````
MP ```````$8`````&(4````````>`$& "" &``````# ````````1(zv)`````V
MA0```0````$`````````'(zv)!"(zv) (zv)(zv)!(zv)``````P ```````$8`````-X4```$`
M```!`````````!X`0X (( 8``````, ```````!&`````#B%```!`````0``
C```````>`#T``0````4```!213H(zv)``````,`#33]-P``F22%
`
end


elementarny problem s C/S

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 8.3.1999 11:09:17

Mirun wrote:

> delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl by mi nekdo
> uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
> (nemyslim tim aby jste mi vysvetlovali teorii a proc se to dela, ale chci
> znat Vas konkretni pripad v praxi, ktery nema reseni bez pouziti uzamceni)

Mno, delal jsem dispecersky program, kde jeden zaznam mohl byt
otevreny delsi dobu (dispecer se vyptaval klienta a doplnoval udaje).
Potom vetu ulozil, ale mohl se k ni pozdeji nekolikrat vratit pri
doplnovani novych udaju. Jenze k teze vete se mohl vratit i jiny
dispecer. Tam nelze pripustit, aby jiny dispecer sebral jinemu
dispecerovi vetu v okamziku, kdy je veta editovana. Takze je tam
nutno vyresit stav, kdyz je veta otevrena, a ostatnim se vrati hlaska
(kdyz ji budou chtit otevrit pro zmeny), ze nemaji sanci. Neresil
jsem to zamkem na vete (uz proto, ze s vetou souvisely dalsi
zaznamy v dalsich tabulkach a take proto, ze to bylo na SQL), ale
prave nastavenim priznaku v zaznamu.

Tam ovsem z podstaty provozu nemohlo dojit k tomu, ze by baba
nechala vetu otevrenou a sla si vyrizovat sve problemy na zachod a
do kantyny. :-)


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 11:10:32

> Puvodni zprava, kterou napsal Polak Jiri dne 8 Mar 99,:
>
> > > > To je podle me neresitelne (u vetsiny aplikaci).
> > >
> > > To ale podle meho nazoru rozhodne neni pravda.
> >
> > Je to pravda.
> > Co udelas, kdyz se prihlasim nejakym query executorem
> > a udelam update na zaznam, ktery by mel byt jinak zamcen?
>
> Neudelam nic, ale naprogramuji to tak, aby nemusel byt zamcen.
> Je mozne, ze v urcitem pripade danou situaci vyresis zamkem
> jednoduseji, je dokonce mozne, ze v urcitem pripade se bez
> zamku neobejdes. Ale rozhodne se zde nejedna o vetsinu
> aplikaci.

Tady je podle mne chyba pouzivat obecny termin 'vetsina aplikaci'.
Pritom ja treba znam jenom moje aplikace a nemam predstavu
o tom, co delaji ostatni. Ja jsem nepritakaval na vetsinu aplikaci,
ale na vetsinu aplikaci, ktere znam.

Aby byla zabezpecena integrita, maji nase aplikace v drtive vetsine
vsechny tabulky trvale bez prav. Veskere jejich updaty, tzn. davkove akce,
poeditacni update atp. provadi ulozene procedury a uzivatelum jsou
pridelovana prava pouzivat ty procedury.
Takze ty tabulky jsou vsechny de facto zamceny pro vsechny uzivatele.
Odpovida to Tvym pozadavkum na bezzamkovou aplikaci? Zadny zaznam
se nikdy nezamyka.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

MDI Aplikace

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:11:07

No a co odchytavat WM_PAINT o toho okna nebo WM_ERASEBKGND ?

Viktor

Kdysi jsem to zkousel a vzdal, protoze se to urputne branilo.

Rony
/*********************/
GREISSLER(zv)CBNET.CZ
Prerov
/*********************/

> -----P�vodn� zpr�va-----
> Od: Radek KALA [SMTP:DELPHI(zv)betacontrol(tec)cz]
> Odesl�no: 4. b�ezna 1999 14:10
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: MDI Aplikace
>
> Hi,
>
> Potreboval bych poradit, zda nahodou nekdo nevite jak na pracovni
> plochu hlavniho okna MDI aplikace nakreslit doprostred nejaky
> obrazek.
> Zkousel jsem nastavit Bruch, ale to nefunguje u MDI,
> potom jsem zkousel kreslit normalne pomoci canvas.moveto .... a
> to u MDI taky nefunguje
> No a nakonec jsem to vyresil tak, ze jsem tam placnul panel coz
> bylo zdanlive v poradku, ale ten panel byl jakoby "stayOnTop" a
> vsechny MDIChild okna byly pod nim.
>
> Prosim poradte, pokud to teda vlastne jde.
>

begin 600 WINMAIL.DAT
M>)\^((zv)H*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`1````4D4Z
M($U$22!!<&QI:V%C90`%!0$%(zv) ,`#(zv)```,\'`P`(``L`"P`'``$`_P`!(( #
M``X```#/!P,`" `+``H`)P`!`!X!`0F `0`A````0S=#03DQ-#(zv)R-D0U1#(Q
M,3DS03DP,#(P048S0D0Y,4,`((zv)<!`Y &`+ &```A````"P`"``$````+`",`
M``````,`)(zv)``````"P`I```````#`"X```````,`-(zv)``````0 `Y`'#.(zv)OM+
M:;X!'(zv)!P``$````1````4D4Z($U$22!!<&QI:V%C90`````"`7$``0```!8`
M```!OFE+^WY(D<K(U281TI.I`""O.]D<```>`!X,`0````4```!33510````
M`!X`'PP!````%(zv)```'9I:W1O<BYL;W-T86M 8VAM:2YC>(zv)````,`!A ZL*(zv)6
M`P`'$+T"```>``(zv)0`0```&4```!.3T%#3T]$0TA95$%6051735!!24Y43U1/
M2$]/2TY!3D5"3U=-15)!4T5"2T=.1#]624M43U)+1%E324I314U43UI+3U53
M14Q!5EI$04PL4%)/5$]:15-%5$]54E!55$Y%0E)!``````(!"1 !````F ,`
M`)0#```=!0``3%I&==7U?4<W``H!`P'W( *G`(zv)!C: $*P'-E=# (zv)5&$^: -Q
M`H,`4 /4#S<R,ZHX```J`N%A!X (zv)!Q.C`H '$R!#10* ?0J B0C((#L);S(U
M-0* &0J!=6,`4 L#;&DS&C8!0&,`00M(zv);F<Q&# S,PNF![!O(&%:( 6(zv)( 1P
M#U!Y`9!V`F$%0%=-7U!!2<1.5!BP('1O$ `8L&)K$B (zv);F4&X!EB10!205-%
M0DM'3CA$(#\*H(zv)J$"H!6:9IK&B!R' 47-#(Y$'+7'!06\ % < -(zv)= 60!4!(
M2V1Y`) (zv):(zv)^0;?$:$2!Z:PA(zv)#Y #(!AP2'9Z9 = +" >\F\>>A)0#Y (zv)$(zv)AP
M<'5T,1K (&)R`' #$&\NDQP*" !N>1P$+RHDOP4D\2\<!$=214E3!%-,&T!
M0T).1=!4+D-:' 10"7 #8(YV)$\E7QQ5/B M*P+ 4%PG9CEV!' +D-XG"8 (zv)
M0![P*^$Q&3 K`[$JAD]D.(zv)R"!_!A`0`":Q](zv)04Q!(%M3`$U44#I$14Q0\$A)
M0&(/H #0`B$#8.!L+F-Z72T8!Y )4,DL<6YO+;0T+B*P*V'(.&5Z&I$Q.3+P
M,M"L-#H7<"J&2P-P=2VT`0$`;'!H:2UL0'AF=V0P02J&*U(R(zv)&2.;2OA'T M
MM$U$21)(zv)-PM0'- `T&4JABJ&2&GZ+#(zv).4!\0"7 &X!DP`R \8GD/4"%0!; N
M(&ET;R% (0$:L _Q9 A(zv)&K%KFSQ &K%V.X 24&IA+E!W&I$>\"_!=(zv),`.'<+
M4&][#U \8&(zv)+8#X1&D8W0F%[-Y4[\6L)<#$P.X TD&^]'O%S.E$L$!K /5%Y
M.'>V;R+!(;!K,B JAEH(zv)99\?TQ((zv)0> 9($%A0G(6`)YH(4 '0"'S&L!F=1=0
M_'5J$E \8#=!.2<[,!H(zv)7R `'],(zv)5D$6,9!R`,!LUR*1.S $8&,?L&,`<!DP
MM',N!&!V#Z 84"Y+D?\882J&(A(W,P&00H%&ARJ&GQA#0/$"( 60'\=V>4$A
M_P,131$[H3TQ'^,2,#[!`-!\;G4#( JP&L #( 6(zv)>N\X=SK(zv)"0`[LFX6D$M
M(.#Y.R1K=47U"?!1Q5+Q/4(+0S!"D")%,7E/;E3U0: B2]EV#Y /4"0(zv)-S+Z
M0S3(zv);"P0&G-2\4*0.S#_0B$'<",U.9E!P0=P.R0?('LA01IP=2P0("$?(#O1
M=O<+8$'(zv)(I%J`0!9G1P$$X$"`%[ `P`0$ `````#`!$0`(zv)````,`(zv)!#_____
M0 `','"YK>I+:;X!0 `(,'"YK>I+:;X!"P``(zv) (zv)(zv)!(zv)``````P ```````$8`
M`````X4````````#``* "" &``````# ````````1(zv)`````0A0````````,`
M!8 (( 8``````, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``````P ``
M`````$8`````5(4```$````$````."XP``,`)H (( 8``````, ```````!&
M``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````#H4````````#
M`#" "" &``````# ````````1(zv)`````1A0````````,`,H (( 8``````, `
M``````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ```````$8`````-H4`
M``$````!`````````!X`0H (( 8``````, ```````!&`````#>%```!````
M`0`````````>`$. "" &``````# ````````1(zv)`````XA0```0````$`````
A````'(zv)`]``$````%````4D4Z( `````#``TT_3<``'F+
`
end


Vypocet

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:13:18

Presnost, to je o necem jinem. Ale pokud se toto deje na 90% pocitacu
spravne a na zbylych 10% spatne, tak to asi neni chyba presnosti vysledku
ci mezivysledku.

Kdyz se dela databazova aplikace, kdy na presnosti vysledku velmi zalezi,
tak to dokaze celkem neprijemne zamichat kartami.
Martin


[Viktor] Ale ono to neni "spatne" a "spravne". Spatne muze byt nanejvys
to, ze pouzivas vypocty v plovouci carce tam, kde pocitas treba s penezi.
Tam je treba pouzit napr. racionalni cisla, tj. vyjadrit vsechna cisla ve
forme zlomku a tak je i udrzovat v databazi. Nezabijejte me, ja vim, ze
existuji i jina reseni.

begin 600 WINMAIL.DAT
M>)\^(A0*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`,````4D4Z
M(%9Y<&]C970`VP,!!8 #``X```#/!P,`" `+``T`$(zv)`!``P!`2" `P`.````
MSP<#``(zv)`"P`+`!X``0`6`0$)(zv) $`(0```$-&0T$Y,30X,C9$-40R,3$Y,T$Y
M,# R,$%&,T)$.3%#`#$'`0.0!(zv)#4!0``(0````L``(zv)`!````"P`C```````#
M`"8```````L`*0```````P`N```````#`#8``````$ `.0! P[I)3&F^`1X`
M< `!````# ```%)%.B!6>7!O8V5T``(!<0`!````%(zv)````&^:4Q)M$B1RM#5
M)A'2DZD`(*\[V1P``!X`'(zv)P!````!0```%--5% `````'(zv)`?# $````6````
M=FEK=&]R+FQO<W1A:T!C:&UI+F-Z`````P`&$%M;E!D#``<0[(zv)$``!X`"! !
M````90```%!215-.3U-4+%1/2D5/3D5#14U*24Y%34%,15!/2U5$4T543U1/
M1$5*14Y!.3 E4$]#251!0U534%)!5DY%04Y!6D)93%E#2#$P)5-0051.12Q4
M04M43T%324Y%3DE#2%E"05 ``````(zv)$)$ $```#"`(zv)``O(zv)(``*$#``!,6D9U
M^6%T&W<`"(zv)$#`?<(zv)`J0#XP(`8P)H"L!S970R,SC5```J`N%A!X (zv)!Q,"(zv)/$'
M$R!#10*#`% "\(zv)]78# (zv)5&%H`W$"(zv)'T3"H (R" ["6\R-34S`H *(zv)75C`% +
M`VQI##,V`4 +8&YG,3"L,CD*H -(zv)= 60= NF!"!0"7!S;F]S=, L('1O(&H0
MD!DP<FX%D&5M&4 +(zv)!G0+(zv)40H&P0D'!O:W5D?B /L!D1&2$!`!E1$& (zv)2#DP
M)1JA8VD!D&.6=0KC"H!S%X!A=AF(zv)!B ;\!OA>F)Y;'F=#W (zv)%S <,!U 8709
MH.D9`6%K&1)A`) 9D0,`\B /<'EB&_ 7(zv)!BD'^#H=GES&H!D&M <U1QPTB '
M(zv)'II(58N'.0<Y/!+9'EZ&P(!``M(zv)&X!#'O !H&%Z;W8;\&'9"U!I:P#0'R%K
M)! ;TJL(zv)OQS =B20;1_(zv)>(zv)= [R*!&0`<Y!]59!K )2 0D+D9P&QK&=$9H!>
M:1E0_FT=D2(zv)(zv))_ /<05 )< `(/\K$2,V#),LE 70*Z$+(zv)2-9/2-%8P!!##(7
MA1+(zv)6U93); 9(')=`S!B`4!IYQ+(zv)`S 6]#,S$=$:8P((zv)UQDP&2$(zv)`R(>U"(=
ML3+!M1UC(AI04Q[C(F!U*;'O'B %0!!(zv)&:!J(5$9$1D`?RFQ&K TH"*(zv)'\ A
M01Q1=&TF0'8:H D`=(zv)A(zv)(D%C]PK &< ?06TF`AJ2''(UD?<)<""!!"!P"? B
M(zv)1I0$P#_&>$;(3EC-B,U`A> &E =8'\<< ((zv)!T (zv)((zv)0`"V 9`6IC&E A4&IA
M9 40!4!V7P^P#W ;X3RC)[$(zv)`A!R]1"!>(zv)D`;2&Q&_ ?4AE1^Q_(zv)&N!R)3(]
MP23&.B$'P/4H(&(JD6H7L")A&0`]<"<A0 =P-=-E> 0`='7_&(zv)! 01H!&_ 8
MD2 1(S NT"\6WQ?C'/,3(zv)0!'`````P`0$ `````#`!$0`0````,`(zv)!#_____
M0 `',.!1'0E,:;X!0 `(,.!1'0E,:;X!"P``(zv) (zv)(zv)!(zv)``````P ```````$8`
M`````X4````````#``* "" &``````# ````````1(zv)`````0A0````````,`
M!8 (( 8``````, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``````P ``
M`````$8`````5(4```$````$````."XP``,`)H (( 8``````, ```````!&
M``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````#H4````````#
M`#" "" &``````# ````````1(zv)`````1A0````````,`,H (( 8``````, `
M``````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ```````$8`````-H4`
M``$````!`````````!X`0H (( 8``````, ```````!&`````#>%```!````
M`0`````````>`$. "" &``````# ````````1(zv)`````XA0```0````$`````
A````'(zv)`]``$````%````4D4Z( `````#``TT_3<```)'
`
end


POP server

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:14:28

Jo. Co chces vedet? V zasade staci precist si RFC o POP3 a dokumentaci k WINSOCK. Viktor

Ahoj vsem,

Mate nekdo zkusenosti s programovanim (jednoducheho) POP serveru?

begin 600 WINMAIL.DAT
M>)\^(AT*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`/````4D4Z
M(%!/4"!S97)V97(`EP0!!8 #``X```#/!P,`" `+``X`' `!`!<!`2" `P`.
M````SP<#``(zv)`"P`-`#(``0`L`0$)(zv) $`(0```$0X0T$Y,30X,C9$-40R,3$Y
M,T$Y,# R,$%&,T)$.3%#`"0'`0.0!(zv)!(zv)! ``(0````L``(zv)`!````"P`C````
M```#`"8```````L`*0```````P`N```````#`#8``````$ `.0! X39S3&F^
M`1X`< `!````#P```%)%.B!03U (zv)<V5R=F5R```"`7$``0```!8````!OFE,
M<S)(D<K9U281TI.I`""O.]D<```>`!X,`0````4```!33510`````!X`'PP!
M````%(zv)```'9I:W1O<BYL;W-T86M 8VAM:2YC>(zv)````,`!A#P%;R9`P`'$(D`
M```>``(zv)0`0```&4```!*3T-/0TA#15-6141%5#]66D%3041%4U1!0TE04D5#
M25-44TE21D-/4$]0,T%$3TM5345.5$%#24M724Y33T-+5DE+5$]204A/2E93
M14TL34%414Y%2T1/6DM54T5.3U-425-0``````(!"1 !````2P$``$<!``"2
M`0``3%I&=8VWX_\W``H!`P'W( *G`(zv)!C: $*P'-E=# (zv)5&$^: -Q`H,`4 /4
M#S<R,ZHX```J`N%A!X (zv)!Q.C`H '$R!#10* ?0J B0C((#L);S(U-0* &0J!
M=6,`4 L#;&DS&C8!0&,`00M(zv);F<Q"# S,PNF($IO+JD3,&\(zv)#U!C!Y%V"8 !
M#Z _(%8(zv)>F%S$F$!`"!S`9!C:2 ^< EP&D :$!H`&E!21(zv)1#(!B04$]0,R#
M82!D;VMU!X ", $:,FL(zv)5TE.4T^$0TL88%9I:W0%L/D7)3(Y$'(*L0J!%O !
M0*D:<&]T!9!T'H1!$ !F:AD`#Y!M+!Z%'I--PF$?8"!N96L;\!F0\QP0#Y!N
M;QH0&E $(!\Q,PG $C!O=(zv)!P!W (zv)*)9J"8 B8&06`&AE$ `>*1MR&(zv)`$D!D0
M<G4_"QZ$$X$`)A ``P`0$ `````#`!$0``````,`(zv)!#_____0 `','!W?5Q,
M:;X!0 `(,'!W?5Q,:;X!"P``(zv) (zv)(zv)!(zv)``````P ```````$8``````X4`````
M```#``* "" &``````# ````````1(zv)`````0A0````````,`!8 (( 8`````
M`, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``````P ```````$8`````
M5(4```$````$````."XP``,`)H (( 8``````, ```````!&``````&%````
M````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````#H4````````#`#" "" &````
M``# ````````1(zv)`````1A0````````,`,H (( 8``````, ```````!&````
M`!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ```````$8`````-H4```$````!````
M`````!X`0H (( 8``````, ```````!&`````#>%```!`````0`````````>
M`$. "" &``````# ````````1(zv)`````XA0```0````$`````````'(zv)`]``$`
8```%````4D4Z( `````#``TT_3<``&3%
`
end


POP server

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:15:10

Ty RFC ti muzu poslat, zrovna jsem ten server totiz dodelal. Ale ten ti
poslat nemuzu. Nicmene trvalo mi to nececly tyden, tak to zadna velka prace
neni.

Viktor

Ahoj vsem,

Mate nekdo zkusenosti s programovanim (jednoducheho) POP serveru?

begin 600 WINMAIL.DAT
M>)\^((zv)L*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`/````4D4Z
M(%!/4"!S97)V97(`EP0!!8 #``X```#/!P,`" `+``\`"(zv)`!``8!`2" `P`.
M````SP<#``(zv)`"P`.`!\``0`:`0$)(zv) $`(0```$1$0T$Y,30X,C9$-40R,3$Y
M,T$Y,# R,$%&,T)$.3%#`# '`0.0!(zv)"<! ``(0````L``(zv)`!````"P`C````
M```#`"8```````L`*0```````P`N```````#`#8``````$ `.0`(zv)O"N,3&F^
M`1X`< `!````#P```%)%.B!03U (zv)<V5R=F5R```"`7$``0```!8````!OFE,
MC"A(D<K>U281TI.I`""O.]D<```>`!X,`0````4```!33510`````!X`'PP!
M````%(zv)```'9I:W1O<BYL;W-T86M 8VAM:2YC>(zv)````,`!A L603[`P`'$,0`
M```>``(zv)0`0```&4```!465)&0U1)355:55!/4TQ!5"Q:4D]63D%*4T5-5$5.
M4T525D525$]425I$3T1%3$%,04Q%5$5.5$E03U-,051.14U56E5.24--14Y%
M5%)604Q/34E43TY%0T5#3%E4641%3BQ4``````(!"1 !````AP$``(,!``#E
M`0``3%I&=;*LMQ4W``H!`P'W( *G`(zv)!C: $*P'-E=# (zv)5&$^: -Q`H,`4 /4
M#S<R,ZHX```J`N%A!X (zv)!Q.C`H '$R!#10* ?0J B0C((#L);S(U-0* &0J!
M=6,`4 L#;&DS&C8!0&,`00M(zv);F<Q6# S,PNF#]!Y!_!&`$,(zv)=&D(zv);75Z('4(zv)
M<&]S"V!T+)0(zv)>(zv)-(zv)=A((zv)(&H/D)9M&* )\" /D')V!)#%&*!O&+!Z(&0$<0M(zv)
M]&PN$F!L$E :<ABQ&30<(&X:0!CQ&_!.:6/?!X =,!B(zv)&M '0&\8T!C *QL(zv)
M'2%C!9!L&%!T>2T!`&X9D &0:Q[">F$F9!GQ&N!L:QH`<'+O`- 24!TP`P`N
M"J(*A J *%9I:QL(zv)<A<E,CE_$'(AY!;P`4 A(!LP!9!TM2'401 `:B"P&C$L
M(=HV31EP(6)K&X 9H&MU_0^0;AE &+$$("1A"< 2,,<9T !P!W (zv)*&H)(zv)">0
M$F06`&AE$ `I(%!D3U :I74_(=03(zv)0`!*T ``P`0$ `````#`!$0``````,`
M(zv)!#_____0 `',.#4!75,:;X!0 `(,.#4!75,:;X!"P``(zv) (zv)(zv)!(zv)``````P ``
M`````$8``````X4````````#``* "" &``````# ````````1(zv)`````0A0``
M``````,`!8 (( 8``````, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``
M````P ```````$8`````5(4```$````$````."XP``,`)H (( 8``````, `
M``````!&``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````#H4`
M```````#`#" "" &``````# ````````1(zv)`````1A0````````,`,H (( 8`
M`````, ```````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ```````$8`
M````-H4```$````!`````````!X`0H (( 8``````, ```````!&`````#>%
M```!`````0`````````>`$. "" &``````# ````````1(zv)`````XA0```0``
G``$`````````'(zv)`]``$````%````4D4Z( `````#``TT_3<``!OA
`
end


Vypocet

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:21:41

Pokud budete ke vsem nasobenim / delenim pouzivat racionalni cisla s
nekonecnymi integery v citateli i jmenovateli, k zadnym nepresnostem nikdy
nemuze dojit. Problem je v tom, kde je vzit. Ve Smalltalku a myslim i Jave
jsou soucasti systemovych knihoven. Pro C++ se daji stahnout z netu. Ale
pro Delphi, to vazne nevim...

Viktor

________ puvodni zprava ____________________

> To prece neni nijak zvlastni. Proste ve svete pocitacu je
> omezena presnost
> vysledku a mezivysledku, zrovna tak jako je omezena velikost
> cisel. Viz.
> odpoved p. Polaka.
>
> A premyslet se nad tim taky moc nemusi. Staci si zazit pravidlo, ze je
> potreba nejdriv cislo zvetsovat a pak teprve delit. Samozrejme za
> predpokladu, ze ti behem vypoctu nepretece.
>

Tak jsem to rozhodne nemyslel, zadne pravidlo neexistuje.
V kazde situaci je treba zvazit pro a proti.
Tady nahodou bylo lepsi nejdriv nasobit a potom delit,
protoze v tomto konkretnim pripade to vedlo
k minimalizaci zaokrouhlovaci chyby v mezivysledku.
Muzu ale dat priklad, kde bude vhodnejsi nejdrive delit.
Znamena to, ze v kazde situaci se musi programator rozhodnout
na zaklade dobreho uvazeni.

Ten priklad:

12345678987654 * 12345678978999885 / 5555555
Tady bychom ztraceli presnost tim, ze by se pocet platnych
cislic po nasobeni nevesel do realneho typu (podle helpu
ma extend 19-20 cislic) a presnejsi bude to nejdriv
podelit a potom az vynasobit.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

begin 600 WINMAIL.DAT
M>)\^(BH*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`,````4D4Z
M(%9Y<&]C970`VP,!!8 #``X```#/!P,`" `+`!4`*0`!`"L!`2" `P`.````
MSP<#``(zv)`"P`3`!(zv)``0`8`0$)(zv) $`(0```$9&0T$Y,30X,C9$-40R,3$Y,T$Y
M,# R,$%&,T)$.3%#`#0'`0.0!(zv)"0" ``(0````L``(zv)`!````"P`C```````#
M`"8```````L`*0```````P`N```````#`#8``````$ `.0"(zv)$29U36F^`1X`
M< `!````# ```%)%.B!6>7!O8V5T``(!<0`!````%(zv)````&^:4UU(4B1RP#5
M)A'2DZD`(*\[V1P``!X`'(zv)P!````!0```%--5% `````'(zv)`?# $````6````
M=FEK=&]R+FQO<W1A:T!C:&UI+F-Z`````P`&$ 8^,W,#``<0WP0``!X`"! !
M````90```%!/2U5$0E5$151%2T564T5-3D%33T)%3DE-+T1%3$5.24U03U5:
M259!5%)!0TE/3D%,3DE#25-,05-.14M/3D5#3EE-24E.5$5'15)95D-)5$%4
M14Q)24I-14Y/5D%414Q)+$L``````(zv)$)$ $```!^!0``>(zv)4``-D'``!,6D9U
M78>G0#<`"(zv)$#`?<(zv)`J<"`&-H`0K <V5T,"!483YH`W$"(zv)P!0`]0/-S(SJC(zv)`
M`"H"X6$'(zv)" '$Z,"(zv) <3($-%`H!]"H")",(zv)(zv).PEO,C4U`H 9"H%U8P!0"P-L
M:3,:-(zv)% 8P!!"V!N9S$(,#,S"Z8(zv)4&]K<'5D(&(8< ^(zv)$E!K)1)0=(zv)^0;2 2
M('-O1F()\ =P("\(zv)`0!LA1GC< A(zv)>FEV805 NG(`T&D"( = `P`(zv)&X"*<PM(zv)
M( 0(zv);F5K`B"]!9!N!L ;\ N &.!G!)!^>1DP' $!D!C(zv)%I =0""R:(zv)> ;F\;
M(1Y1+!D`L"!Z860=`1R!< EP&G,>X',8X!EQ:6MD&QW ')!M&O 24&1O:KT>
M$"X8, -(zv)`F 986H9(?P(zv)= -P'V$!`"*3&P`A\4I6$E!3`,!L; &0;.488" <
M4&UY'# :`1OP>$IA=B-A&; DT"8!8W49H'0;\',E(""A'O!YWP]0&0`#`! `
M)<!N((zv),3,.PK*QQ(zv)(9%A(= <8 &0*F(zv)>X'4%0'H<(zv)71U72(`01IP&L H040:
M8'#.:!]1(O 9,&%Z') <(zv)7IV!W N+" *H(zv)J$"H!6:R#P(O!R+%I?+C4:P'7V
M=(zv)1P&^%Z(# EL!Q0+C;S+^H7)3(Y$'(L9!;P`4#3*H$8X&-T+%0^#] H4)T(zv)
M,6,KLAOA`P!J81^!_G8+8""0`P`B`R"1&3 24-YS)< 8X1K0'(zv))C)- BH?LR
MU(zv)-P92& $B S<B!C,M;_)T <, F ),0WD!L0.04?8/IZ`V!V-\$!D!^ -%$H
M4/\BH3=V)< 6D!RP() VYQP1LQI(zv)(_%I>BQ%-U%D&M"[)< 8(zv)' B`0;P-&!A
M/>?],M9!,W(E$(zv)^(zv)**(2(!B WR:(zv)&7 Z\1W !&!C(3,`D/TB`%,V<2:Q+R$K
M(zv)!X0*G'Y);!I9 D`.F$C8C+6&M":= EP8AQ0')!J9 40_QWB'# H4#20#Z 9
ML!LB-]'_-&$8X" P)<$:42'B!A $8'\Z(zv)$8`$D$?H$3W"7$:T&N]"V!D.E(2
M4":A&=!H&6'?)T V,2H`( 0RD64_C2Q4WP_(zv).Q$94BM!`V!Z$ `?P/LKLD#C
M;#IA'[$J8D0D'(&\97(zv)$`"H`(J L1589`/\K(zv)"-1`) J`$,R(J%%E#20_T.U
M*% WTC* -0!-EB$2#_&S(; DT&)Y1J$:<'!#<7]%]AF30]$WT3* `W!(-"R_
M+%0R8DC(zv)(K4K01RQ:TQ!_QJ3!1$?L$KA*U$)(zv) D`+%3_'X =(!GQ!T ]P$,R
M'Z 84'D#8'5H"0`;($-!#U!Y[U70'=$YJBQ%31KP)-$J4?\HX$/B(/!*<2,D
M&*(9,$[C[R7P5F=()BQ46A(B.L)$=/\=X%(,*+%"LBIR"< 2,!LP_P6Q3K4I
M(zv)2Q4-\$?H$IB(9+V8(zv)EP$ `(zv)+M K(zv)!GA+$M65 GP8"8Z+%HQ$: T`#4V-S(zv)Y
M.#<VX#4T("H(zv):V=KP6T(zv)^#(zv)X-1HA%9!MLU2I5=#[#U!7T7I%D #0'E((zv)-D&R
M_T2#7>$HL38Q02$+433(zv))U'[+%0<$FE"<!K0&8<KP(zv)>0MQI(zv)(:$;4&4;P6AB
M=$N(zv)_230*!K01% 24$M0*N ,<%LL8P# (%#P&.!N&( Q[#DM&!%RA"E4$R!1
M8:/_80,K047U6&4$<4AA5W<K(zv)+<XX5<%+$M*"'!)=2U])YU\)6D%$#\4+%1E
M+0# :0,0.FI\D2X:T#]!0.,98']1+F-Z+%4!D1Z(zv)VWXQ?]5T!: `(zv)'4D(zv)("7
M^G=%L""#8&J0%O*"<'6(zv)X0) <#HO+P-0">"#,<N D#9 ;X"1+VI_XS(3/X)P
M,D%\[TW"2U W8&YLV1W 9V\$<!B19Q](zv)! !O).$!`$&1B+$A+%03(zv)0`!BH `
M``,`$! ``````P`1$ $````#`( 0_____T `!S"(zv);LHC36F^`4 `"#"(zv);LHC
M36F^`0L``( (( 8``````, ```````!&``````.%`````````P`"(zv) (zv)(zv)!(zv)``
M````P ```````$8`````$(4````````#``6 "" &``````# ````````1(zv)``
M``!2A0``\ X``!X`)8 (( 8``````, ```````!&`````%2%```!````! ``
M`#(zv)N, `#`": "" &``````# ````````1(zv)`````!A0````````L`+X (( 8`
M`````, ```````!&``````Z%`````````P`P(zv) (zv)(zv)!(zv)``````P ```````$8`
M````$84````````#`#* "" &``````# ````````1(zv)`````8A0```````!X`
M08 (( 8``````, ```````!&`````#:%```!`````0`````````>`$* "" &
M``````# ````````1(zv)`````WA0```0````$`````````'(zv)!#(zv) (zv)(zv)!(zv)``````
MP ```````$8`````.(4```$````!`````````!X`/0`!````!0```%)%.B `
-`````P`--/TW``"L0H4`
`
end


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 11:38:10

No fajn, mi se ty zamky taky hnusi. Ale jak to mam udelat bez nich?
Nejak jednoduse prosim, ja jsem taky takovy jednodussi.

Viktor

______________puvodni zprava___________________

>pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
>ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
krava
>a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
>zatvrdnutiu celeho systemu.
----------------------
URCITE NEDALO !!! I nekolik minut muze byt nepripustne dlouha doba!
Nevymyslejte hlouposti.

Vzdyt i muj jmenovec Jara CIMRMAN, prukopnik slepych
ulicek, prece jiz davno zjistil, ze tudy cesta opravdu nevede. Kdyz na sve
prvni CimrBazi zkousel poprve scitat pocty pivniku v Cechach, zjistil, ze
tato cesta k cili nevede, protoze zadny poradny cesky pivnik
nevydrzi byt 30 minut strizlivy! Mimochodem, to vite, ze i tenhle jeho
genialni vynalez mu ukradli? Nejakej pan Oracle nebo tak nejak se jmenoval.
Nechte si od Jary poradit a pustte zamky z hlavy.

Ale vazne.
Kdy je ktery cas kratky a kdy dlouhy. Tohle nic neresi. Nekdy je minuta
dlouho a nekdy nestaci ani pul hodiny. Vazne si nekdo mysli, ze by program
mohl fungovat na vetsim poctu stanic, kdyby tam byly takovehle zamky?
K omylu casto dochazi chybnou predstavou, ze je blokovan jen ten jediny
zaznam a ze pravdepodobnost, ze dva klienti budou chtit pracovat na jednom
zaznamu, je mala a tudiz zamky vlastne nicemu nevadi. Jenze programy
byvaji trochu slozitejsi. Vezmeme jednoduchy priklad. Mejme sklad a skladove
karty. Na sklade se udrzuje aktualni stav zasoby a pocita se prumerna cena.
Z toho duvodu se vzdy po ulozeni prijmoveho nebo vydajoveho dokladu spusti
ulozena procedura, ktera pro vsechny skladove karty pouzite na vytvorenem
dokladu vypocita aktualni stav zasob a zapise je do techto karet. Kdyz
narazi na zamek, ma moznost cekat nebo vyhlasit chybu. V prvnim pripade by
ulozeni jednoho prijmoveho dokladu mohlo trvat cele hodiny, ve druhem
pripade by to s velkou pravdepodobnosti stale hlasilo chybu. Nektere
transakce jdou proste a jednoduse napric databazi a zamky jsou zde
vylouceny.
Proc nejsou na Interbazi zamky? Nekdo to vidi jako nedostatek. Ja ne.
Pouziti zamku je prece velmi snadne, tak proc si lamat hlavu s logikou a
integritou databaze. Hodne programatoru k tomu snadno sklouzne, zejmena
tech, kteri prechazeji od souboru. V souborech to mnohdy je nutnosti,
protoze tam zcela chybi transakce, prvky integrity, trigry a pod. Casto se
divim jak nekteri programatori namisto, aby se zajimali o efektivni a mocne
prostredky databazovych stroju, tak hledaji sve oblibene zamky. Kdysi jsem
programoval ve FoxPro a bez zamku jsem neudelal ani ranu. Take mi to chvili
trvalo, tak vim o cem pisu. Ted zamky nepotrebuji k nicemu. Mozna se najdou
situace s jejich opodstatnenim. Ja nerikam, ze se nemohou nikdy pouzit, ale
rozhodne by se nemely pouzivat tam, kde se to da zaridit bez nich. To je
urcite vetsina pripadu.
Jaro.>preco preboha?
>
>pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
>ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
krava
>a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
>zatvrdnutiu celeho systemu.
>
>rw
>
>-----Original Message-----
>From: Petr Zahradnik <clexpert(zv)clexpert(tec)cz>
>To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
>Date: 6. marec 1999 18:25
>Subject: Re: elementarny problem s C/S
>
>
>Puvodni zprava, kterou napsal Richard Willmann dne 6 Mar 99,:
>
>> idealny by bol zamok s moznostou definicie hodnoty time-out po ktorej by
>> sa automaticky zrusi.
>
>No tak to je pak zamek na nic, kdyz neni na 100%. Rozhodne
>si myslim, ze je mnohem lepsi venovat tomu pri navrhu
>databaze o nekolik hodin vice, aby zadne zamky potreba
>vubec nebyly...
>
>
>S pozdravem
> Petr Zahradnik, pocitacovy expert
>
>Autorizovany dealer TurboPower Software... knihovny pro Delphi
>==============================================================
>=== Petr Zahradnik - Computer Laboratory ===
>=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
>=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
>=== mobilni telefon GSM (hotline): 0602-409601 ===
>=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
>==============================================================
>ICQ: 21215917, PGP vitano
>

Memo1


begin 600 WINMAIL.DAT
M>)\^((zv)L*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`" `+
M`"8`"(zv)`!`!T!`2" `P`.````SP<#``(zv)`"P`D`#D``0!*`0$)(zv) $`(0```#4S
M0T(Y,30X,C9$-40R,3$Y,T$Y,# R,$%&,T)$.3%#`!$'`0.0!(zv)`<#P``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0`PX9G"3VF^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YI3\*52)'+5-4F$=*3J0`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``807!'QJP,`!Q"V#0``'(zv)`($ $```!E````
M3D]&04I.+$U)4T5465I!34M95$%+64A.55-)04Q%2D%+5$]-04U51$5,051"
M15I.24-(/TY%2D%+2D5$3D]$55-%4%)/4TE-+$I!2E-%351!2UE404M/5EE*
M141.3T154U-)5(zv)`````"`0D0`0```/8+``#R"P``\Q,``$Q:1G7M(zv) -0=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* T0<3($-%`H!]
M"H (R,0(zv).PEO,C4U`H *(zv)0QU8P!0"P-L:3,V#0% 8P!!"V!N9S$P##(Y"Z8'
ML&\(zv)9F& :FXL(&UI( ^PH"!T>2!Z$'!K%X"C`9 7T6AN=0"0+A"(zv)>FP0D&H8
M$!=(zv)%I `P&T<('4!``M(zv)!4!B97KV( ,`#W _"J(*(zv) ? &0*Z:(zv)F ;(zv)1P&' 0
MD' #8/T`D&T6\!D`&/ /L!F0& /Y& %O=A> &W88(zv)1JT&K2H5FEK&4!R'HI?
M(&MX<'5V!' #`!>0'!!A_'9A(&P(zv)8QZ*%2$!0!P1=G0%D 5 /AP0%R )(zv)&G7
M&4 B`"&18A> <QR(zv)%Z#N>A!A%Y,&\" <H!D1)='F8(zv)&(zv)'*!N90;A'* $\$AH
M;W 08"!D%I SEQ9(zv)%Q 88'0:M#YU'8"<;F,E4"4C`-!I=1?RNR7"&W!J' $7
M(!!(zv)<QC0NQN1&9!P'# DD!<P>2RQ6QF1*(!Z!; #`GH8X67]&K1K(>(IA2?"
M`, E\AV(zv)?FL%D"'Q!4 <H"^Q`V!BJR50&*!4&!%M&4%S+)'W,1 L82749 =
M%I =H!A1<REV%Z!T=(zv)L(zv)*5$JT6.M&=!E*' LY74>=2TV'P,V8AJT55)#251%
M`0>P141!3$\(zv)(?4XL" XX$DGT2;1'U I)/T7`'4N`270!4 GX"3Q(4#O++ G
MX"C "0!U#X HP2>0MB$:MAV(zv);2T`&-!J+,'.:#MQ+)(>;7ID.G$7(%LU(zv)"N0
M:(zv)> &Z!V!9 (zv)#DH*P!R(zv)-_!-4DU!?DX6\!P0*?$HD#F!+!%PMGD/<!JT=130
M-,!K0,+;!9 8X6D:0#+(zv)=AN(zv)%Y#;0S ]L6P6\"X!=!FP%X#_-, LL!R(zv)*( A
MX1O )]$_P/L!`!B(zv)2S[0&D$H,3_ &K27'!!#D!<(zv)0P=P<D(F0/\AH1V &]$#
M("R01U$LT2HQ3QGQ+) DL!> <&E'<6O]*N!V$7 %D ^ #W!$04/H_QJT26$6
MD$3D&2 J,!301;7[0,(D(zv)&\N`1>(zv)&Y!)X06P/TYS1.$7T4H$&K1%P7ED7G)(
M$3IB*087,'0%$'KW%- =H#C030=P2; H< $`^QQA&4%V)5!-L2X!%R DD-YN
M/5 N$BAP&K1G"? ',?\AD1V(zv)$& 8T!I -8 9H"ZQ>3M(zv):3\'L1D!*X(#D4_]
M(>!C&-$GXBKS)^ 9`A=!_S]T!T >=0? #W LPA<(zv)!'#_/_).I2I!'* Z\BS!
M%Z0:0/L]4"'P>1Y[&,(B`"901A#_&K1&01MA3. DD%LA,% $(/TNL707T4S1
M1+$[8UT(zv),6#^;U1"&F$GT0EP&(('P&"B_U]!*3,N]3MC%I GPF"B)^#_10$J
M,"<`(9$A0 ,(zv)4L$+(zv)'UA,59>4EJ29&(943S1:?]$0R71'!$)P!!P&K0$8#U0
M_1:(zv)=160)7$Z(zv)2_Q#\ <0?])DRK(zv)10$:81;P8*$ET0&0?3)B;!U%-/ 8T1>C
M&J5+_T4P/, *0%_"&4$HT ]Q2!'?#W!K4!N(zv)*N!"T61%`2%(zv)[G5$0U]!`F!O
M'8$#D1MP_P.(zv)5!$;8F7Q&K0F-281&_)_17$ZL 1P,1 ;H"RP1$-D_R(`3. 4
MT GP-( :$!FP;S'_6E$J02'1!:!I=1MS:&4F-']O\6+B!T G$42"0T$7I';_
M"V [$QIA-7%%LEN!&* _\/\)\'+C:"-QY270((zv)!#,!=(zv)_P-(zv)#W!JD0D`2! D
MD!S &)'^5AHP!X 0(zv)1MU;N$KHG20^TYP&*!-&R 0(zv)4](zv)?Q$G`?]_PS^Q+E4*
MP!=P8F& )2S1_Q"0&;!0L#] $) 8$$2056/_;Z(7D3(A8&))H2J1%S) X;\'
M(zv) 2(zv)'* TP!!(zv)'G5:&3'_-0$;P"%A:I%>(3[!+($9H/]\\54Q*Z(_<&Q2%I!8
M(U"!_Q; B)0HT'\":I$Z\(zv)"(zv)0(zv)7?A^);T7R!"8 (<&%K$5^!_XN3, `/L ]P
M3I& 1DS(zv)(zv)3+_+($Z(%-Q::,Z<"%(zv)"7 OD7]C=8H%':"$58+O,1!RLF'_2(zv)!9
M$CM!6%%:0A:0(zv)2$/P/]&)% %0!%($2BA%Z%"DB^Q_P1(zv))E LH32Q(zv)2 Z(zv)HD3
M7.'_`)"6(zv)6[Q-9!F,!P!1W$L<?\%$8'R)="*VA<(zv)&W,U`8A)_XGV:-)844=(zv)
M&?$TPF6U%O#_20%0H#N0CZ:8Z!DR!" _P/YL2%%S#H-3G/*7(zv)C,!E^7_8H%?
M(zv)4O6(> `(zv)!(zv)00P)U,O\<$BS!=G4;PQ!(zv))/$_X#+(zv)_P&12 *58Q?1',!O,3[
M+D7O': [<86!7290?(%8HJ;B_2BA20(P!)"F`VS$8G-847]30B5 &/*(TBC0
M10$DD&O_&*! `"?1J$:.(zv)ZHD*N!?0?]"U)^1%Q(08!N03;$K`HNR_UJ2"V `
MP 5 7.)JD;!(zv):"#_'U!O,2[U"X DD G )5$JX/NEQ4812"%Q>P=,44#P3.'_
M&4!6,:\S,=%TD(Z!KW(N`/\_<B[UDV*,1((zv)B2K*V05JS_Z;A!N! \)(zv)RN+1*
ML1DSFI%W7Q0I4:"S+$;V3(zv)1KDGJ_-,&%86[Q?%*C54#"=A?1O[)&G7%1T0G
MA!1_,4-N$_\/L&-U2A!J(1D".3&WA;07_RO2%Q!N(1;P`: EX4Y"0S#W>!%:
ML24(zv)9J)Q2A(PHDFP_R?(zv)NV=1P0F %]&EMAV1N='Y4<%O:F_Q*P)408EA%R'_
M20$Q$!30&B [,1>C1B-:H1\<PKMG:#)9(zv)IV21F]X_ZBQ)P$:(JWE'-(GX!FS
M`R#_93.C09(zv)A,7%B\ADR#W!38/\4T*+669'#$2L"P.),<BQQ_P0`SF()(zv)!>5
M.J$D(zv) EP=1#_?$%8D7G3?T&6,82C$&"CTO\:M)>A(zv)Q!#`00(zv)*W$:<44Q_P1P
MK"(GX)BAK(5^X1!P1$/_I2(<X(9A1:$?4(=CCI+#(?<8T!JT`V!Z4L$[,<-4
M+Y'_&=".53!R:Y%K$H(3;C(F$O\%$%N2&B9A0BXG"' J,:ZRWVH!BX.9`C66
M0 %O'GLIA=]"TIK")_$/(zv)!JE/N'G)1__)B\G/RA/*5\J;RM_+(\MG_\NKR^_
M,,\QWS+O,_\U#^.6_')WXSPV8U>POR#?L0,(zv)FW](zv)!!!A52 W*3Y&`V$8.B!0
M#\ %P%IA:$M.XCF!/%?A>' $D'3B0/HF+F-ZXY9A8/D``1G!<&AI+6Q 9KYW
M?S#[0/H`_"WCED2L01WY`#88H # 0N$(zv),3FS_Z#_(zv)#(zv)Z$\#HI5.XT/<;<"2P
M^0!2_M'S\3^!#) ?!*!GXPE '.$$($,O4[OC/.BE4"%;C$2I0W#E(,WF$%(:
M<0L1(%?L\*[P=\Y <7"SLC9_4 K!_Z L^CKC/#X_``VP56'FD>:1_^8!%Z%P
MH)]AEB6RP(zv)W W[!_&G!TL&6R&Z!)T73(zv)$( M_TA(zv)28)?88]AZK"99(zv)CQY2'^
M8>B M/ 9\!IP7)) \!Y7_^.6%H'J(AE!KD(9$96#1H*?:N8:08(zv)"J7$5L# E
M&*#^4MHUZ*7*$6<SUZ1BXIJ1_QSA09'*$3_ 67+;\;3RZM3_\U!\L.BELO;$
M,3DV9<-34?^]LL-"3F)<1M*$[A:Q`,Q(zv)^V'B:](N', ##P!CZZ$^P/\AX8^F
M"0`?;R I^2Q"L81C[W8!QF#ZU.,\00YQ4>'DDG](zv)P0E!A3#.(zv)(P0YR"M8'?!
M)3%3;V9T=_]!',&?3.#LX.>00Y!GXR!$_#/]Z*4]*'\ICRJ?*T(zv)H"""?/?F6
M+0+ M/!E(zv)%^!($P_YL!;80TAQF$(zv))BPM3V(#AL'DD2 W-# O,8HTPR!0.)!"
M3UC_(zv)!HUPR (zv),(zv)!10# W(/Y5H-*O02\B[%$S(zv)#!N.. ;I&!44&;I,/[(zv),#0W
MZ"TU-1,P-A,(zv),P$UQA O9F%X-D<Q-C)_-)$TKR C:-#P0%5R-=4(zv)H$=332 H
MYY!T5K"%YP`I-D$V,#(M,(zv)`:.3Q0,3 /+,-<8V8,,5QEDEP(zv)<#HO+ZYW/T#[
M,/K(+SY1,#Z1_U% ("?Z+_SB,&Q#CT2?1:^1*]U)0U'^X#(Q2 "0-3DQ-S)1
M1U!34O_.0%2UXY4>]'](zv):- ^(zv).$_"GU[X !,( ```P`0$ `````#`!$0````
M``,`(zv)!#_____0 `',- ]+9=/:;X!0 `(,- ]+9=/:;X!"P``(zv) (zv)(zv)!(zv)``````
MP ```````$8``````X4````````#``* "" &``````# ````````1(zv)`````0
MA0````````,`!8 (( 8``````, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)
M!(zv)``````P ```````$8`````5(4```$````$````."XP``,`)H (( 8`````
M`, ```````!&``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````
M#H4````````#`#" "" &``````# ````````1(zv)`````1A0````````,`,H (
M( 8``````, ```````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ``````
M`$8`````-H4```$````!`````````!X`0H (( 8``````, ```````!&````
M`#>%```!`````0`````````>`$. "" &``````# ````````1(zv)`````XA0``
J`0````$`````````'(zv)`]``$````%````4D4Z( `````#``TT_3<``-DF
`
end


Vypocet

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 11:55:50


>
> [Viktor] Ale ono to neni "spatne" a "spravne". Spatne muze
> byt nanejvys to, ze pouzivas vypocty v plovouci carce tam,
> kde pocitas treba s penezi. Tam je treba pouzit napr.
> racionalni cisla, tj. vyjadrit vsechna cisla ve forme zlomku
> a tak je i udrzovat v databazi. Nezabijejte me, ja vim, ze
> existuji i jina reseni.

S penezi se rozhodne racionalni cisla pouzivat nesmi.
Penize je diskretni velicina, racionalni cisla by mela byt pouzivana
pouze pro spojite veliciny.
Pro praci s penezi je urcen typ decimal.
Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Outlook OLE

[*] LuborK(zv)tnet(tec)cz (Kolar Lubor) - 08.3.1999 11:56:12

Mam dotaz na delfiny, kteri maji zkusenosti s OLE/DDE a OutLookem. Jak
naimportovat do Outlooku nejake udaje (do adresare), kdyz chci obejit
Soubor/Import a udelat to nejak transparentne a elegantne, napr. pres
OLE nebo DDE.
Lubor bIRDIE Kolar
====================
GSM Phone: +420-603-410019
ICQ: 18587772


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 12:00:49

[Viktor] Kdyz se transakce nepovede, vrati se vse do puvodniho stavu a
skonci to chybou. Kdyz narazim na zamceny zamek, muzu udelat totez. Kde je
vlastne rozdil? Transakce mi prijdou jako zamky s jednim typem reseni
konfliktu - navratu k puvodnimu stavu a ohlaseni chyby. Nebo to tak neni?

Viktor

%%%%%%%%%% puvodni zprava %%%%%%%%%%%%%%

Netvrdil jsem nic jineho. Ale uz tim, ze tu transakci otviras,
tak zamky vytvaris, i kdyz "jenom" mimochodem. Je videt, ze
se bez zamku neobejdeme, nema cenu tvrdit, ze je to pouze
pozustatek souborovych databazi a nema cenu zamky pouzivat.
Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne s Jaroslavem
i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake zamky existovaly."
Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
mi, jak to chces jinak delat.
BTW taky nepouzivam explicitni zamykani zaznamu, uz jsem to tady psal,
a pro editace mi to pripada nevhodne. Ale tim, ze tento mechanismus
pouzivaji transakce a ja je samozrejme vyuzivam, musim s tim pocitat
a nemuzu rict, ze zamky nepouzivam (zvlast kdyz jich pri behu me procedury
vznikne a zanikne treba nekolik set tisic). A zapomenout na ne taky nemuzu,
protoze na jejich pocet ma vliv treba i tvar SQL prikazu, algoritmy
procedury atp. a mel bych se snazit jejich pocet minimalizovat.
begin 600 WINMAIL.DAT
M>)\^(C(+`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`" `,
M````,0`!`!\!`2" `P`.````SP<#``(zv)`"P`Z`"(zv)``0!/`0$)(zv) $`(0```#5$
M0T(Y,30X,C9$-40R,3$Y,T$Y,# R,$%&,T)$.3%#`"('`0.0!(zv)#D!P``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0`(zv)JO[L4FF^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YI4NSX2)'+7M4F$=*3J0`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80,(-<"P,`!Q X! ``'(zv)`($ $```!E````
M5DE+5$]22T196E-%5%)!3E-!2T-%3D503U9%1$4L5E)!5$E31593141/4%56
M3T1.24A/4U1!5E5!4TM/3D-)5$]#2%E"3U5+1%E:3D%205I)34Y!6D%-0T5.
M65I!345++$U56(zv)`````"`0D0`0```+\$``"[! ``RP8``$Q:1G7G(KP8=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* \0<3($-%`H,`
M4 +R#U=(zv),"!486(zv)#<0* ?1,*(zv) C((#L);S(U-3,"(zv) J!=6,`4 L#;&DT,S8!
M0&,`00M(zv);F<P,3 R.0PC"[4(zv)6U!6:6MT!;!=`S!B!0% :1+(zv)($MD>7HB( ^P
M('1R`'%A:X)C$)!N97!O=(zv)F D&4L('8:('1I&=("=AGA9&\(zv)<'5V'P1P`P`3
M(!G0`9!V=2!J81G0:P((zv)8QN0&, (zv)Y0]P>0;(zv)=2X9A!!(zv)&B!F>(zv)=P'M$(zv)>A!P
M&H!N$GD?(zv)F5K&S!M=7H]'3!U`0`+8 5 &,!T9?9Z'G(0D&H;P0M(zv)'/ :L-((zv)
M`V!Z9 ,0/Q+P&B=J;1N0< 40:AP(zv)'3!J]QI(zv)'# ?D6L?\ 0(zv)(? <D>$?0'1Y
M<&4?0 EP#[!U`P`(zv)'8%F%I 8L!TP+7<>T1M2'3!K'$8(zv)(zv)!SG;^YH(C$F0AX2
M>1YP!\ &X-\=T(zv)&0)\ :L ,`/PJB"H3_"H 8E!;A`4 K)Q9V(_ A47QC="L5
M%O(,,BV5$N E?R^''$8?(zv)"/P'1 =4!<E,_XS$=$O>2^"%RD9,(zv)*R+A;[+7T'
ML70;4"+1(> /L!]!;&EC(> +(zv)&43(!YP0;YL$) (zv)D!H`!W ;,'H9\4\=,!H6
M&Y A4'9I&B!SSBPK%"J"),1V>36(zv)"L"O! `;,"9A&:(B(?!N`W!>(B.Q!& /
M< 1Q;1YP2G4;P6D!`'0WPBL4&>%B[R%P)+,=,!JP;SX`)" EX/\;(1JP`, >
M``GP."$ULCTC_R'B'>$:T""0/64:T""(zv)'/'[(6 GP',(8 ;(zv)`V Z8 ]P_QP0
M&W !H!\1'4$_:"3$01+R:3#P="XK%"H#)R D<;L_] 0(zv)=C:3'T <(' $`.1E
M.CM(zv)06)"< I (F+W'5 ^`3I(zv):!H(zv)') 0D 0(zv)LDH*P&]S"V :\&TK%/D;D2!0
M#\ )<!] 0G$I$K,'<!YP6F$:T > ;A"!_Q]A&, WPSLA`) :H21Q$)"Y),1E
M> 0`&, P\&PIT/XB179$Y#[(zv)&(zv)`)(zv)$RQ&B;_&S [(QGA/X$?9"3Q'Y!,(^\(
M8 5 '5 )<&L#`"L4(\#_&S!&0QWR&H E(0N *I$(zv)X^,><"L40E17*G(?\!JR
M_T4#'T!.< M0-G! 0#""$'"L>6L`<%(zv)2>A!A=1LPOS=A-A,J4QF(zv)'$ :4&PY
M5?\=4"V13F! ,0#0(Z- X(zv)41^TDP0\)V/$$:L#<$-Y<)\.\=X0> #W$#`',(zv)
M(zv) ] 077_10,VH!H)'5 D<"'B&E $8/IZ"7!J$($Z8%<4(&)+L?\E$3>100%7
MT1MP6J8_82"2WP40+> WPR3$5MDH2. B,M\[%#:(zv)0P$C\3WQ:!TP$(&K+9$:
M(zv)&0(<'DK%'98X/\8H$AS'Y!I5$L!0W :H1V WR;!&=$A(00`-G I-P%2>O\?
M86HB5I0(zv)(zv)CE5+9(BL$R#_R'P9S1H805 /X$B($4(zv):D7G'<$ZD08`44PCXEAP
M;;'Y'4!L9P6P0$!84&WG:'3Y'4!T<!YP'5 '(zv) ,(zv)*<#[0P$9X7,08!\(zv)!4!N
M_ N \P=P!T!I>D[!5;=VVRY^"RL4$X$`>: ``P`0$ $````#`!$0`0````,`
M(zv)!#_____0 `',.#\Q9]2:;X!0 `(,.#\Q9]2:;X!"P``(zv) (zv)(zv)!(zv)``````P ``
M`````$8``````X4````````#``* "" &``````# ````````1(zv)`````0A0``
M``````,`!8 (( 8``````, ```````!&`````%*%``#P#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``
M````P ```````$8`````5(4```$````$````."XP``,`)H (( 8``````, `
M``````!&``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ```````$8`````#H4`
M```````#`#" "" &``````# ````````1(zv)`````1A0````````,`,H (( 8`
M`````, ```````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``````P ```````$8`
M````-H4```$````!`````````!X`0H (( 8``````, ```````!&`````#>%
M```!`````0`````````>`$. "" &``````# ````````1(zv)`````XA0```0``
G``$`````````'(zv)`]``$````%````4D4Z( `````#``TT_3<``-P%
`
end


POP server - Konec

[*] muher(zv)csas(tec)cz - 8.3.1999 12:03:55

Diky vsem, RFC uz jsem precetl a myslim ze to nebude tak slozite.
BTW pro tyto veci je dobra adresa http://info.pvt.net (pokud to nevite).

> -----Original Message-----
> From: viktor.lostak(zv)chmi(tec)cz [SMTP:viktor.lostak(zv)chmi(tec)cz]
> Sent: Monday, March 08, 1999 11:15 AM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: POP server
>
> Ty RFC ti muzu poslat, zrovna jsem ten server totiz dodelal. Ale ten
> ti poslat nemuzu. Nicmene trvalo mi to nececly tyden, tak to zadna velka
> prace neni.
>
> Viktor
>
> Ahoj vsem,
>
> Mate nekdo zkusenosti s programovanim (jednoducheho) POP serveru?

elementarny problem s C/S

[*] Lubos Dusanic <lubos(zv)iname(tec)com> - 08.3.1999 12:26:28

Ladislav Nagy wrote:

> Nevim jak Interbase, ale na MS SQL serveru plati, ze kdyz nastane nejaka
> chyba, tak Server nedela automaticky Rollback. Nas program obdrzi Exception
> a nas program vola Rollback sam.

co sa stane s databazou, ak v exception nezavolam rollback, ale ukoncim
session? normalny server spravi rollback, ale podla tvojho popisu si nie som
celkom isty, co nastane u M$sql ...

--
lubos dusanic

mailto:lubos(zv)iname.com
http://www.geocities.com/SiliconValley/Haven/7613

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 12:34:45

> > Nejen urcity zaznam, nekdy je potreba zamykat treba celou tabulku
> > nebo databazi. Tam, kde je potreba udelat zamek, je mozne zpravidla
>
> Pane boze, to snad ne ??? Zamknout tabulku nebo databazi? To si
> ale opravdu delas legraci, ze?

To uz jsem, myslim, vysvetlil. Neni to zamceni vsech zaznamu v databazi,
ale zamceni databaze. DB Ti pri pokusu o prihlaseni k databazi
rekne, ze neni mozne se prihlasit. Proste z duvodu omezenych zdroju
pocitace,
zabezpeceni neprekroceni omezeni danych pouzitou databazi (treba
maximalni pocet zamku), a kvuli constraints v datovem modelu, atp.,
je lepsi u narocnych akci zakzat delat cokoliv jineho.
Treba uz jenom proto, ze kdyz databazi zamknes, tak procedura jede jen
6 hodin a muze to jet pres noc, kdyz nikdo neni v praci, ale kdyby mel stroj
delat jeste neco jineho, tak muze jet 24, pripadne se jeste zastavit,
a po celou tu dobu zpomalovat praci tim, ze se neunosne zpomali odezvy
jednoduchych selektu.

Nevim, co delas, Petre, ale pusobi to na me dojmem, ze spise aplikace
pracujici s mensim objemem dat a ze ses s bodobnymi problemy jeste
nesetkal.

> Prave ze to ma cenu a velikou. Pokud je to program pro jednu osobu,
> tak je lepsi zamek, ale pokud na tom ma delat vice lidi, tak to
> je nejhorsi reseni. Samozrejme, ze je to nejjednodussi reseni...
> ty si ulehcis praci a zakaznik pak bude nadavat...

Tady je, myslim, rec zase o editacich. Ja si taky myslim (podle naseho SW),
ze ve vetsine editaci je zamek mene vhodny nez optimisticky pristup,
ale urcite existuji cinnosti, kde je zamek nejlepsi reseni.
Dost tedy tech kategorickych tvrzeni nejhorsi, nejlepsi...

> > moznosti, jak zablokovat moznost zmenit data obecne, tedy
> > jak pro aplikaci, tak pro uzivatele s nejakym online nastrojem
> > pro provadeni SQL. Nebo - jak bys bez zamku resil docasnou nemoznost
> > updatovat nejaky zaznam uzivatelem, ktery jej normalne
> updatovat muze? To
> > nedokazes. Musel bys tam nasadit trigger, ktery by se rozhodoval na
> > zaklade nejakeho semaforu nebo vymyslet nejake jine
> kostrbate reseni.
>
> Proc kostrbate? Triggery jsou od toho, aby se pouzivaly. Rozhodne
> je lepsi pouzit 20 triggeru nez jeden zamek.

Rozhodne je lepsi pouzit 20 zamku nez jeden triggerzamek, ktery dela to
same.
V implementaci zamku originalniho je mensi pravdepodobnost chyby.

> > Dale - v diskusi padl nazor, ze zamykani zaznamu je pozustatek
> > souborovych databazi. To je asi pravda, ale neznamena to,
> > ze uz tento mechanismus neni aktualni. Napriklad transakce si vyrabi
> > zamky. Bez teto moznosti by byly nanic.
>
> Coze?

Nechapu na co se ptas. Nevis, co jsou transakce nebo nevis, ze transakce
vyrabi zamky?

>
> > A s transakci je i ten priklad v praxi:
> >
> > //prevod x penez z uctu a na uctu b:
> > starttransaction
> > a := a - x; //ucet a musi byt zamcen
>
> Proc?

protoze to tak transakce delaji

>
> > b := b + x; //ucet b musi byt zamcen
>
> Proc?

protoze to tak transakce delaji


Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 12:44:23


> -----Original Message-----
> From: viktor.lostak(zv)chmi(tec)cz [mailto:viktor.lostak(zv)chmi(tec)cz]
> Sent: Monday, March 08, 1999 12:01 PM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: elementarny problem s C/S
>
> [Viktor] Kdyz se transakce nepovede, vrati se vse do
> puvodniho stavu a skonci to chybou. Kdyz narazim na zamceny
> zamek, muzu udelat totez. Kde je vlastne rozdil? Transakce mi
> prijdou jako zamky s jednim typem reseni konfliktu - navratu
> k puvodnimu stavu a ohlaseni chyby. Nebo to tak neni?
>

transakce nejsou zamky.
Transakce zamky pouzivaji.
Jedna transakce muze pouzit i vice zamku.

Zkus si predstavit, ze v transakci zmenis zaznam
a jeste nez udelas rollback, nekdo by tam neco updatoval.
potom udelas rollback a ten nekdo o data prijde,
protoze se tam vrati data z doby zahajeni transakce.


Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Instalace komponenty - Zarizeni pripojene k system

[*] Mor�ol Marian <Marian.Morzol(zv)ostrava.aksignal(tec)cz> - 8.3.1999 13:08:34

Po neuspesne instalaci jedne komponenty do uzivatelsky vytvoreneho
balicku mi nejde nacist tento balicek. Vypisuje to hlasku Can't load
package ....Mel jsem tam nainstalovanych dost komponent tak se mi to
nechce delat vse znova. Nevite co s tim ?
Tu chybu jsem mel kdysi uz jednou ..tenkrat se mi to podarilo nejak
rozchodit, ale ted to nejde.

Diky za kazdou radu.

Vypocet

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 8.3.1999 13:22:41


-----P�vodn� zpr�va-----
Od: Polak Jiri [SMTP:Jiri.Polak(zv)tconsult(tec)cz]
Odesl�no: 8. b�ezna 1999 11:56
Komu: 'delphi-l(zv)fwd(tec)cz'
P�edm�t: RE: Vypocet


>
> [Viktor] Ale ono to neni "spatne" a "spravne". Spatne muze
> byt nanejvys to, ze pouzivas vypocty v plovouci carce tam,
> kde pocitas treba s penezi. Tam je treba pouzit napr.
> racionalni cisla, tj. vyjadrit vsechna cisla ve forme zlomku
> a tak je i udrzovat v databazi. Nezabijejte me, ja vim, ze
> existuji i jina reseni.

S penezi se rozhodne racionalni cisla pouzivat nesmi.
Penize je diskretni velicina, racionalni cisla by mela byt pouzivana
pouze pro spojite veliciny.
Pro praci s penezi je urcen typ decimal.
Jura

[Viktor] Pocitani s penezi jsem pouzil jako priklad, kdy by nemelo
dochazet k zaokrouhlovacim chybam pri deleni apod, nebo by se alespon ty
chyby nemely pri vypoctu kumulovat. A to se da udelat jen pomoci vypoctu v
racionalnich cislech.

begin 600 WINMAIL.DAT
M>)\^(BL,`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`,````4D4Z
M(%9Y<&]C970`VP,!!8 #``X```#/!P,`" `-`!8`*0`!`"X!`2" `P`.````
MSP<#``(zv)`#0`4`#8``0`Y`0$)(zv) $`(0```$-#0T(Y,30X,C9$-40R,3$Y,T$Y
M,# R,$%&,T)$.3%#`"\'`0.0!(zv)`X!P``(0````L``(zv)`!````"P`C```````#
M`"8```````L`*0```````P`N```````#`#8``````$ `.0!(zv),]-<7FF^`1X`
M< `!````# ```%)%.B!6>7!O8V5T``(!<0`!````%(zv)````&^:5Y<O$B1R\W5
M)A'2DZD`(*\[V1P``!X`'(zv)P!````!0```%--5% `````'(zv)`?# $````6````
M=FEK=&]R+FQO<W1A:T!C:&UI+F-Z`````P`&$"TI%PP#``<0W (``!X`"! !
M````90```"TM+2TM4/E63T1.[5I04N%602TM+2TM3T0Z4$],04M*25))4TU4
M4#I*25))4$],04M 5$-/3E-53%1#6D]$15-,X4Y/.CA"^$5:3D$Q.3DY,3$Z
M-39+3TU5.D1%3%!(22U,0$8``````(zv)$)$ $````E! ``(00``%P&``!,6D9U
M4WOI(7<`"(zv)$#`?<(zv)`J0#XP(`8P)H"L!S970R,SC5```J`N%A!X (zv)!Q,"(zv)/$'
M$R!#10*#`% "\(zv)]78# (zv)5&%H`W$"(zv)S+Q#N=P<G$3L0]_$(\1D29]"H (R" [
M"6\R-68U`H *(zv)75C`% +`V,#`$$+8&YG,3 R.7\+IPJQ"H0*A!GR`M$1\7-,
M,3<;NA.C,38;NFS8:3,V&T$#8'0%D 5 `BT?\E!<)V8Y=LL$< N0)PF ('H4
M4"#1^#%V81_S&U8?A!M#"S&#'X0"`&DM,30T`4!Q'Q Q.# !0 S0) -B4"!/
M9#H,(zv)V(2X%!!!O!A:R!*:040($!;4TU44#HF8BX9)(zv)- = 6(zv)`(!U;'3P+F-Z
M71M5)3('D E0B2%A;F\E=S(zv)N( PP$2!(zv).&5Z%: (zv),3EC*S K$#$Z-1Y&)3!+
M%0-P=25W)P$`;'!H02/(zv);$!F=V0H02?G*(<(zv)0BK 9&T(zv)T1_ )7<`4D4Z(%9Y
M<&]^8Q4`((zv)\C&A\4&NP!D2 +"N,SM3XT+%M6:6O*= 6P730006P5T ((zv)9&\(zv)
M-A (zv);(zv)GP)I BRG,*L'0W("((zv)*P`W<5AR878WP2I(zv)4S>3(,TL<'H5T#0[8GD%
M0!6(zv)L3<(zv):G9Y!" V$"PA$/<5T#" .5!I(9 $(#KP,('\='D\(#N0"0`(zv)D!F
M)I!^8PK ,* VX!6P.U T.VN_`0`[D3TP`9 [$0EP8BL`/00(zv)< GP*M G0!+Q
M;2#^:CVA/[,[HSJ"%% J8#0[?SA0/3 "( = -T$],"E 81D[4'1J*F Z\&IA
M9/L%$ 5 =A3P%+ J\4/#/" K%= "$'(5P7H)`&UK?G4T+"L``9 F0$#A)I!U
MW42P>CSP-Z \H60WH &(zv)5F% 8(zv)? >(zv)&(zv):4#(zv):OL?H#DP93M01) \( =P.U.)
M-#ME> 0`='5J)I"_)I!,D"KQ"7 4\ ,`+AM;OS/B!?! )#_P%= #8'H3(+\(zv)
ML$]10RT[ECJ!!Y!M38==,^)0-S$Y84#A9 0`:_\)<#>P)I!%X!\0/3 5H#M0
M_U /.F!*855S!4 [I16(zv),WG_.Z([(zv)0-(zv)/_ P(zv)$R02D%3]?YY4?M8$3A!/3%
M!D#2"'#W,* #H#R <$D`!9 '< = ^TV<&VE*"'!6YAMD&A(,,G\Q1C7()<$,
M0!+(zv)`S :5#/^,Q'1)?$_0C=!6J(zv)4\$# =SNC`R!$D&M:(C7P"V!D?SM0/N \
MD%6A-R!5T3;09+\PD!3 .6 %0"9 2=!O4X"]"&!H/.%#(4# %+!Y/]#_8U$F
M(zv)2TQ-S)!\ 1P.U W(/\&X%623T$'0 >0,(!;HF=#_V45/)!GPCPT1L!&L"QP
M9M+_*# 5X#;B3T%)$$A15>$%0/] X .(zv),( $8#TQ:T8\L$,8_Q2P0[-%(4V0
M''(:5R-7&TL%%P$`<K ````#`! 0``````,`$1 !`````P" $/____] ``<P
ML(KN'%YIO(zv)% ``(zv)PL(KN'%YIO(zv)$+``" "" &``````# ````````1(zv)`````#
MA0````````,``H (( 8``````, ```````!&`````!"%`````````P`%(zv) (zv)(zv)
M!(zv)``````P ```````$8`````4H4``/ .```>`"6 "" &``````# ````````
M1(zv)````!4A0```0````0````X+C ``P`F(zv) (zv)(zv)!(zv)``````P ```````$8`````
M`84````````+`"^ "" &``````# ````````1(zv)`````.A0````````,`,( (
M( 8``````, ```````!&`````!&%`````````P`R(zv) (zv)(zv)!(zv)``````P ``````
M`$8`````&(4````````>`$& "" &``````# ````````1(zv)`````VA0```0``
M``$`````````'(zv)!"(zv) (zv)(zv)!(zv)``````P ```````$8`````-X4```$````!````
M`````!X`0X (( 8``````, ```````!&`````#B%```!`````0`````````>
=`#T``0````4```!213H(zv)``````,`#33]-P``:<N%
`
end


elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 13:22:30

Puvodni zprava, kterou napsal Polak Jiri dne 8 Mar 99,:

> > > Nejen urcity zaznam, nekdy je potreba zamykat treba celou tabulku nebo
> > > databazi. Tam, kde je potreba udelat zamek, je mozne zpravidla
> >
> > Pane boze, to snad ne ??? Zamknout tabulku nebo databazi? To si
> > ale opravdu delas legraci, ze?
>
> To uz jsem, myslim, vysvetlil. Neni to zamceni vsech zaznamu v databazi,
> ale zamceni databaze. DB Ti pri pokusu o prihlaseni k databazi rekne, ze
> neni mozne se prihlasit. Proste z duvodu omezenych zdroju pocitace,
> zabezpeceni neprekroceni omezeni danych pouzitou databazi (treba maximalni
> pocet zamku), a kvuli constraints v datovem modelu, atp., je lepsi u
> narocnych akci zakzat delat cokoliv jineho. Treba uz jenom proto, ze kdyz
> databazi zamknes, tak procedura jede jen 6 hodin a muze to jet pres noc,
> kdyz nikdo neni v praci, ale kdyby mel stroj delat jeste neco jineho, tak
> muze jet 24, pripadne se jeste zastavit, a po celou tu dobu zpomalovat
> praci tim, ze se neunosne zpomali odezvy jednoduchych selektu.

Ale dobre, tak tohle je specificky problem, ktery muze nastat
na databazi s velkym objemem dat, ktera je nutno davkove zpracovat.
Dovedu si to jednoduse predstavit napriklad v pripade off-line
pracujici banky, kdy je treba pres noc udelat zpracovani vsech
prikladu a napriklad vygenerovat vypisy z uctu. Budiz, nikdo
nepotrebuje v noci pracovat, zamkne se databaze. Ale tohle prece
neni bezny pripad, ktery se deje kazdych 15 minut behem dne...
O tomhle se tady vubec nebavime. Bavime se o bezne praci s daty,
kdy pristupuje k databazi vice bab...

> > Proc kostrbate? Triggery jsou od toho, aby se pouzivaly. Rozhodne
> > je lepsi pouzit 20 triggeru nez jeden zamek.
>
> Rozhodne je lepsi pouzit 20 zamku nez jeden triggerzamek, ktery dela to
> same. V implementaci zamku originalniho je mensi pravdepodobnost chyby.

Jo, a zpusobi to takove zpomaleni systemu, ze se na tom neda delat.
Zvlaste na velkem objemu dat, tedy databazich, se kterymi pracujes...

> > > Dale - v diskusi padl nazor, ze zamykani zaznamu je pozustatek
> > > souborovych databazi. To je asi pravda, ale neznamena to,
> > > ze uz tento mechanismus neni aktualni. Napriklad transakce si vyrabi
> > > zamky. Bez teto moznosti by byly nanic.
> >
> > Coze?
>
> Nechapu na co se ptas. Nevis, co jsou transakce nebo nevis, ze transakce
> vyrabi zamky?

Ne, to je moje reakce na to, ze snad zahajis transakci pred editaci
a teprve az baba prijde z obeda, ji ukoncis... Transakce je zde
proto, aby zajistila integritu dat. Diky transakci mas moznost
provest vice akci na vice tabulkach s tim, ze vysledek bud bude
podle Tvych predstav, nebo to proste odrolujes zpet. Transakce
neni urcena pro cekani na babu, az prijde z obeda, pokud vubec
jeste dnes prijde...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Instalace komponenty - Zarizeni pripojene k system

[*] LuborK(zv)tnet(tec)cz (Kolar Lubor) - 08.3.1999 13:51:14

Dne Mon, 8 Mar 1999 13:08:34 +0100 Mor�ol Marian napsal:

> Po neuspesne instalaci jedne komponenty do uzivatelsky vytvoreneho
> balicku mi nejde nacist tento balicek. Vypisuje to hlasku Can't load
> package ....Mel jsem tam nainstalovanych dost komponent tak se mi to
> nechce delat vse znova. Nevite co s tim ?
> Tu chybu jsem mel kdysi uz jednou ..tenkrat se mi to podarilo nejak
> rozchodit, ale ted to nejde.
Mne se podarilo X podobnejch problemu vyresit tim, ze jsem si stahl z
www.sysinternals.com FileMon a zjistil jsem, ktery soubor pri
nacitani chybi nebo blbne.
Lubor bIRDIE Kolar
====================
GSM Phone: +420-603-410019
ICQ: 18587772


Menu

[*] Milan Fiedler <milanf(zv)rts(tec)cz> - 8.3.1999 14:25:48

Toto je zpr�va ve form�tu MIME obsahuj�c�n�kolik ��st�.

nevite o nejake komponente do Delphi 2, ktera by v menu mela obrazky (Gliph).


diky za kazdou radu

Milan Fiedler
milanf(zv)rts(tec)cz

Intranet

[*] Jan Pospisil <pospa(zv)students.zcu(tec)cz> - 8.3.1999 13:55:54

Zdravim

Rad bych proniknul do sytemu komunikace v siti. Respektive mi staci,
kdyz by mi nekdo poradil jak poslat data z jednoho PC na druhe
ktere je pripojeno do site Microsoft Windows. J Pospisil


Hlaska: Invalid BLOB handle in record buffer

[*] Pavel Bare� <atoll(zv)telecom(tec)cz> - 8.3.1999 15:37:43

Toto je zpr�va ve form�tu MIME obsahuj�c�n�kolik ��st�.

Ne cislo faktury opravdu neni memo to jsi se spatne podival.
Polozka se jmenuje DODAKY a ukladaji se do ni cisla dodacich listu. Fakturuje se totiz vzdy za nejake delsi obdobi a prodej jede na dod. listy.
Navic tato polozka slouzi pouze pro tisk. Zatim neni tolik dat, aby to nejak neunosne narustalo, pokud by se tak stalo tak ji uplne vyhodim a budu to generovat pred tiskem.

Pavel Bare�
Atoll s.r.o.
www.atoll(tec)cz

-----P�vodn� zpr�va-----
Od: Jaro <jaro(zv)sinea(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 6. b�ezna 1999 10:50
P�edm�t: Re: Hlaska: Invalid BLOB handle in record buffer


1.
Problem je asi ve zpusobu natahovyna "bufferu". Pri Locate se postupne dotahuji dalsi data ze serveru a
v urcitych momentech se to asi zahlti. Na mensi tabulce by ti to mozna nevzniklo. Takovahle chyby, ktere ovsem vznikaji nahodne jsou nejhorsi. Proto je to lepe udelat jinak.
2.
Bud si udelej jednoduchou ulezenou proceduru a pokud by to ani tak neslo, tak
to asi budes muset udelat pres klienta: tedy nacitat a zase ukladat to po radku
treba nejak takto:
with query1 do
while not eof
edit
cis fakt1.value := cis fakt.value;
next
end

takto zajisti konverzi delphi.
Jeste bych to radeji uzavrel cele do transakce.

Zvedava otazka? Jestli jsem pochopil cis fakt je cislo faktury. To bude cislo faktury memo?
Jaro
---------

Dekuji opravdu pomuze zmena na blob, domnivla jsem se, ze varchar bude v tomto pripade lepsi. Otazkou vsak je, proc se vsechno chova korektne

pouze pri pouziti Locate vznikne chyba.

Jeste jeden s tim souvisejici dotaz:

Jak pomoci SQL presunout data z varchar do blob ?
zkusil jsem
update faktury set dodaky =(select dodaky from faktury2 where faktury2.cis fakt=faktury.cis fakt)
ale to Error conversion from string "BLOB"

Pavel Bares
Atoll s.r.o.
www.atoll(tec)cz

-----Puvodni zprava-----
Od: Jaro <jaro(zv)sinea(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 5. brezna 1999 0:24
Predmet: Re: Hlaska: Invalid BLOB handle in record buffer


Asi by bylo lepsi predelat ten varchar(2000) na blob sub type text
Ale zkus jeste tohle.
Z toho datasetu zcela vyhod polozku varchar(2000) a vsechny ostatni velke polozky, ktere primo nezobrazujes pomoci gridu
(ty ostatni vyjmenujes za SELECT namisto hvezdicky) a zaloz si jeste jeden TQuery, ktery pripoj do relace s tim prvnim.
V druhem TQuery bude odkaz jen na jediny zaznam pomoci konstrukce WHERE id = :id
Jeste je dobre pred prikazem Locate nastavit vazbu datasource (relacni) na nil a teprve az po nalezeni zaznamu ji
priradit opet na datasource pripojeneho k tomu prvnimu TQuery.
Nejenom, ze to nebude hlasit chybu, ale znacne se ti to zrychli zejmena pri vetsim mnozstvi dat.
Uvedom si, ze naplneny zaznam Varchar(2000) znamena 2 kB a jiz pro pouhych tisic radku jsou z toho dva MB!
To je obrovsky dataset a nalezeni zaznamu uprostred nebo ke konci bude trvat hodne dlouho, protoze dojde
k postupnemu dotazeni celeho objemu dat.
Muj navrh to resi tak, ze se listuje malym objemem dat jen tech sloupcu, ktere zobrazuji v gridu a zbytek dotahnu az
pro jeden konkretni zaznam na kterem se zastavi ukazatel, coz jsou maximalne jen ty 2KB. Podle teto konstrukce
muze byt skok na posledni zaznam az radove rychlejsi.
---------
Pokud pouziju DBMemo na zobrazeni VARCHAR(2000) z tabulky na IB dostanu po nalezeni zaznamu pomoci LOCATE hlasku
Invalid BLOB handle in record buffer

Nevite nekdo jak to odstranit ??

Pavel Bares
Atoll s.r.o.
www.atoll(tec)cz

Tisk dlouhych grafu

[*] Dodek <Dodek(zv)cbmi.cvut(tec)cz> - 8.3.1999 16:22:29

zdravim vsechny,

uz jsem se jednou ptal ale nikdo se neozval tak zkousim jeste jednou, nechce
se mi verit ze by se s tim jeste nikdo nesetkal.

Potrebuju z D3 tisknout dlouhe grafy na nekonecny (traktorovy ) papir. Ma s
tim prosim nekdo nejake zkusenosti, je to vubec mozne z windows tisknout
grafy na nekonecny papir ?

predem diky za kazdou radu

Pepa

ADO+ DBGRID

[*] Ondrej Rousek <rousek.axrm(zv)telecom(tec)cz> - 8.3.1999 16:27:02

Ma nekdo zkusenosti s ADO + DBGRID (MSGRID.OCX) ? Potreboval bych nejaky
priklad napojeni RecordSetu na grid.

elementarny problem s C/S

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 8.3.1999 16:42:29

> Netvrdil jsem nic jineho. Ale uz tim, ze tu transakci otviras,
> tak zamky vytvaris, i kdyz "jenom" mimochodem. Je videt, ze
> se bez zamku neobejdeme, nema cenu tvrdit, ze je to pouze
> pozustatek souborovych databazi a nema cenu zamky pouzivat.

Kazda databaze resi konflikty mezi soucasnymi pristupy samozrejme po svem.
Podivas-li se do InterBase Operations Guide na jeji pojeti multi-generacni architektury a optimistickeho zamykani, urcite ze sveho presvedceni o nevyhnutelnosti zamku hodne slevis.

> Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne s Jaroslavem
> i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake zamky existovaly."
> Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
> mi, jak to chces jinak delat.

No prave: mohu na zamky zapomenout - databaze si to ohlida sama.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
----------
> Odes�latel: Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz>
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: RE: elementarny problem s C/S
> Datum: 8. b�ezna 1999 10:50
>
>
> > -----Original Message-----
> > From: Jan �ebel�k [mailto:honza(zv)haes(tec)cz]
> > Sent: Monday, March 08, 1999 9:54 AM
> > To: delphi-l(zv)fwd(tec)cz
> > Subject: Re: elementarny problem s C/S
> >
> > > //prevod x penez z uctu a na uctu b:
> > > starttransaction
> > > a := a - x; //ucet a musi byt zamcen
> > > b := b + x; //ucet b musi byt zamcen
> > > //dalsi akce souvisejici s prevodem -
> > > // - ulozeni informace o (financni transakci)
> > > //do nejakeho protokolu, penezniho deniku atp.
> > > commit
> >
> > Ale vzdyt to prave neni pravda!
>
> Je to pravda! Transakce si oba zaznamy skutecne zamkne
>
> > O integritu takoveho prevodu penez se mi prave bez jakehokoli
> > explicitniho zamykani postara transakce.
>
> Netvrdil jsem nic jineho. Ale uz tim, ze tu transakci otviras,
> tak zamky vytvaris, i kdyz "jenom" mimochodem. Je videt, ze
> se bez zamku neobejdeme, nema cenu tvrdit, ze je to pouze
> pozustatek souborovych databazi a nema cenu zamky pouzivat.
> Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne s Jaroslavem
> i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake zamky existovaly."
> Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
> mi, jak to chces jinak delat.
> BTW taky nepouzivam explicitni zamykani zaznamu, uz jsem to tady psal,
> a pro editace mi to pripada nevhodne. Ale tim, ze tento mechanismus
> pouzivaji transakce a ja je samozrejme vyuzivam, musim s tim pocitat
> a nemuzu rict, ze zamky nepouzivam (zvlast kdyz jich pri behu me procedury
> vznikne a zanikne treba nekolik set tisic). A zapomenout na ne taky nemuzu,
> protoze na jejich pocet ma vliv treba i tvar SQL prikazu, algoritmy
> procedury atp. a mel bych se snazit jejich pocet minimalizovat.
>
> > Docasna nemoznost updatovat zaznam se ve fazi analyzy resi
> > necim jako "Entity life history".
> > Takovy "semafor" nebo rekneme "status" je pak nutnym
> > dusledkem teto analyticke uvahy a nevidim v tom nic
> > kostrbateho. Je to naopak velmi ciste a trigger to resi
> > snadno a hladce.
>
> Jo - je to jenom tebou realizovany zamek. Nebo myslis, ze zamek
> uvnitr DB je udelan jinak? Ten triggerovy je nevyhodny proto,
> ze je zde prilis velka rezie. V DB je optimalizovan.
> Navic triggery nejsou vsude bezproblemove, co tam, kde z nejakeho
> duvodu trigger nemohu pouzit?
>
> Jura
> ----------
> Jiri Polak
> e-mail:jura.polak(zv)email(tec)cz
> jiri.polak(zv)tconsult(tec)cz
> web :http://freeweb.coco(tec)cz/jpolak
> ----------
> The only good bug, is a dead bug!

Existence adresare

[*] Libor Junek <libor(zv)thsoft(tec)cz> - 8.3.1999 17:09:29

Mam problem. Nevim jak kontrolovat existenci adresare. Neco jako je FileExists.
Potrebuji kdyz nejaky adresar neni vytvoren tak ho zalozit(nebo naopak).
Nevite na to nejakou API funkci?
Take bych potreboval vytvareni adresare a mazani. To jse da ale obejit pres "MD" a "RD".

Dik.

Libor Junek
**************************************
TH SOFT, Kostelni 128
564 01 ZAMBERK
tel. 0446 3897
http://www.thsoft(tec)cz
http://www.zbk(tec)czn(tec)cz
E-mail: libor(zv)thsoft(tec)cz
**************************************

Intranet

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 8.3.1999 17:11:01

> Zdravim
>
> Rad bych proniknul do sytemu komunikace v siti. Respektive mi staci,
> kdyz by mi nekdo poradil jak poslat data z jednoho PC na druhe
> ktere je pripojeno do site Microsoft Windows.
>
> J Pospisil

Pokud mas na mysli datovou komunikaci mezi procesy bezicimi na ruznych pocitacich, tak je tu nejlepe DCOM.
Intranet mozna taky, ale to je trochu o necem jinem - Internet na lokalni siti.

Vycet souvisejicich problemu najdes napriklad na http://www.haes(tec)cz.

Honza Sebelik
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================

Connection is busy 2x

[*] Pavol Griga <paly(zv)sct.sk> - 8.3.1999 17:25:52

Nevie mi niekto poradit, preco mi MS SQL 6.5 hlasi chybovu
hlasku:

Key violation.
General SQL error.
[Microsoft][ODBC SQL Server Driver]Connection is busy with results
for another hstmt.

P.S. hlasi to vtedy, ked pouzivam ODBC pristup, ked pouzivam NATIVE pristup
tak ziadny problem

a ako ju odstranit.

za dobru radu vopred vdaka

Pavol Griga

QR - nataveni tisku

[*] Petr Poto�ek <alrousse(zv)mbox.vol(tec)cz> - 8.3.1999 19:25:03

Toto je zpr�va ve form�tu MIME obsahuj�c�n�kolik ��st�.

Zdravim vsechny,
nemohu se dostat do archivu konference, takze se predem omlouvam za dotaz, ktery tu byl zrejme jiz resen. Mam problem se zadanim velikosti stranky pri tisku pomoci QuickReportu. Kdyz zmenim format papiru na Custom, tak na tiskarne Epson LQ-870 netiskne nic a na laserove tiskarne tiskne na zakladni velikost papiru dle nastaveni tiskarny.( Takze zatim neustale manualne prepinam default papir tiskarny ).
Diky za kazdou odpoved.
Petr Potocek


Ovl�dac� panely

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 8.3.1999 19:43:37

Win32 SDK help je soucasti helpu k Delphi a CBuilderu, je to tam tusim
jako Win32 API Help nebo tak.

-----P�vodn� zpr�va-----
Od: Milan Fiedler <milanf(zv)rts(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 8. b�ezna 1999 8:44
P�edm�t: Re: Ovl�dac� panely


Pisete vice informaci ve Win32 SDK, pod heslem CPIApplet.
Kde to najdu, mozna mne postrcte tim spravnym smerem.

Diky

Milan Fiedler



-----P�vodn� zpr�va-----
Od: Ondrej Krajicek <krajicek(zv)promedia(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b�ezna 1999 20:19
P�edm�t: Re: Ovl�dac� panely


>Do slozky Ovladaci Panely zastupce pridat nejde. Ona to vlastne neni
>slozka, ale klasicky control.exe, jak jej zname z Windows 3.11, az na
>to, ze obsah vykresli do okna exploreru. Nicmene muzes vytvorit
>Control Panel Applet, vice informace ve Win32 SDK helpu pod heslem
>CPlApplet.
>
>Ondrej Krajicek
>
>-----P�vodn� zpr�va-----
>Od: Milan Fiedler <milanf(zv)rts(tec)cz>
>Komu: Konference <delphi-l(zv)fwd(tec)cz>
>Datum: 4. b�ezna 1999 15:25
>P�edm�t: Ovl�dac� panely
>
>
>Potreboval bych do slozky "Ovladaci panely" p�idat zastupce, nevite
>prosim kde zjistit cestu, nebo kam zaspat. Nemohu to najit mozna
>koukam jinam nez mam.
>
>
>Dekuju
>
>Milan Fiedler
>milanf(zv)rts(tec)cz
>
>
>

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 19:58:16


>Ladislav Nagy wrote:
>
>> Nevim jak Interbase, ale na MS SQL serveru plati, ze kdyz nastane nejaka
>> chyba, tak Server nedela automaticky Rollback. Nas program obdrzi
Exception
>> a nas program vola Rollback sam.

>
Server si musi umet poradit i bez klienta. Co se stane kdyz klient zatuhne
drive nez mohl dojit k prikazu commit nebo rolback
Jaro

Existence adresare

[*] Jaroslav Sikora <sikora(zv)kam(tec)czu(tec)cz> - 8.3.1999 19:02:50 met

Procedure ForceDirectories(Dir: string) vytovori adresar ci adresare
pokud neexistuji.

sikora(zv)kam(tec)czu(tec)cz

> Mam problem. Nevim jak kontrolovat existenci adresare. Neco jako je FileExists.
> Potrebuji kdyz nejaky adresar neni vytvoren tak ho zalozit(nebo naopak).
> Nevite na to nejakou API funkci?
> Take bych potreboval vytvareni adresare a mazani. To jse da ale obejit pres "MD" a "RD".
>
> Dik.
>
> Libor Junek
> **************************************
> TH SOFT, Kostelni 128
> 564 01 ZAMBERK
> tel. 0446 3897
> http://www.thsoft(tec)cz
> http://www.zbk(tec)czn(tec)cz
> E-mail: libor(zv)thsoft(tec)cz
> **************************************
>
>

Instalace komponenty - Zarizeni pripojene k system

[*] Jaroslav Sikora <sikora(zv)kam(tec)czu(tec)cz> - 8.3.1999 19:04:37 met

Napriklad zkus neuspesne instalovanou komponentu vyndat z
balicku a znovu prelozit.

sikora(zv)kam(tec)czu(tec)cz

> Po neuspesne instalaci jedne komponenty do uzivatelsky vytvoreneho
> balicku mi nejde nacist tento balicek. Vypisuje to hlasku Can't load
> package ....Mel jsem tam nainstalovanych dost komponent tak se mi to
> nechce delat vse znova. Nevite co s tim ?
> Tu chybu jsem mel kdysi uz jednou ..tenkrat se mi to podarilo nejak
> rozchodit, ale ted to nejde.
>
> Diky za kazdou radu.

Problemy C/S 1.0

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 08.3.1999 21:47:30

S hruzou jsem zjistil, ze se mi vcerejsi mail nejak do konference
nedostal :-( (nastesti jsem ho mel v ClipBoardu :-) takze ho posilam
znovu a s jinym subjectem. Jak tak pozoruju boj kolem zamku :-) tak
zjistuju, ze skutecne obcas kazdy meleme o necem jinem ;-). No
kazdopadne podrobnosti nize.

-------------------------------------

Jan �ebel�k wrote:

Jsem rad, ze se mnou Martin "v zasade souhlasi" (viz nize).

:-)

Ma tam sice nejake "ale", jenze to by se nam ta diskuse uz moc
rozplizla.

Nejvic se mi libi jeho myslenka osetreni techto problemu na aplikacnim
serveru. Tam si s tim mohu opravdu delat, co chci.

Ze jo, me se to taky libi, ale zatim to moc neumim :-(

Co takhle dokonce poslat aplikacnimu serveru interface na vlastni
metody na klientovi, ktere mu "pomohou" problem resit tak, jak si to
klient preje.

To nezni spatne.

Ono tu uz vubec padlo nekolik zajimavych napadu. Co se mi libi asi tak
nejvice:

Jaro: 1. Resit predevsim logiku databaze tak, aby pri provozu dochazelo
k co nejmensimu mnozstvi koliznich situaci.
V kritickych mistech je mozne zavest historii zaznamu
2. Vytvorit system pristupovych prav pro zakladani, zmeny a ruseni
zaznamu
3. Vyuzit transakce
4. Podle charakteru ulohy zvazovat pravdepodobnost vzniku koliznich
situaci
a v konkretnich pripadech zajistit osetreni takoveho stavu.
Nejcasteji
asi oznamenim o zmene a nasledne reseni situace. Casto se to resi
prostym oznamenim, ze neni mozne zmeny ulozit v pripadech, kdy
pravdepodobnost vzniku podobne situace je miziva. Pokud by se
jednalo
o nepripustnou ztratu, je mozne zalozit napr. novy zaznam.
5. Zamkum bych se pokud mozno vyhybal. Umite si predstavit, jak
vytvorit
docasny zamek na databazi, ktera se ma replikovat?


1-3 - souhlas.
4 - neni dostatecne obecne (pokud bychom meli neco obecneho, funkcniho a
jednoduse aplikovatelneho / v komponente?/ pak neni
problem to pouzivat i na 'jednoduche' situace
5 - tady bych si dovolil objasnit zamky a zamky :-) Jaro IMHO patrne
mysli zamky na bazi serveru (tzn. page lock, table lock, row lock),
ktere blokuji udaje pro dalsi transakce atd. V tom pripade je skutecne
potreba se jim co nejvice vyhybat (myslim tim pro sitovou editaci
udaju), ale zase se to neda vzit tak nejak obecne (zalezi na situaci).
Druhym "typem" je zamek (v podstate nejaky priznak) definujici
moznost editace urciteho zaznamu (cili jakoby zamek na strane klienta).
Osobne bych ho nejradeji videl na strane aplikacniho serveru
jako 'mezivrstvy' mezi klientem a databazi.

Pak se mi libily postrehy Viktora, ovsem nejsem si jist, ze by nektere z
techto reseni bylo to spravne ale nektere by mohly byt v jistych
situacich vhodnym resenim. * pokusis se konflikt nejak inteligentne vyresit sam, tj. napises
soft,
ktery rozhodne, zda lze dva modifikovane radky nejakym zpusobem
sloucit.
Pokud se nemenily tytez sloupce, proc by to neslo? Je to dokonale
reseni,
ale myslim, ze neni treba uzivatele tak rozmazlovat.

* u kazde zmeny ukladas jeji semantiku, jinak receno posloupnost akci,

ktere transformuji puvodni radek do nove podoby. Ten pozdejsi uzivatel

obdrzi zpravu, ze pracoval na neaktualnich datech a posloupnost akci,
ktere
provedl, se zopakuje na tech, ktera dodal uzivatel 1. Fantazie, ovsem
nekdy
to muze vest k necekanym vysledkum. Vsechno zazalohuj.


Padla samozrejme spousta dalsich zajimavych postrehu.

Pojdme se pokusit nejakym zpusobem definovat principy chovani v siti,
ktere by mela mit poradna aplikace. Rad bych, kdyby se nam
podarilo dojit k necemu konkretnimu, co by se dalo opravdu pouzit v
praxi a podarilo se to zahrnout do Delphree ADO (nebo DBEasy).

Takze ted vypisu pozadavky na zamykani databaze (vychazim z toho co me
trapi a jak to resim nyni) a pojdme to nejak propracovat:

Problemy C/S verze 1.0
=================

1. Zamky

1.1 V jednom casovem okamziku muze provadet editaci pouze jeden
uzivatel

Tabulka LOCKS se sloupci:

(nazev - typ - pokec)
id - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku v editovanem objektu -
jednoznacne idetifikuje, ktery zaznam je zamcen
user_id - long integer - jednoznacny identifikator uzivatele (majitele
zamku) - ja mam treba vlastni seznam uzivatelu
station - string - jmeno pracovni stanice (pocitace) na kterem je
uzivatel (majitel zamku) prihlasen - idealni by byl nejaky jednoznacny
identifikator (ale mam pocit, ze v siti nelze mit dva pocitace se
stejnym jmenem - nebo ano?)
time - datetime - cas vytvoreni zamku
status - ??? - pripadny stav zamku (treba priorita, druh atd.) - osobne
zatim nepouzivam ;-)
expire - platnost zamku (momentalne nevyuzivam - videl bych to na
aplikacni server)

Funkce:

BeforeEdit: zkontroluji zda existuje nejaky radek v tabulce LOCKS pro
object a object_id. Pokud existuje, zobrazim hlaseni ze je
zaznam prave upravovan uzivatelem user_id na pocitaci station od casu
time. Pokud zamek neexistuje vytvorim zamek pro dany object,
object_id, user_id, station, time atd. a umoznim editaci.

(totez pro BeforeDelete)

AfterPost: pokud se nejednalo o Insert (neni nutno zamykat a ani to v
principu nelze pro neulozeny zaznam udelat) tak smaze zamek.
Pokud jej nenalezne tak jej nekdo patrne odstranil (zamek) a mela by se
nabidnout nejaka moznost jak to resit (??? diskuze ???).

AfterCancel: (totez jako pro AfterPost)

Moznosti:

Rucni odstraneni (sestreleni) zamku - pro narocne nejlepe ve 3D
provedeni DOOM like ;-) - zobrazi tabulku LOCKS a umozni urcity
zamek odstranit (nebo treba jen zmenit jeho status - zamek by se
odstranil az po ukonceni editece prvotnim majitelem zamku). Toto je
nutne pro pripad: kdy si ta baba odbehne k Viktorovi na parek s rohlikem
;-). Mozno resit i pripadnym casovym vyprsenim platnosti
zamku (jako programator bych mel rad moznost volby chovani zamku (casova
expirace, rucni smazani(editace) ci oboje atd.- neco na
zpusob volby vlastnosti v komponente)).

Pozadavky:

Asi by bylo fajn, kdyby bylo mozno zadat vice objektu k zamceni
(volitelne). Napr. pro pripad SELECTu z vice databazi (pres joiny).
Obcas by se mi hodila moznost zamknout zaznam soucasne i v jine tabulce
(aby to co zapisuju, bylo opravdu to co zapisu).

1.2. Editaci smi provadet vice uzivatelu najednou

(jen kratce - doplnim v dalsi verzi :-)

BeforePost: - zkontroluje aktualni data na serveru a pokud zjisti zmeny
nabidne reseni (ulozit, zrusit, porovnat zmeny v zavislosti na
zmenenych udajich - nastaveni pro jednotliva pole atd.). Toto asi bude
podstatne slozitejsi nez bod 1.

2. Logovani zmen

Pro archivaci provedenych zmen v databazi (INSERT, UPDATE, DELETE). Ono
to sice delaji i SQL servery, ale nejak se mi to nezda
dvakrat idealni (ovsem je taky mozne, ze to neumim pouzivat). Tato volba
by mela byt volitelna (Log changes: True/False).

Tabulka LOGS se sloupci:

id_log - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku - jednoznacne idetifikuje
zaznam
user_id - long integer - jednoznacny identifikator uzivatele (majitele
zamku)
time - datetime - cas a datum operace
typ - integer - typ provedene zmeny (zatim pouzivam jen UPDATE, INSERT,
DELETE - zamopnel jsem na neco)
old_value - varchar(3800) - puvodni hodnota
new_value - varchar(3800) - nova hodnota

(old_value, new_value - ten varchar mi pripada nejlepsi - zalezi na
typu databaze). Do old_value a new_value zapisuju radek tabulky
(hodnoty jednotlivych sloupcu oddelenych znakem '|' ) cili asi takto:
'Zeleny|Hugo|1|452|Amenit'.

Problemy:

Nejvetsi asi se zaznamem zmenenych udaju:

- omezeni velikosti (pokud by se to nepsalo treba do BLOBu - coz se mi
nezda idealni - nebo ano?)
- otazka, zda archivovat je id se souvisejicich tabulek (lookup pole)
nebo hodnoty se souvisejicich tabulek ???
- oddelovac '|' taky neni asi uplne idealni (osobne jsem tento znak ale
niky nepouzival jako data v databazi)

-------------------- konec ----------------------

Cele bych to videl jako soucast komponenty (nejlepe pro ADO ;-) nebo
spise jako pridavne komponenty (chci logovat zmeny - pridam
komponentu, chci zamykat - pridam jinou). Navrhujte - zavrhujte.

Ufffff a hodina casu v trapu ;-)

Ahoj

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

Intranet

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 21:53:45

Jan Pospisil wrote:
>
> Zdravim
>
> Rad bych proniknul do sytemu komunikace v siti. Respektive mi staci,
> kdyz by mi nekdo poradil jak poslat data z jednoho PC na druhe
> ktere je pripojeno do site Microsoft Windows.

Ahoj,

Asi nejlepsi reseni je v dnesni dobe DCOM. Jedine co to trochu kazi je
nutnost dodatecne instalace podpory DCOMu do Windows 95 a konfigurace.
COM technologie ma ve svete Windows prece jen velkou budoucnost, casem
na ni bude postaveny temer cely system. Takze cim drive s ni zacnes, tim
lepe pro tebe. Co se tyce pouziti COMu a DCOMu v Delphi, tak dobre je
to popsane v "Delphi 4 unleashed" od Charlieho Calverta. Priklady si
muzes stahnout zde:

http://hometown.aol.com/charliecal/

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Existence adresare

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 21:53:54

> Libor Junek wrote:
>
> Mam problem. Nevim jak kontrolovat existenci adresare. Neco jako je FileExists.

Ahoj,

Pouzij DirectoryExists (je v unitu FileCtrl)

> Potrebuji kdyz nejaky adresar neni vytvoren tak ho zalozit(nebo naopak).
> Nevite na to nejakou API funkci?
> Take bych potreboval vytvareni adresare a mazani. To jse da ale obejit pres "MD" a "RD".

Adresar vytvoris pomoci funkce CreateDir a smazes pomoci RemoveDir (oboji je
v SysUtils).

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

elementarny problem s C/S

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 08.3.1999 21:54:01

Zbysek Hlinka wrote:

> Mirun wrote:
>
> > delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl by mi nekdo
> > uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
> > (nemyslim tim aby jste mi vysvetlovali teorii a proc se to dela, ale chci
> > znat Vas konkretni pripad v praxi, ktery nema reseni bez pouziti uzamceni)
>
> Mno, delal jsem dispecersky program, kde jeden zaznam mohl byt

Taky mame jeden dispecersky program (da-li se to tak nazvat ;-) s totoznym
problemem. Prihodim dalsi: mam programek pro evidenci pacientu, ve kterem se
pisi k jednotlivym diagnozam textove zpravy, ktere se ukladaji do databaze.
Takova zprava se pise cca pul hodiny az hodinu a proste neni mozne, aby ji
najednou psalo vice lidi. Tzn. potrebuju zaznam zamknout (POZOR nejedna se o
zaznam na databazi, ale v podstate o nejaky flag!).

Dalsi jednoduchy priklad: zakaznik si preje, aby jeden zaznam mohl v jednom
okamziku editovat pouze jeden clovek. A nas zakaznik nas pan (do jiste miry
samozrejme).

Proste nekdy je to fajn a nekdy zase ne, ale ja bych si chtel VYBRAT pro kazdy
jednotlivy pripad, tabulku, dotaz apod. Viz Problemy C/S 1.0

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 21:54:32

A nastavoval jsi ten priznak na serveru nebo jej nastavoval klient?
Tady jsme mozna konecne u jadra veci. Klient nema co nastavovat zamek
nebo priznak. Kdo ten zamek uvolni nebo vrati priznak na puvodni hodnotu,
kdyz klient zatuhne?
S postupem casu tam budou pribyvat "neuvolnene" zaznamy.
Pokud to nastavi triger pri BeforeUpdate a uvolni pri AfterUpdate, tak je to
OK.
Na tvem prikladu je dobre videt rozdil mezi zamkem a pouzitim priznaku.
Zatimco zamek blokuje dalsi transakce a praci serveru a musi byt pouzit jen
kratkodobe, priznak blokuje pouze jeden zaznam k editaci, protoze to je tak
osetreno klientsky, ale server muze provadet libovolne operace a nic ho
neblokuje.
Tady, kdyby bylo jeste vyreseno, ze bude videt, ktery uzivatel zaznam
blokuje, tak je to mozne pouzit i dlouhodobe. Na toho dispecera se mohou
vsichni ... "vynadat mu", a on je klidne muze poslat do ... "haje zelenyho",
protoze on byl prvni a jemu ten kseft patri, ale to uz je veci vnitrni
smernice a ne programu.
Jaro


Mirun wrote:

> delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl by mi nekdo
> uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
> (nemyslim tim aby jste mi vysvetlovali teorii a proc se to dela, ale chci
> znat Vas konkretni pripad v praxi, ktery nema reseni bez pouziti uzamceni)

Mno, delal jsem dispecersky program, kde jeden zaznam mohl byt
otevreny delsi dobu (dispecer se vyptaval klienta a doplnoval udaje).
Potom vetu ulozil, ale mohl se k ni pozdeji nekolikrat vratit pri
doplnovani novych udaju. Jenze k teze vete se mohl vratit i jiny
dispecer. Tam nelze pripustit, aby jiny dispecer sebral jinemu
dispecerovi vetu v okamziku, kdy je veta editovana. Takze je tam
nutno vyresit stav, kdyz je veta otevrena, a ostatnim se vrati hlaska
(kdyz ji budou chtit otevrit pro zmeny), ze nemaji sanci. Neresil
jsem to zamkem na vete (uz proto, ze s vetou souvisely dalsi
zaznamy v dalsich tabulkach a take proto, ze to bylo na SQL), ale
prave nastavenim priznaku v zaznamu.

Tam ovsem z podstaty provozu nemohlo dojit k tomu, ze by baba
nechala vetu otevrenou a sla si vyrizovat sve problemy na zachod a
do kantyny. :-)


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

BCB4.0

[*] Stanislav Kolar <standa(zv)winroute(tec)cz> - 08.3.1999 21:56:14

Hi, All !

Kdo uz mate zkusenosti s BCB4.0 ? Je mozne linkovani statickych knihoven
*.LIB vyrobenych v MS VC++ 4.x a vyssich bez toho, aby linker hlasil onu
chybu v COFF hlavicce knihovny (cimz veskere pokusy o linkovani konci ;-( ??

S. Kolar (standa(zv)winroute.com)

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 22:05:52

Hallo
K serveru se ale neprihlasuji jmenem nebo cislem pocitace, ale
jmenem uzivatele ulozenem na serveru. Alespon ja delam programy tak, aby
bylo lhostejne z jakeho pocitace se prihlasim a aby dokonce bylo mozne byt
prihlasen
pod stejnym jmenem uzivatele i vicekrat. Nekdy se to hodi.
Jaro


>Hello Jaro!
>
>>> Zaujimava je aj varianta, ked aplikacia pred editaciou rekordu
>>> poznaci do neho id-klienta. Potom ostatni mozu byt vystrihani,
>>> ze pripadna editacia
>
>> To ano. Minimalne to narazi na problem, ze se mohu pod stejnym
>>"id-klienta" prihlasit z ruznych stanic, takze to vlastne nic neresi
>
>
>Ked pomenujem v sieti dve stanice rovnako, je z toho dost dobra sranda
>uz pri nabiehani systemu :-). Horsi je pripad, ked si uzivatel otvori
>na jednom pocitaci druhe okno s tou istou aplikaciou a pri starte by
>zrusil vsetky 'zamky' prveho okna. Takze uplne ID by muselo mat zlozky
>pocitac,uzivatel, instancia. Ale bolo by to zbytocne, lebo pre
>fungovanie staci jeden bit: volno/obsadene, ostatne je len na
>urychlenie automatickeho uvolnovania po zatuhnuti aplikacie.
>
>Hlavne by mala mat datova komponenta pre viacnasobny pristup metodu,
>ktora by zarucene naraz vykonala:
>
> lock
> if CurrentCRC = OldCRC
> rewrite
> unlock
>
>ale toto sa musi robit na strane serveru. Klient iba posle, ake mal
>rekord CRC v case, ked ho on (pred 10 minutami) cital a este posle nove
>hodnoty, ktore by tam rad zapisal, ak nedoslo medzitym k modifikacii. O
>tych lockoch aplikacia nemusi vediet, su len na to, aby na serveri
>mohlo ist viac threadov.
>
>Bye mailto:vmlich(zv)mbox.vol(tec)cz
>V.Mlich http://www(tec)czech-web(tec)cz/~vmlich
>
>
>

Form.BorderStyle:= bsNone;

[*] Lukas Voborsky <xvobl03(zv)sorry.vse(tec)cz> - 8.3.1999 22:06:22

On Sat, 6 Mar 1999, Ing. Brcko wrote:

> Na hlavnej forme aplikacie nastavim BorderStyle na bsNone.
> Ako mozno potom tuto formu chytit mysou a posunut na lubovolne miesto desktopu. (Chcem aby to vyzeralo podobne ako napr. WinAmp).
>
> Vdaka


Nejni to z moji hlavy, ale myslim, ze to nevadi :-)

....
private
procedure WMNCHitTest(var Msg: TWMNCHitTest); message wm_NCHitTest;
....
end;


procedure TFInfo.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
{ fool windows by telling it that it's in our caption area although it's in our client area }
if (htClient = Msg.Result) then
Msg.Result := htCaption;
end;

Lukas Voborsky

-==============================================================-
mailto: voborsky(zv)menza.mff.cuni(tec)cz ICQ: 21084410
www: http://come.to/voborsky tel. 8551040-9 l. 393
-==============================================================-


elementarny problem s C/S

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 08.3.1999 22:14:24

Tak jsem z toho blazen - me ta moje zprava z konference neprisla a Zbysek na ni
odpovida ??? Hmmm...

Zbysek Hlinka wrote:

> K tomuhle bych mel drobnou poznamku - nelze cekat, ze vsechno
> vyprogramuje a jeste k tomu optimalne jeden clovek. Jsem
> presvedcen o tom, ze je treba nahradit stavajici komponenty visici
> na DBLib (tedy prinejmensim TDatabase, TTable, TQuery,
> TStoredProc a potazmo cely MIDAS :) a napsat je lepe, tak aby
> vyhovovaly SQL databazim (na souborove se muzeme vykaslat,
> tem staci DBLib). Neni treba, aby psali vsichni a rovnou
> komponenty. Ale pokud z toho mame mit brzy uzitek, je treba, aby
> se zapojilo dost lidi do psani trebas jen vnitrku metod a zkouseni
> toho, co je uz napsane. Kazdy si muze najit nejakou "svou"
> metodu a vypiplat jeji streva. Vzajemne souvztaznosti uz pak
> ukociruji.

Samozrejme, proto bych hrozne rad zkusil spolecnymi silami definovat nase
potreby a pamatovat na ne v navrhu komponent apod.

> > Problemy C/S verze 1.0
> > =================
> >
> > 1. Zamky
> >
> > BeforePost: - zkontroluje aktualni data na serveru a pokud zjisti zmeny
> > nabidne reseni (ulozit, zrusit, porovnat zmeny v zavislosti na zmenenych
> > udajich - nastaveni pro jednotliva pole atd.). Toto asi bude podstatne
> > slozitejsi nez bod 1.
>
> A tohle by IMHO mohlo byt uz soucasti komponenty (s volitelnym
> nastavenim kontrolovat/nekontrolovat).

Presne tak, ja tu popisuju, co mam funkci v praxi - a je to des to udrzovat :-(

> > 2. Logovani zmen
> >
> > Tabulka LOGS se sloupci:
> >
> > id_log - autoincrement - primarni klic (z principu ;-)
>
> Neni prilis vhodne pro replikovanou databazi. To jen poznamka na
> okraj. Takze je to problem reseni navrhu databaze, ne komponent.
> Nazev tabulky a datumocas (ovsem s milisekundami!) vidim jako
> postacujici pro jednoznacnou identifikaci.

Jasne. Nelze vsechno hodit na komponenty. Jak rikam, prezentuju fungujici
reseni, tak kritizujte (s tema replikacema je to fakt, chtelo by to nejak
vyresit).> > object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
> > object_id - long integer - obsahuje id radku - jednoznacne idetifikuje
> > zaznam user_id - long integer - jednoznacny identifikator uzivatele
> > (majitele zamku) time - datetime - cas a datum operace typ - integer - typ
> > provedene zmeny (zatim pouzivam jen UPDATE, INSERT, DELETE - zamopnel jsem
> > na neco) old_value - varchar(3800) - puvodni hodnota new_value -
> > varchar(3800) - nova hodnota
>
> Pricemz logovani zmen je asi nejlepsi provadet na urovni triggeru,
> pripadne externe volanych ulozenych procedur. Delat to z
> komponenty (ci z programu) vidim jako blbost.

Osobne triggery v lasce moc nemam. Navic je to trosku problem udelat to obecne,
protoze ne kazda databaze ma trigger a ne kazda ma stejne typy triggeru. Parkrat
jsem ho pouzil, ale nakonec se mi vetsinou vice osvedcily ulozene procedury
(netvrdim ze vzdy - chran buh ;-). Ja to s programu delam - resp. volam ulozene
procedury s parametry.

> > Cele bych to videl jako soucast komponenty (nejlepe pro ADO ;-) nebo spise
> > jako pridavne komponenty (chci logovat zmeny - pridam komponentu, chci
> > zamykat - pridam jinou). Navrhujte - zavrhujte.
>
> Logovani z komponenty jsem uz zavrhl. :-) Protoze vidim jako
> hovadinu delat ADO i pro souborove databaze, nechme nektere
> veci primo na vlastni databazi, ta se o ne postara lepe.

Myslim ti logovani ve stylu ten a ten uzivatel zmenil urcity udaj v t urcitou
dobu (a tim zpusobil ty a ty problemy atd.). Nevim o tom, ze by mi to nabidly
nejake databaze (mozna jen nevim kde to je). Tyhle veci chci zobrazit i pro
standardniho uzivatele a aby byly ve srozumitelne forme (aspon do urcite miry).
Je to zaroven ochrana nas programatoru - osobne casto slychavam: "Pocitac sam,
ja nic, ja muzikant". Reknu vam, v takovem okamziku je takove pekne logovani
MOOOOOOOC uzitecna vec.> Mozna by se pres komponentu daly resit docasne zamky (ovsem
> pouze v duvodnych pripadech!) takoveho typu, ze na zamky by
> byla trebas extra tabulka. Je to ovsem vhodne pouze pro dobre
> zduvodnene pripady.

Samozrejme, proste se mi to nekdy hodi a nekdy ne. Je mi jedno jakym zpusobem se
to provede, ja potrebuji tuto funkci mit (nekdy) v programu a zakaznik ji
vyzaduje. Potom ji samozrejme chci pouzit efektivne, rychle a spolehlive....

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 22:15:39

JA NIC, ale server ti oznami, ze na to nemas pristupove pravo,
pripadne, ze to nelze provest, protoze by doslo k poruseni integrity,
pokud je vazba do dalsich tabulek. Moznosti je vice. Mohu povolit
zmenu treba jenom pomoci ulozene procedury, ktera si provede
prislusne kontroly atd. Na co ti pak bude query executor?

Jeste jsi porad presvedcenej o te pravde?
Jaro

>
>Je to pravda.
>Co udelas, kdyz se prihlasim nejakym query executorem
>a udelam update na zaznam, ktery by mel byt jinak zamcen?
>
>Jura
>----------
>Jiri Polak
>e-mail:jura.polak(zv)email(tec)cz
> jiri.polak(zv)tconsult(tec)cz
>web :http://freeweb.coco(tec)cz/jpolak
>----------
>The only good bug, is a dead bug!

rowid

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 08.3.1999 22:16:21

Jan �ebel�k wrote:

> To jsme si asi nerozumeli.
> Nemam nic proti VZDY jednoznacne a DB serverem generovane indetifikaci zaznamu.
>
> Nepouzil bych na to ovsem nejake "interni" rowid, ale "standardni" polozku (ID), kterou pak uvedu v PRIMARY KEY.
> Jednoznacnost mi zajisti prave PRIMARY KEY, na generovani pouziji
> - v InterBase: generator
> - v Oracle: sequence
> - v MS SQL Server: identity
> - atd.
>
> Pak se na to mohu kdykoli odvolavat jako na ID, nikoli v kazde databazi jinak (rowid, rdb$db_key a pod.)

Jasne, nepochopil jsem to ;-) Mas Honzo naprostou pravdu.

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

Tisk dlouhych grafu

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 22:20:22

Dodek wrote:
>
> zdravim vsechny,
>
> uz jsem se jednou ptal ale nikdo se neozval tak zkousim jeste jednou, nechce
> se mi verit ze by se s tim jeste nikdo nesetkal.
>
> Potrebuju z D3 tisknout dlouhe grafy na nekonecny (traktorovy ) papir. Ma s
> tim prosim nekdo nejake zkusenosti, je to vubec mozne z windows tisknout
> grafy na nekonecny papir ?

Ahoj,

Asi prvni co bych zkusil je nastavit velikost stranky bez okraju tak aby se
dalo tisknout pokud mozno na celou stranku. Potom bych dany graf rozdelil
na jednotlive oblasti a ty za sebou tisknul, drobna mezera v miste ohybu
stranky papiru snad nebude tolik na zavadu.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Menu

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 22:21:09

> Milan Fiedler wrote:
>
> nevite o nejake komponente do Delphi 2, ktera by v menu mela obrazky (Gliph).

Ahoj,

Zkus prohledat DSP, Torry, urcite tam neco takoveho nekde najdes.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Cestina v Paradoxu-memo

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 22:24:25

David Adamec wrote:
>
> 1)Mam problem.
> Pripojuji se na dat. tabulku paradox a mam problemy s cestinou.
> Tabulka obsahuje i polozky 'memo'. Vsechny data v DBGridu se zobrazi
> spravne, ale jak znamo v dbgridu nelze zobrazit memo. Tak sem tam dal
> DBMemo a tam se nezobrazuje cestina. Pokousel jsem se nastavit
> vsechny mozny kodovani cestiny, ale nepomaha to.
> Pouzivam D3.

Ahoj,

Kdyz tu tabulku otevres v Database Exploreru a podivas se na tu memo
polozku je to take chybne ? Zkus se podivat na nastaveni vlastnosti
Transliterate u daneho MemoFieldu.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 22:38:22

>> Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne s Jaroslavem
>> i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake zamky existovaly."
>> Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
>> mi, jak to chces jinak delat.

Zda se mi, ze se jedna pouze o nepochopeni toho prispevku. Transakce jsou
samozrejme velkou vymozenosti serveru a rozhodne je potrebne je pouzivat. .
Transakce ale urcite neni to same co zamek. Transakce sice zamky pouzivaji,
ale nejsou k tomuto ucelu urceny. Slouzi zejmena k zajisteni integrity dat.
Ke sve cinnosti potrebuji vytvaret docasne zamky jejichz vytvarni a
uvolnovani si samostatne ridi. Od transakce se vyzaduje podstatne vice nez
pouhe vytvoreni a uvolneni zamku. Krome toho v ramci jedne transakce se muze
automaticky vytvorit a uvolnit vetsi mnozstvi zamku.

Jiz drive jsem psal, ze transakce vytvareji take zamky a ze nastartovani
transakce po celou dobu editace je stejne tak spatne, protoze dochazi k
podobne blokaci aktualizace databaze jako v pripade zamku. Pokud nekdo
pouziva transakce jen za ucelem vytvareni zamku, tak jde o nepochopeni
smyslu transakci.

Ukolem cislo 1 je zajisteni integrity databaze. Predstavte si, ze ukladate
fakturu. Ulozite polozky faktury do jedne tabulky a potom hlavicku do jine
tabulky (nebo naopak). Po ulozeni nekolika polozek klient zatuhne nebo dojde
k neocekavane chybe. Na databazi mate nekolik "ztracenych" radku, ktere
nepatri zadne hlavicce faktury. Soucet napr. uctu z faktur a protiuctu z
polozek nikdy nevyjde. Tezko najdete chybu, kdyz se na "ztracene" polozky
nedostanete, protoze k nim neexistuje zadny zaznam z hlavicek faktur.
Podobnych prikladu je mozne vymyslet velke mnozstvi. Mnohdy jde integrita i
pres vetsi mnozstvi tabulek. Poruseni datove integrity je tak vazny problem,
ze vedle toho problem s ulozenim zaznamu ke kteremu se ta "nase babka" vrati
az za pul hodiny a dele je zcela zanedbatelny. Z tohoto prikladu je snad
dobre videt, ze zamky jsou prostredkem, ale nikoliv cilem transakci.

Doufam, ze jsem timto odpovedel i na nasledujici dotaz
------
Tak jo, ale jak to teda ta Interbase resi? Nemohl bys to nejak v kratkosti
objasnit?
------

K nasledujicimu dotazu
------
>> na sieti je clovek A a B
>> 1. clovek A prezera tabulu a zacne editovat nejaky zaznam
>> 2. clovek B ma tu istu potrebu a zacne editovat ten isty zaznam
>> 3. clovek A skonci skor a vykona prikaz update ... where id=idEditoavneho
>> zaznamu
>> 4. clovek 4 skonci tiez, a chce update ....
>>
>> co teraz? Ako spravim to, ze pred editaciou by sa zaznam "Zamkol na
>> editacie a mazanie" a odomkom az po upadte alebo cancel, tak aby napr. B
>> nemohol zmazat zaznam, ktory prave edituje A ...
>>
>> Richard Willmann
-------
Uff .. .V jednodussim pripade pouzij navodu Zbyska Hlinky s jeho
dispecerskym programem. Nebo jeste lepe to udelej podle Sebelika, jak pise o
vytvoreni "Entity life history", kterouzto tabulku zajistis pomoci trigeru.

Jaro

Chyba pri pretypovani String <-> PChar ! (Was :Pom

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 08.3.1999 22:48:42

"Ing. Zdenek Sraier" wrote:

> > SetLength(Dest, Len); // <- Tohle ti tam chybelo, musis alokovat pamet pro retezec
>
> Tak timhle si me dostal. Proooc tahle ta konstrukce ?
> SetLength se pouziva pro nastaveni NOVE delky retezce (nebo pole).
> Ty ale nactes stavajici delku retezce a v druhem kroku ji temuz
> retezci nastavis.

Ahoj,

Jeste ze jsi na to upozornil, v tom prikladu je totiz jeste pomerne zaludna
chyba, pokusim se to popsat na jednodussim prikladu s volanim API funkce
GetComputerName.

Je asi vseobecne znamo, ze existuje vice zpusobu ukladani retezcu. V 32bit
Delphi jsou to predevsim dva casto pouzivane typy String (LongString) a PChar.

Typ PChar (retezce ukoncene nulou) jsou pouzivany v C a proto se take pouzivaji
pri praci s API funkcemi. Jedna se vlastne blok pameti kde je konec retezce
oznacen hodnotou 0. Delka retezce se vzdy pocita nalezenim ukoncovaciho znaku #0.

Typ String pouzivany v ObjectPascalu uklada krome vlastniho textu jeste delku
retezce - 4 byty (a take pocet referenci, to je jiz ale mimo toto tema), tyto udaje
jsou ulozeny pred vlastnim textem. Delka retezce je pak dana prectenim teto ulozene
hodnoty. Typ String umoznuje pomerne snazsi praci s retezci, protoze operace ktere
vyzaduji zmenu delky retezce resi sam bez nutnosti na tuto skutecnost myslet.

Vzhledem k caste nutnosti konverze mezi String a PChar udelali programatori
od Borlandu pomerne vtipnou vec, a to ze format String vzdy na konec textu sam
uklada znak #0. Pri predavani Stringu jako PChar konstanty se tedy predava jen
pointer na zacatek textu v promenne String. Horsi situce vsak nastava v pripade,
ze chceme pouzit String jako PChar pro navratovou hodnotu. I zde samozrejme staci
predat ukazatel na zacatek oblasti textu, ale je tez nutne aby tento ukazatel jiz
ukazoval na blok pameti ktera odpovida maximalni mozne delce predavaneho retezce
ukonceneho nulou. Toto lze prave resit pomoci procedury SetLength ktera alokuje
tuto pamet a nastavi udaj o delce retezce. S tim je ale spojen dalsi problem,
pokud predame String pretypovany na PChar jako parametr do API funkce vracejici
nejakou hodnotu, tak delka navraceneho retezce muze byt kratsi nez maximalni
definovana delka retezce (viz priklad nize). Protoze se jedna o retezec ukonceny
nulou a jeho delka je dana pozici znaku #0 je nutne explicitne upravit hodnotu
delky Stringu ! Toho lze docilit na prvni pohled podivnym prirazenim: S := PChar(S).
V opacnem pripade nebude mozne provadet dalsi operace se Stringem (pridavani
dalsiho retezce apod), protoze znak #0 bude stale soucasti "platneho" textu a bude
dochazet k velmi podivnemu chovani.

Doufam ze jsem to popsal alespon trochu srozumitelne, nejsem zrovna typ cloveka
ktery umi vec dobre vysvetlit :-)) Dalsi informace lze najit v manualu (v jeho
PDF verzi na CD) Object Pascal Language Guide a to v odstavcich:
"Mixing Pascal strings and null-terminated strings" a "Internal data formats"


procedure TForm1.Button1Click(Sender: TObject);
var
C: array[0..MAX_COMPUTERNAME_LENGTH] of Char;
Size: DWORD;
S: String;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
if GetComputerName(C, Size) then
ShowMessageFmt('Pomoci PChar: "%s" to je jmeno pocitace', [C]);
// Reseni pomoci PChar je zcela bez problemu

Size := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(S, Size);
// Zde alokujeme pozadovany pametovy prostor pro predany String jako PChar

if GetComputerName(PChar(S), Size) then
begin
ShowMessageFmt('Spatne: Length:%d, "%s" to je jmeno pocitace', [Length(S), S]);
// Zde by melo byt vse v poradku, ale neni ! String ma chybnou delku a nebude
// mozne pridat dalsi text za jmeno pocitace

S := PChar(S);
// Teprve zde je to spravne
ShowMessageFmt('Spravne: Length:%d, "%s" to je jmeno pocitace', [Length(S), S]);
end;
end;

> Vzalo me to tak, ze jsem si otevrel help i dokonce manual !!! :-))).

Otevrit cas od casu help neni vubec spatne, alespon ja to tak delam. Kdyby v
nem obcas nebyly blbosti, tak je to vyborna vec :-)

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Generator v MS SQL

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 08.3.1999 22:51:04

Zbysek Hlinka wrote:

> IMHO je problem v tom, ze autoinkrement (coz je ono identity) se
> zaklada az po Post, pricemz stavajici komponenty neumeji udaj
> dodatecne zjistit. Na tento (a mnoho jinych) problemu narazim
> kazdou chvili, chci je tedy resit pomoci ADO a na DBLib
> zapomenout.

Presne tak.

Kazdopadne id vlozeneho radku muzes na MS SQL serveru zjistit pomoci SELECT
(zv)(zv)IDENTITY. Ovsem musi to byt v jednom connection. Coz umoznuje bud SQL native
link a nebo ADO. Pres ODBC mi to neslo, protoze nelze (se standardnimi Delphi
komponentami) spustit dva SQL prikazy najednou (INSERT a nasledne ten SELECT).
Popr. ADO uz to castecne umi resit samo.

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

Kresleni ikony

[*] Petr Medek <xmedekp(zv)sun.felk.cvut(tec)cz> - 8.3.1999 22:54:10

Zdar vsem

Do TIcon si vytahnu pomoci ExtractIcon ikonu z exe. Chci ji priradit jako
Glyph do SpeedButtonu.
Takze ji nejprve pomoci TBitMap.Canvas.Draw(0,0, Ikona) prekreslim do
Bitmapy a tu priradim do Glyphu.
Problem je, ze pri prekresleni do bitmapy se mi ztrati udaj o transparentni
barve.
TBitmap si zvoli za transparentni barvu z leveho horniho rohu (pri
TransparentMode := tmAuto). To je vetsinou bila. Ale pak se ztrati i bila
barva zevnitr ikony (viz ikona MS Word). Problem asi bude v tom, ze pri
volani metody Draw se transparentni barva nahradi bilou.
Zvlastni je, ze kdyz volam metodu Draw od Canvasu z PaintBoxu, zobrazi se
ikona spravne.

Dik za kazdou radu

Petr Medek


elementarny problem s C/S

[*] Viliam Mlich <vmlich(zv)mbox.vol(tec)cz> - 8.3.1999 23:07:53

Hello Jan!

>> //prevod x penez z uctu a na uctu b:
>> starttransaction
>> a := a - x; //ucet a musi byt zamcen

> Ale vzdyt to prave neni pravda!
> O integritu takoveho prevodu penez se mi prave bez
> jakehokoli explicitniho zamykani postara transakce.
> Pokud se pripsani na ucet b nepodari, nastane rollback
> a nepovedl se tedy cely prevod.

Prave, ze uvedena situacia je typicky pripad, ktory bez LOCk nie je
riesitelny. Treba rozlisovat medzi transakciou (t.j. seriou akcii, z
ktorych kazda musi byt dokoncena, inak sa musi vrati povodny stav) a
kritickym usekom, v ktorom s datami moze manipulovat iba jeden proces.
Vobec to nemusi byt databaza, ale napriklad aj globalna premenna, s
ktorou pracuju viacere thready sucasne. Akurat v databazach sa namiesto
'semafor' zauzival vyraz 'lock'.

Konkretne zmena stavu uctu (A:=A+X) v skutocnosti musi prebiehat:

1. Zamkni ostatnym pristup k A
2. Vyber obsah A
3. Pripocitaj k nemu X
4. Zapis vysledok do A
5. Povol ostatnym threadom pracovat s A

Kazde ine riesenie vedie k poskodeniu dat v pripade, ze by druhy
procesor prave vykonaval thread, ktory k uctu pripisuje pohyby z inej
banky. Pritom bod 1. predpoklada dodatok 'a ked sa neda zamknut,
pokusaj sa o to urcity rozumny cas, potom vyhlas fatalnu chybu'.

BTW Ked pises o rollbacku, podla coho by sa malo poznat, ze sa prevod
nepodaril? Napriklad podla toho, ze sa vycerpal limit pokusov o
uzamknutie niektorej z poloziek v ramci akcie. Aplikacny program nemusi
pouzivat 'lock' explicitne, on je schovany vo formulacii SQL.

Bye mailto:vmlich(zv)mbox.vol(tec)cz
V.Mlich http://www(tec)czech-web(tec)cz/~vmlich

elementarny problem s C/S

[*] Erik Salaj <erik(zv)dodo.sk> - 8.3.1999 23:07:36

Vzdy, ked potrebujete vyhradny pristup k zaznamu, musite ho zamknut,
aby ho zaroven nemohol pouzit alebo pripadne zmenit niekto iny. Napriklad,
ak chcete zmenit stav na bankovom ucte (aj ked to nie je moj konkretny
pripad z praxe, pretoze bankove aplikacie som nikdy neprogramoval),
nemozete dovolit aby medzitym niekto iny tento stav zmenil. Je jedno,
ci sa takyto problem riesi v suborovej alebo SQL databaze, riesit
to musite tak ci tak, akurat v SQL database mate k tomu lepsie prostriedky
(napr. transakcie). Zamykanie je obecne velmi dolezita technika, jej podpora
je napriklad zabudovana priamo v mikroprocesore.

Erik Salaj

-----Original Message-----
From: Mirun <forcom(zv)telecom(tec)cz>
To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Date: Monday, March 08, 1999 12:11 AM
Subject: Re: elementarny problem s C/S


>Ahoj,
>delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl by mi nekdo
>uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
>(nemyslim tim aby jste mi vysvetlovali teorii a proc se to dela, ale chci
>znat Vas konkretni pripad v praxi, ktery nema reseni bez pouziti uzamceni)
>Diky
>Mirun

elementarny problem s C/S

[*] Erik Salaj <erik(zv)dodo.sk> - 8.3.1999 23:08:16

>> //prevod x penez z uctu a na uctu b:
>> starttransaction
>> a := a - x; //ucet a musi byt zamcen
>> b := b + x; //ucet b musi byt zamcen
>> //dalsi akce souvisejici s prevodem -
>> // - ulozeni informace o (financni transakci)
>> //do nejakeho protokolu, penezniho deniku atp.
>> commit
>
>Ale vzdyt to prave neni pravda!
>O integritu takoveho prevodu penez se mi prave bez jakehokoli explicitniho
zamykani postara transakce.
>Pokud se pripsani na ucet b nepodari, nastane rollback a nepovedl se tedy
cely prevod.
>Mam to bez starosti, SQL Server (InterBase urcite, ale jiste i ostatni) si
s tim poradi sam.

1. Ak nastavite spravny Transaction Isolation, tak ano.
2. Co myslite, ako sa o tu integritu postara transakcia? Zamknutim zaznamov.

>> Nebo - jak bys bez zamku resil docasnou nemoznost
>> updatovat nejaky zaznam uzivatelem, ktery jej normalne updatovat muze?
>> To nedokazes. Musel bys tam nasadit trigger, ktery by se rozhodoval na
>> zaklade nejakeho semaforu nebo vymyslet nejake jine kostrbate reseni.
>
>Docasna nemoznost updatovat zaznam se ve fazi analyzy resi necim jako
"Entity life history".
>Takovy "semafor" nebo rekneme "status" je pak nutnym dusledkem teto
analyticke uvahy a nevidim v tom nic kostrbateho. Je to naopak velmi ciste a
trigger to resi snadno a hladce.

Cielom analyzy by mal byt pokial mozno prehladny datovy a funkcny (alebo
objektovy)
model danej oblasti. Ak vsak tam budete vymyslat rozne mechanizmy na rozne
zlepsovanie/zrychlovanie a obchadzanie kdecoho, urcite to na prehladnosti
neprida.
Lahko sa potom moze stat, za aplikacia strati svoju zakladnu vlastnost -
korektnost.
Pokial je to mozne, tak by som napriklad uprednostnil deklarativnu integritu
(nie triggre), najlepsie ak by ju bolo mozne zachytit v relacnom diagrame
(co robia triggre tam asi velmi tazko znazornite).

Hlavne, aby to nedopadlo tak, ze nakoniec zistite, ze mechanizmus, ktory
ste vymysleli je vlastne zamok ;-) .

Erik Salaj
erik(zv)dodo.sk

elementarny problem s C/S

[*] Erik Salaj <erik(zv)dodo.sk> - 8.3.1999 23:28:58

>Kazda databaze resi konflikty mezi soucasnymi pristupy samozrejme po svem.
>Podivas-li se do InterBase Operations Guide na jeji pojeti multi-generacni
architektury a optimistickeho zamykani, urcite ze sveho presvedceni o
nevyhnutelnosti zamku hodne slevis.


Urcite nie. Aj najoptimalistickejsie zamykanie je zamykanie, pretoze
jednoducho tam musi byt ;-).

>No prave: mohu na zamky zapomenout - databaze si to ohlida sama.


Viacmenej ano.

Erik Salaj
erik(zv)dodo.sk

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 23:30:50

Puvodni zprava, kterou napsal Viktor Lostak dne 8 Mar 99,:

> [Viktor] Kdyz se transakce nepovede, vrati se vse do puvodniho stavu a
> skonci to chybou. Kdyz narazim na zamceny zamek, muzu udelat totez. Kde je
> vlastne rozdil? Transakce mi prijdou jako zamky s jednim typem reseni
> konfliktu - navratu k puvodnimu stavu a ohlaseni chyby. Nebo to tak neni?

Vidim, ze do toho nevidis. Transakce nejsou zamky a jsou urceny na neco
uplne jineho. Mimochodem, pokud klient zamkne zaznam a vytuhne, tak
zamek zustane. Pokud klient nahodi transakci a zatuhne, server udela
rollback a zamky uvolni. A opakuji - zadne zamky ani transakce nejsou
na to, aby se nahodily a baba si sla koupit nove boty...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 9.3.1999 02:19:47

> [Viktor] .....Kde je vlastne rozdil? Transakce mi prijdou jako zamky s
jednim typem reseni konfliktu - navratu k puvodnimu stavu a ohlaseni chyby.
Nebo to tak neni?


NENI TO TAK!

Mimochodem uz jsi videl nejake zamky, ktere vrati vsechny datove zmeny do
puvodniho stavu?
Jaro

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 9.3.1999 02:38:04

Myslim, ze kdyz si Sebelik naplanuje skoleni tupu
"databazove projektovani C/S", tak by tu mel mozna dost
potencialnich zakazniku
Vidim, ze to nekteri tvrdosijne stale nechapou.
----
>2. Co myslite, ako sa o tu integritu postara transakcia? Zamknutim
zaznamov.

----
Tak, ze celou skupinu operaci, ktera ma vliv na integritu bud potvrdi a nebo
zahodi.
Integrita a zamky - to je prece uplne o necem jinem!
----
>Cielom analyzy by mal byt pokial mozno prehladny datovy a funkcny (alebo
>objektovy) model danej oblasti.
----
No prave
----
>Pokial je to mozne, tak by som napriklad uprednostnil deklarativnu
integritu
>(nie triggre), najlepsie ak by ju bolo mozne zachytit v relacnom diagrame
>(co robia triggre tam asi velmi tazko znazornite).
-----
Vzdyt prave trigry slouzi rovnez pro udrzeni integrity. Jak to chces jinak
hlidat?

UFF.

Jaro


mySQL ODBC a Delphi 4

[*] eL <delphi(zv)sales(tec)cz> - 9.3.1999 06:23:46

Dobry den.
Prosim poradte.
Potrebuji se pripojit pres ODBC k databazi mySQL.
V Delphi 3 i v Paradox 7 se pripojim bez problemu.
V Delphi 4 mi vsak pri pokusu o pripojeni (jiz v dobe navrhu) hlasi Delphi
tuto hlasku:

"Your application is not enabled for use with this driver."

Podotykam, ze vse jede na temze stroji s toutez konfiguraci BDE i ODBC.
Proste v D3 a Pdox7 se pripojim v D4 ne.

Dekuji za radu.

eL...

elementarny problem s C/S

[*] Mirun <forcom(zv)telecom(tec)cz> - 9.3.1999 07:15:40

Hi,
vcera jsem tu nebyl, ale koukam ze jsem vyvolal dalsi zamkovej flamewar
:-)))

vezmu to jak to slo chronologicky:

>A s transakci je i ten priklad v praxi:

> x penez z uctu a na uctu b:
>starttransaction
>a := a - x; //ucet a musi byt zamcen
>b := b + x; //ucet b musi byt zamcen
> akce souvisejici s prevodem -
>// - ulozeni informace o (financni transakci)
>do nejakeho protokolu, penezniho deniku atp.
>commit

Jasne, tady se to da prirovnat ke kriticke sekci. Ovsem tohle je
pochopitelne, protoze se jedna o nutnost serveru zarucit aby behem transakce
nedoslo ke zmene dat z jineho mista. Jenze (mozna jsem se vyjadril v dotazu
prilis strucne) me slo o ten problem, kdy je zaznam zamceny babou, ktera si
odskocila na obed.
Pokud si vezmu jakykoliv radek v tabulce, ktery neobsahuje memo pole,
vzdycky kazdy field tohoto zaznamu muze nabyvat pouze jedne urcite hodnoty
(po zmene hodnoty ta stara zmizi). Coz v praxi znamena (dle meho nazoru), ze
takovy zaznam muzu otevrit jako read-only, a pokud jej uzivatel zmeni, poslu
novou hodnotu (napr. pomoci Update) na server, ale nemusim ho zamykat ,
protoze jediny duvod ktery bych k tomu videl, je pouze side-efekt zamku, ze
pri pokusu o editaci jinym uzivatelem dojde k upozorneni "se zaznamem
pracuje nekdo jiny, az to skonci, podivej se na zmeny, to co ted vidis
nebude jiz aktualni". Kdyz bych pouzil v zaznamu TimeStamp, dokazu tak
zjistit zdali od doby kdy jsem natahl data ze serveru, nedoslo ke zmene
nekym jinym (pokud ano, tak na to uzivatele upozornim). Problem se potom
prenese na dotycneho uzivatele, protoze on casem zjisti, ze pravdepodobnost
toho, ze zaznam nekdo zmenil (a nutnost resit konflikt), je umerna jeho dobe
stravene na obede. Kdyz bude se zaznamem pracovat co nejmensi mozno dobu,
pravdepodobnost konfliktu bude velmi mala.

>Taky mame jeden dispecersky program (da-li se to tak nazvat ;-) s totoznym
>problemem. Prihodim dalsi: mam programek pro evidenci pacientu, ve kterem
se
>pisi k jednotlivym diagnozam textove zpravy, ktere se ukladaji do databaze.
>Takova zprava se pise cca pul hodiny az hodinu a proste neni mozne, aby ji
>najednou psalo vice lidi. Tzn. potrebuju zaznam zamknout (POZOR nejedna se
o
>zaznam na databazi, ale v podstate o nejaky flag!).

Jelikoz neznam pozadi teto aplikace, vezmu to tak, jak je to napsano.
Je nepravdepodobne, ze na stejnem oddeleni bude psat k danemu pacientovi a
dane diagnoze zpravu vice jak 1 clovek. Pokud je 10 oddeleni, a kazde z nich
je nuceno se k diagnoze vyjadrit, bylo by dle me lepsi udelat dalsi tabulku,
kde ma kazde oddeleni svuj zaznam. Konecna zprava tak jak si ji uvedl Ty,
bude nejspis vypadat takto (vsechno v jednom memu)

5.5.1999
Chirurgie
bla bla, bla

5.5.1999
Nosni
bla bla bla

Kdyz to udelas tak jak jsem se zminil (tabulkou) bude vypadat takto
Datum Text Memo
5.5.1999 Chirurgie blablabla
5.5.1999 Nosni blablabla

Odpadne tim nutnost zaznam zamykat (pouzil bych zpusob uvedeny v prvnim
odstavci), navic je pak pro uzivatele jednosussi si nechat zjistit pouze
udaje z chirurgie, aniz by musel hledat v textu, kde co kdo napsal, a lecos
prehlednout.

>Dalsi jednoduchy priklad: zakaznik si preje, aby jeden zaznam mohl v jednom
>okamziku editovat pouze jeden clovek.

Tady nechapu proc , zakaznik je nejspis silny egoista :-)))

Zaverem chci upozornit, ze se nad danym problemem pouze zamyslim, protoze me
zajima, v praxi programuji pouze 1 uzivatelske aplikace. Takze je mozne ze
nektere moje nazory budou mozna hodne vzdalene realnemu zivotu. Proto je
berte s rezervou.

Mirun


elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 9.3.1999 07:26:02


> JA NIC, ale server ti oznami, ze na to nemas pristupove pravo,

mas, protoze jindy ho updatovat muzes

> pripadne, ze to nelze provest, protoze by doslo k poruseni integrity,

takovy update jsem nemel na mysli. Myslel jsem samozrejme update
smysluplny v ramci platnych constraints

> pokud je vazba do dalsich tabulek. Moznosti je vice. Mohu povolit
> zmenu treba jenom pomoci ulozene procedury, ktera si provede
> prislusne kontroly atd. Na co ti pak bude query executor?

procedury se nedaji pouzit na vsech databazich,
tohle neni obecne reseni. A nejsem si jist, ze vsude, kde procedury
jsou, se da pouzit. Tedy ze lze proceduram priradit jina prava
nez jaka ma prihlaseny uzivatel.
Nicmene je to mne nejsympatictejsi
reseni a pokud je mozne, propaguji ho.

> Jeste jsi porad presvedcenej o te pravde?

Mozna uz zanikl puvodni smysl. Ano, jsem presvedcen o tom, ze tam,
kde se hodi pouzit zamek, nema cenu vymyslet jine zpusoby ochrany.
A i tam, kde transakce nepouzivaji zamky, ale "zamykaji" zaznamy
jinym zpusobem, musim pocitat s tim, ze pokud si zaznam prectu,
nemusi mi jit updatovat.

> Jaro

Myslim, ze debata po teto linii uz ztraci smysl.
Kdyz vsechny diskuse shrnu, ziskavam pocit, ze se v zasade shodujeme:

- Pro editace (o kterych debata zacala) je vhodne nezamykat
zaznamy, pokud se nejedna o nejakou ulohu, ktera to z nejakeho vazneho
duvodu vyzaduje.
- databaze by mela byt nezavisla na klientovi - z hlediska stability
(kdyz zatuhne) i z hlediska typu klientskeho programu (nase aplikace,
query executor dodavany s databazi). Podle vlastnosti databaze
se urci mechanismus zabezpeceni integrity databaze a ochrany dat.


Jiri Polak
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 9.3.1999 07:56:02


> >> Nebo - jak tvrdis v jinem dopise: "Absolutne a bezvyhradne
> s Jaroslavem
> >> i s Petrem souhlasim. Zapomenme na to, ze kdysi nejake
> zamky existovaly."
> >> Nepouzivej teda transakce, kdyz se ma na zamky zapomenout a rekni
> >> mi, jak to chces jinak delat.
>
> Zda se mi, ze se jedna pouze o nepochopeni toho prispevku.

To rozhodne. Problem, je kdyz nekdo vyvozuje spatne zavery.
Ucit pouzivat transakce mne nemusis, jestli muj prispevek
vyznel, jako bych pred otevrenim editace spustil transakci,
tak je to spatne a stejne by to nemelo na nic vliv.
Protoze select je bezvyznamna vec.
Z hlediska zamku jsi na tom stejne, kdyz otevres transakci
pred selectem nebo az po potvrzeni editace pred update.
(samozrejme uvazuju se smysluplnou izolacni urovni)
Ostatne rada databazi ma jako implicitni rezim automaticke
otevirani nove transakce po kazdem rollback/commit.

>
> [JP] odmazal vyklad o uzitecnosti transakci pro konzistenci dat
>
> Doufam, ze jsem timto odpovedel i na nasledujici dotaz

ne. Nebyla rec o integrite, ale o tom, ze se potkaji dve transakce.
Nebo transakce a pokus o update zaznamu, ktery zatim nedokoncena transakce
jiz modifikovala. Myslim ze Jaro napsal, ze transakce v IB nepouzivaji
zamky.
Otazka zustava stejna, co s tim InterBase dela.

> ------
> Tak jo, ale jak to teda ta Interbase resi? Nemohl bys to
> nejak v kratkosti
> objasnit?
> ------


Jiri Polak
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Restartovat v rezimu MSDOS

[*] Daniel Jirasek <daniel_jirasek(zv)conel(tec)cz> - 9.3.1999 08:08:00

Nevite nekdo, jak provede prikaz "Restartovat v rezimu MSDOS". Prohledal jsem cele API, ale
nemuzu nic najit.

********************************
Daniel Jirasek - Conel s.r.o.

Existence adresare

[*] Jan Skopov� <jan.skopovy(zv)vol(tec)cz> - 09.3.1999 08:35:10

Existence adresare a pripadne vytvoreni:
if Not DirectoryExists(cesta) then ForceDirectories(cesta);

Jaroslav Sikora wrote:

> Procedure ForceDirectories(Dir: string) vytovori adresar ci adresare
> pokud neexistuji.
>
> sikora(zv)kam(tec)czu(tec)cz
>
> > Mam problem. Nevim jak kontrolovat existenci adresare. Neco jako je FileExists.
> > Potrebuji kdyz nejaky adresar neni vytvoren tak ho zalozit(nebo naopak).
> > Nevite na to nejakou API funkci?
> > Take bych potreboval vytvareni adresare a mazani. To jse da ale obejit pres "MD" a "RD".
> >
> > Dik.
> >
> > Libor Junek
> > **************************************
> > TH SOFT, Kostelni 128
> > 564 01 ZAMBERK
> > tel. 0446 3897
> > http://www.thsoft(tec)cz
> > http://www.zbk(tec)czn(tec)cz
> > E-mail: libor(zv)thsoft(tec)cz
> > **************************************
> >
> >

Tisk dlouhych grafu

[*] Dodek <Dodek(zv)cbmi.cvut(tec)cz> - 9.3.1999 08:36:26


Ahoj,

to co radis by bylo urcite reseni a drobne mezery by asi nevadily.

Zkousel jsem to ale nejak se mi nepodarilo nastavit velikost stranky
programove. property PageHeight a PegeWidth jsou read-only a nic jineho jsem
nenasel.

Je samozrejme mozne nastavit velikost stranky pomoci PrinterSetupDialogu ale
to by musel delat uzivatel a to je prinejmensim neprijemny.

Muze mi prosim nekdi jeste poradit jak nastavit velikost stranky programove
bez zasahu uzivatele ?


predem diky

Pepa Dodek

>Asi prvni co bych zkusil je nastavit velikost stranky bez okraju tak aby se
>dalo tisknout pokud mozno na celou stranku. Potom bych dany graf rozdelil
>na jednotlive oblasti a ty za sebou tisknul, drobna mezera v miste ohybu
>stranky papiru snad nebude tolik na zavadu.
>
>--
>
>Internet proti monopolu. Petr Vones, amatersky programator
>* http://www.bojkot(tec)cz *
>************************
>
>

Info v BIOSu

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 9.3.1999 08:39:58

Ahoj DELPHINI,

resim problem, jak dostat v D3 z BIOSu informaci o tom, je-li PeCka notebook nebo
stolni poeitae.

Diky za ka?de nakopnuti.

Martin Lasevic
ml_software(zv)email(tec)cz


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 9.3.1999 09:00:09

<nekdo napsal>
A nastavoval jsi ten priznak na serveru nebo jej nastavoval klient?
Tady jsme mozna konecne u jadra veci. Klient nema co nastavovat zamek
nebo priznak. Kdo ten zamek uvolni nebo vrati priznak na puvodni hodnotu,
kdyz klient zatuhne?

[Viktor] PING. Viz treba DCOM.

begin 600 WINMAIL.DAT
M>)\^((zv)H(`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`"0`)
M````"0`"`/8``2" `P`.````SP<#``D`" `[`!$``(zv)`X`0$)(zv) $`(0```$-%
M.4%$.3!!145$-40R,3$Y,T%!,# R,$%&,T)$.3%#`&(zv)'`0.0!(zv)#(! ``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0#(zv)\?39`FJ^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YJ`MGN"MF:S]7N$=*3J(zv)`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80Y#E9T0,`!Q#C````'(zv)`($ $```!E````
M/$Y%2T1/3D%04T%,04Y!4U1!5D]604Q*4TE414Y04DE:3D%+3D%315)615)5
M3D5"3TI%2DY!4U1!5D]604Q+3$E%3E0_5$%$64I3345-3UI.04M/3D5#3D55
M2D%$4D%614-)2P`````"`0D0`0```*$!``"=`0``3 (``$Q:1G7ZY8>2-P`*
M`0,!]R "IP(`8V(zv)!"L!S970P(%1A/F(zv)#<0*#`% #U \W,C.J. ``*(zv)+A80>
M( <3HP* !Q,(zv)0T4"(zv)'T*(zv)(D(R" ["6\R-34"(zv)!D*(zv)75C`% +`VQI,QHV`4!C
M`$$+8&YG,0(zv)P,S,+IB \;F60:V1O(!((zv)<','0/(^%R4R.1!R"K$*(zv)1;PM0%
M< -(zv)= 60!4!!&*&B<P&0=F]V$Q%J`)!.(!K `Z :D&EZ$B!KI1BA( ^0<G8$
MD'48H*9E!N ;T&5J&RIK%I"9"?!T/QGD#^!D>1O1?Q)!!& <D1[ `B %D!A0
M(#4=<&H?L'(<\!U 8VFX+B!+'N,=(zv)0# ( 6(zv)ZQLH!4!Z$C%K&>0=DQQEOR'A
M&($<(B.C(1 ;(zv)&P#`+4=A'8A<'0<`!QI<"81GF0F41 `*" :L'4L&>2Y&'!Y
M>A[%(Y$HL&(zv)84#\?-1GG`% ,,AJ5#\!;5JAI:W0%L%T#,&(!0 YI#\ #,!<Y
M(%!)3JY'(> L<"EP= EP8ASPX$1#3TTN&D,9-QJ5"QFW$X$`,; ````#`! 0
M``````,`$1 !`````P" $/____] ``<PH,PRNP)JO(zv)% ``(zv)PH,PRNP)JO(zv)$+
M``" "" &``````# ````````1(zv)`````#A0````````,``H (( 8``````, `
M``````!&`````!"%`````````P`%(zv) (zv)(zv)!(zv)``````P ```````$8`````4H4`
M`/ .```>`"6 "" &``````# ````````1(zv)````!4A0```0````0````X+C `
M`P`F(zv) (zv)(zv)!(zv)``````P ```````$8``````84````````+`"^ "" &``````#
M````````1(zv)`````.A0````````,`,( (( 8``````, ```````!&`````!&%
M`````````P`R(zv) (zv)(zv)!(zv)``````P ```````$8`````&(4````````>`$& "" &
M``````# ````````1(zv)`````VA0```0````$`````````'(zv)!"(zv) (zv)(zv)!(zv)``````
MP ```````$8`````-X4```$````!`````````!X`0X (( 8``````, `````
M``!&`````#B%```!`````0`````````>`#T``0````4```!213H(zv)``````,`
(#33]-P``OO6%
`
end


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 9.3.1999 09:05:42


-----P�vodn� zpr�va-----
Od: Petr Zahradnik [SMTP:clexpert(zv)clexpert(tec)cz]
Odesl�no: 8. b�ezna 1999 23:31
Komu: delphi-l(zv)fwd(tec)cz
P�edm�t: RE: elementarny problem s C/S

Puvodni zprava, kterou napsal Viktor Lostak dne 8 Mar 99,:

> [Viktor] Kdyz se transakce nepovede, vrati se vse do puvodniho stavu a
> skonci to chybou. Kdyz narazim na zamceny zamek, muzu udelat totez. Kde
je
> vlastne rozdil? Transakce mi prijdou jako zamky s jednim typem reseni
> konfliktu - navratu k puvodnimu stavu a ohlaseni chyby. Nebo to tak neni?

Vidim, ze do toho nevidis. Transakce nejsou zamky a jsou urceny na neco
uplne jineho. Mimochodem, pokud klient zamkne zaznam a vytuhne, tak
zamek zustane. Pokud klient nahodi transakci a zatuhne, server udela
rollback a zamky uvolni. A opakuji - zadne zamky ani transakce nejsou
na to, aby se nahodily a baba si sla koupit nove boty...


S pozdravem
Petr Zahradnik, pocitacovy expert

[Viktor] "Pokud klient nahodi transakci a zatuhne, server udela
rollback a zamky uvolni" - no tak jak to, ze to neni to same? Kdyz to
udelam ja jako programator pomoci zamku, tak to neni totez, jako kdyz to
udela dodany soft v DB serveru? Mozna neni, ale v cem je tedy ten rozdil?


begin 600 WINMAIL.DAT
M>)\^(BL(`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`"0`)
M``4`*(zv)`"`!P!`2" `P`.````SP<#``D`"0`$``P``(zv)#]``$)(zv) $`(0```$4Y
M.4%$.3!!145$-40R,3$Y,T%!,# R,$%&,T)$.3%#`%X'`0.0!(zv)#<!P``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0#0=&J(zv)`VJ^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YJ`Z!E"MF:ZM7N$=*3J(zv)`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``807B,TB0,`!Q##`P``'(zv)`($ $```!E````
M+2TM+2U0^59/1$[M6E!2X59!+2TM+2U/1#I015126D%(4D%$3DE+4TU44#I#
M3$584$525$!#3$584$525$-:3T1%4TSA3D\Z.$+X15I.03$Y.3DR,SHS,4M/
M354Z1$5,4$A)+0`````"`0D0`0```+8$``"R! ``C(zv)<``$Q:1G645V?6=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* \0<3($-%`H,`
M4 +R#U=(zv),"!486(zv)#<0*#,O$.YW!R<1.Q#W\0CQ&1)GT*(zv) C((#L);S(U9C4"
M(zv) J!=6,`4 L#8P,`00M(zv);F<Q,#(Y?PNG"K$*A J$&?("T1'Q<TPQ-QNZ$Z,Q
M-ANZ;-AI,S8;00-(zv)= 60!4 "+1_R4%PG9CEVRP1P"Y G"8 (zv)>A10(-'X,79A
M'_,;5A^$&T,+,8,?A (`:2TQ-#0!0'$?$#$X, % #- D`V)0($]D.(zv)R#8A+(zv)
M4$L5``7 6A,0<F$(zv)L&D`:R!;4TU44#H(zv)8VQE>' $D'1 X2=6+F-Z71M5)3('
MD!,)4"%A;F\E=S(zv)N(",,,"!(zv).&5Z%: (zv),<HY*U (zv)%2 Z,QFC*.,:2P-P=25W
M`0!L<&C!(^!L0&9W9"AA**=S($(JX&1M(-$?P"5W4NA%.B M4&4'(zv) (P"L"X
M;GD(zv)'W$"8#" ( 0(zv)>$,O4R(/(QH?%!KK4"IU())I(1)A(9 L("9K'Z #8'4(zv)
M%:!P<Q41458FP'0%L4QO<^\!D";0(+ 5T#(zv)%T K!*U V+"5P&VD^)N VU%T(zv)
M\2Q(zv)9'EZ,9 5T"8(zv)`'&--X!C%= WP'!O=(zv)F :F4UT'8F(zv)'0U4#IA=ODZ861O
M,1 U!!,(zv),9 !D$IV-D!A./9S:P((zv)8ZLU4#<`(!2P>0;(zv)=2J ]SH3%: F(zv)'H'
M<#91(1 5L&<[`##Q0(%E:S70+)!ZO39 =2U!._ ^P1^(zv)>C]BZ170:F4X]G8+
M8#=(zv)-\%I`V!Z9 ,0/Q+P.J=MLS50%%!I:CR(zv)-D!J-X#[/+! (zv)6LQ``0(zv)0N F
MH3& _'1Y)Y Q(zv) EP%/ #`#CVW3YQ9A\0-? V0"TV43O2'S9 )M \U2R0/68(zv)
M;VCW0Y%'H3[S>2J !\ &X#["=S=R-\ #`#\;6C;01#!MO370>CR#-P`]03?
M=DVQSG,J(zv)$2(-\!J<S8Q1B3_*R!0$PAP0+,K$3? !: ;5-9U"U WP6H+(zv)&43
M("J >DT'<&\4L 1Q3>$[4&O_0< UX!\0,*%&$S?!0( K`=,Q(zv)"L(zv)=GE(P&(zv)W
MP#70[S=Q&U1!`R$0=3=A-\ J(zv)/Y05"H5H%.A/K$ZI3500&+[5(zv)44\'([< 7
M0<,;5 -(zv)^&QL8(zv)#0)M! 8T91-0'U4I!I*H!!2L *L%0P4M#_2.% (zv)#>R4&4U
M03J:4!(;5'\K$3<`-= !H$9A.Q%8TVS_4*);X%O(zv),9 \$0M(zv)2$%2</YI6*$[
M82J0'Y!+H&.(zv)&U[_"H %\#M01" UD3" &U0Y\/]F'V;()(zv)Q3\CZ(zv)`9 %H%7(zv)
M_S!0)X,Q_S,/&(zv),,,FI:"H _.7<EP0Q $N #,!I4,S/Y$=$(zv)(AQC&EE7[UC_
M6(zv)__6Q<>N4/Q6\]<TFZ,2.),-/]%T6!S3A$^T4R2/L(VD > _T1(zv).A,^T4'#
M,8!%T$7$'W'_"< 5L#OP!;$[4%-Q-5%&,;YU5E-X>4)1-=!%TVMYJFT\D60`
M<$9A;P& .\ (zv)U$1"<O5U1&!-1!!1H_\#`&"A)V!_L3L`>F$Z<0F _S$`'Z #
MH$0%&D(zv)C5QM/"H %%P$`A= ```,`$! ``````P`1$ `````#`( 0_____T `
M!S `ON5J`VJ^`4 `"# `ON5J`VJ^`0L``( (( 8``````, ```````!&````
M``.%`````````P`"(zv) (zv)(zv)!(zv)``````P ```````$8`````$(4````````#``6
M"" &``````# ````````1(zv)````!2A0``\ X``!X`)8 (( 8``````, `````
M``!&`````%2%```!````! ```#(zv)N, `#`": "" &``````# ````````1(zv)``
M```!A0````````L`+X (( 8``````, ```````!&``````Z%`````````P`P
M(zv) (zv)(zv)!(zv)``````P ```````$8`````$84````````#`#* "" &``````# ````
M````1(zv)`````8A0```````!X`08 (( 8``````, ```````!&`````#:%```!
M`````0`````````>`$* "" &``````# ````````1(zv)`````WA0```0````$`
M````````'(zv)!#(zv) (zv)(zv)!(zv)``````P ```````$8`````.(4```$````!````````
?`!X`/0`!````!0```%)%.B ``````P`--/TW``!)&84`
`
end


mySQL ODBC a Delphi 4

[*] Jaroslav Sikora <sikora(zv)kam(tec)czu(tec)cz> - 9.3.1999 08:12:30 met

Nevim jaky je u tebe problem, ale ja jsem to kdysi zkousel a vse
mi v D4 fungovalo.

Jarda
sikora(zv)kam(tec)czu(tec)cz

> Dobry den.
> Prosim poradte.
> Potrebuji se pripojit pres ODBC k databazi mySQL.
> V Delphi 3 i v Paradox 7 se pripojim bez problemu.
> V Delphi 4 mi vsak pri pokusu o pripojeni (jiz v dobe navrhu) hlasi Delphi
> tuto hlasku:
>
> "Your application is not enabled for use with this driver."
>
> Podotykam, ze vse jede na temze stroji s toutez konfiguraci BDE i ODBC.
> Proste v D3 a Pdox7 se pripojim v D4 ne.
>
> Dekuji za radu.
>
> eL...
>
>
>

elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 9.3.1999 09:14:26

> [Viktor] .....Kde je vlastne rozdil? Transakce mi prijdou jako zamky s
jednim typem reseni konfliktu - navratu k puvodnimu stavu a ohlaseni chyby.
Nebo to tak neni?


NENI TO TAK!

Mimochodem uz jsi videl nejake zamky, ktere vrati vsechny datove zmeny do
puvodniho stavu?
Jaro

[Viktor] My si zkratka nerozumime. Vy rikate "zamky" a myslite tim jenom
ty zamky, ktere implementuje vase databaze. Ja rikam "zamky" a myslim tim
zamky jako softwarovou technologii, tj. ponekud obecneji. Zamky s navratem
k puvodnimu stavu jsem baze videl, jelikoz jsem je sam vytvarel. Vy rikate,
ze pouzivate transkace a zamky ze pro vas neexistuji a myslite tim to, ze
nikde v programu nepisete "Lock". Jenomze ty zamky jako technika stejne
existuji, at uz je delate explicitne vy nebo vzniknou implicitne pri
transakci. A nevykam ti, ted oslovuji vic lidi v ramci tehle diskuze. Taky
jsou jeste hrady a zamky, ale ty s tim (asi) nemaji moc spolecneho.
begin 600 WINMAIL.DAT
M>)\^(AL(`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`"0`)
M``X`&(zv)`"`!4!`2" `P`.````SP<#``D`"0`*`",``(zv)`:`0$)(zv) $`(0```# Q
M.4)$.3!!145$-40R,3$Y,T%!,# R,$%&,T)$.3%#`$('`0.0!(zv)"\!(zv)``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0" W;C8!&J^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YJ!-BR"MF;`M7N$=*3J(zv)`(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80D#C[P0,`!Q#T`(zv)``'(zv)`($ $```!E````
M5DE+5$]22T1%2D563$%35$Y%4D]:1$E,/U1204Y304M#14U)4%))2D1/54I!
M2T]:04U+65-*141.24U465!%35)%4T5.24M/3D9,24M452U.059205152U!5
M5D]$3DE-55-400`````"`0D0`0```)4#``"1`P``\P0``$Q:1G6C7(zv)&B=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* \0<3($-%`H,`
M4 +R#U=(zv),"!486(zv)#<0* ?1,*(zv) C((#L);S(U-3,"(zv) J!=6,`4 L#;&D,,S8!
M0 M(zv);F<Q,*PR.0J(zv)`V!T!9!T"Z8`(#X(zv)6U9I:W2A!;!=(" N&4)+`0`4(&H0
MD'8+8'-T;E,0D -(zv)>F0#$#\2\'(1`'%A:V,0D&UI('$7(zv)&EJ9 A(zv)&< ;4&_$
M('H0<&MY( ] "K$+"H 9T&0#`&T(zv)='F\<&4=P EP#[ #`" <<)QN9A:0&- <
M,"T(zv)$&"6=AL0'R%K&\!U=(zv)1P'QVA'# :,!^ '#!A(&\.:!H1'G(/<'EB>2[_
M'10'P ;(zv)'= BL1M0'V ><88_'10CFDY%3DD2\*)/$O!!2R$CFDT'<,YO#W $
M<1W =7H9P "0_1GP:0$``R :4!Q1$) <H_XL'J 7L EP&? ?H2<Q#["5#W!N
M'.!D'[!O=B(zv)!_P> *:(<(zv)!T4(!43(""D(X7J2(zv)K ;R.58P!!##(7A=\!0!TC
M&*<*( % :1+(zv)`S!Y%O0S,Q'1!= <X1NP>KIK'Z%K(1 :4!J!=1N(zv)\0> +B!6
M'. %$#$P%[ 4("(<HR(A`6UY<]\6D#*1*2 =P!G0;(zv)-P'='_*!P'< M0'A )
M\!\(zv)&=(A8?,IP(zv)&(zv)87HQ\2R0,D,=P)\RS1W!';$<I!Q3<V\!(zv)'YW+*$(zv),!PP
M%[$ID CQ9Z1I:2AP=&HR`' "(-!E:W5D(2!B!9 GL?II,(zv)!:'+0?91X1'_\G
M`?\>$3;B)T0H<!G0'O$:D#[DQQG1&T =P'9Y=#90"7"^;#()*' _83N(zv))N!I
M-E#_,[(;$C$P&W$A$!RD0I(#8/,V0B,Q97(zv)$`#8!&[ S3-<8X$)S`P!K&:%V
M1*()P'<0<!PP&E!P! `/P#*A3/DF8&LB-R$T,C]A-(8<1/\ZDS)A(*$GP!I1
M158H<!^P/R;3-H$G(zv)#*"15 +4&ECGS.(zv)&E%!0",Q(J%V>D<Q_S1 '# U(zv)DV5
M&]%#5!M1/)'^02,Q04 WDBD(zv).T$)(zv)"$(zv)SS. *(zv)!%HB=08R 6D!JP_T>!1_%-
MH#J!(4 V(zv)00`.^!_-P(3`#E2.= <,0>0,I%H_1L09!S(zv)1 5,,5.A-($$(.4S
MXB(zv):(&DI(S$`P$6Q_R91'/ [H#6P/%$3("(0+4!?%M\7XR.O'103(zv)0!<( ``
M``,`$! "`````P`1$ $````#`( 0_____T `!S!P#$Q/!&J^`4 `"#!P#$Q/
M!&J^`0L``( (( 8``````, ```````!&``````.%`````````P`"(zv) (zv)(zv)!(zv)``
M````P ```````$8`````$(4````````#``6 "" &``````# ````````1(zv)``
M``!2A0``\ X``!X`)8 (( 8``````, ```````!&`````%2%```!````! ``
M`#(zv)N, `#`": "" &``````# ````````1(zv)`````!A0````````L`+X (( 8`
M`````, ```````!&``````Z%`````````P`P(zv) (zv)(zv)!(zv)``````P ```````$8`
M````$84````````#`#* "" &``````# ````````1(zv)`````8A0```````!X`
M08 (( 8``````, ```````!&`````#:%```!`````0`````````>`$* "" &
M``````# ````````1(zv)`````WA0```0````$`````````'(zv)!#(zv) (zv)(zv)!(zv)``````
MP ```````$8`````.(4```$````!`````````!X`/0`!````!0```%)%.B `
-`````P`--/TW```:F84`
`
end


Detekce HW - grafika

[*] OceaniC <pleticha(zv)kol1.kolej.ujep(tec)cz> - 9.3.1999 09:14:15

Ahojky,

potreboval bych kopnout spravnym smerem,
pri detekci graficke karty. Mam to hledat pres
registry nebo si sahnout do BIOSu karty ?
A jak.

Dik OceaniC 20084514


mySQL ODBC a Delphi 4

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 09:31:07

Puvodni zprava, kterou napsal eL dne 9 Mar 99,:

> Potrebuji se pripojit pres ODBC k databazi mySQL.
> V Delphi 3 i v Paradox 7 se pripojim bez problemu.
> V Delphi 4 mi vsak pri pokusu o pripojeni (jiz v dobe navrhu) hlasi Delphi
> tuto hlasku:
>
> "Your application is not enabled for use with this driver."

A nemas Delphi 4 Standard? Ten neumoznuje ODBC.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Detekce HW - grafika

[*] Marek Soukup <marek(zv)comberg(tec)com> - 09.3.1999 10:06:46

Ahoj,
dulezity je pod jakym systemem to delas. Ne kazdej system te pusti tak
nizko. Pro DOS toho mam spoustu, pro Woknousy jsem to zatim
nepotreboval, ale myslim, ze tam na to bude neco primo systemovyho.


Marek Soukup

OceaniC wrote:

> Ahojky,
>
> potreboval bych kopnout spravnym smerem,
> pri detekci graficke karty. Mam to hledat pres
> registry nebo si sahnout do BIOSu karty ?
> A jak.
>
> Dik OceaniC 20084514


Menu

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 9.3.1999 10:13:24

Neni to muj napad, proto podekuj autorovi, ktery je uz asi neznamy.

Martin

var
h:HBitmap;
lBitMap:TBitMap;

begin
.........................
//obrazky do menu
lBitMap:=TBitMap.Create;

//miNapoveda
lBitMap.Assign(BBtPomoc.Glyph); //naplneni bitmapy nejakym obrazkem - napr.
glyphem z tlacitka
If BBtPomoc.NumGlyphs>1 then
lBitMap.Width:=(lBitMap.Width-1) div BBtPomoc.NumGlyphs; //pokud je glyph
z vice casti, beru prvni
H:=CopyImage(lBitMap.Handle, image_bitmap, 12, 12, 0); //vytvori kopii
obrazku a preda handle a oreze
SetMenuItemBitmaps( miNapoveda.Handle, 1, MF_BYPosition,
H, H); //nastaveni bitmapy do menu miNapoveda k
submenu,
//ktere je na pozici 1, podle pozice
..............
lBitMap.free;


-----Puvodni zprava-----
Od: Petr Vones [SMTP:pvones(zv)mbox.vol(tec)cz]
Odeslano: 8. boezna 1999 22:21
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Re: Menu

> Milan Fiedler wrote:
>
> nevite o nejake komponente do Delphi 2, ktera by v menu mela obrazky (Gliph).

Ahoj,

Zkus prohledat DSP, Torry, urcite tam neco takoveho nekde najdes.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 10:30:34

Puvodni zprava, kterou napsal Viktor Lostak dne 9 Mar 99,:

> Vidim, ze do toho nevidis. Transakce nejsou zamky a jsou urceny na neco
> uplne jineho. Mimochodem, pokud klient zamkne zaznam a vytuhne, tak zamek
> zustane. Pokud klient nahodi transakci a zatuhne, server udela rollback a
> zamky uvolni. A opakuji - zadne zamky ani transakce nejsou na to, aby se
> nahodily a baba si sla koupit nove boty...
>
> [Viktor] "Pokud klient nahodi transakci a zatuhne, server udela
> rollback a zamky uvolni" - no tak jak to, ze to neni to same? Kdyz to
> udelam ja jako programator pomoci zamku, tak to neni totez, jako kdyz to
> udela dodany soft v DB serveru? Mozna neni, ale v cem je tedy ten rozdil?

Ach jo, to je naprosto marne, vzdavam. Nejdrive si precti to, co jsem
napsal tady nahore, a pak si precti neco o SQL, transakcich, urovnich
izolace transakci apod.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


elementarny problem s C/S

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 9.3.1999 10:30:55

Haj hou!

>[Viktor] "Pokud klient nahodi transakci a zatuhne, server udela
>rollback a zamky uvolni" - no tak jak to, ze to neni to same?
Kdyz to
>udelam ja jako programator pomoci zamku, tak to neni totez, jako
kdyz to
>udela dodany soft v DB serveru? Mozna neni, ale v cem je tedy
ten rozdil?


Trochu noveho svetla do stareho problemu :-)

Transakce skutecne nejsou totez co zamky. Transakce jako takova
je sled operaci nad cimkoliv (nejen nad SQL databazi), ktera ma
nekolik klicovych vlastnosti (znamych pod zkratkou ACID). K
implementaci techto vlastnosti jsou casto pouzivany zamky na
zdroje (radky, stranky apod.), ale neni to nezbytne (napr. IB
ZADNE zamky nema, neb jako jedina pouziva mnohem lepsi metodu
verzovani radku). "Zamky" jsou pouzivany pro zajisteni
nezavislosti a atomicnosti transakce, protoze SQL (nebo i jine)
servery se snazi optimalizovat, a tudiz provaden nekolik
transakci paralelne. Pokud by byla v danem okamziku provadena
(aktivni) vzdy jen jedna transakce, zadne zamky by nebyly
zapotrebi.

Co se tyce uvolnovani zamku pri padu klienta: Pokud to budes
delat v programu, pak je samozrejme neuvolnis, kdyz ti ten
program padne. Pokud upadne klient a ne server, server tuto
udalost detekuje (metody byvaji ruzne) a ukonci aktivni transakce
daneho klienta jejich odvolanim (rollback). S tim se poji i
uvolneni vsech datovych struktur spojenych s transakci, tedy i
zamku (pokud nejake jsou). Pokud padne na hubu server, je pri
jeho restartu tento fakt detekovan, a vsechny transakce aktivni v
okamziku padu jsou zruseny (rollback). Technika rollbacku byva
ruzna, zalezi na tom zda SQL server pouziva zmenovy protokol
(transaction log) nebo verze radku.

Pokud ma SQL server makat na maximum (paralelni zpracovani
transakci), je nezbytne nutne zajistit co nejkratsi dobu trvani
transakce. Tedy zablokovani ostatnich transakci pseudozmenou
editovaneho zaznamu je nejblbejsi (ale presto stale jeste hojne
pouzivanou) technikou jak dosahnout toho, aby v danem okamziku
mohl editovat jen jeden uzivatel. Vetsina SQL serveru (v
optimalnim isolation levelu) trpi zavaznym nedostatkem, kdy write
transakce blokuje nejen ostatni write, ale i read only transakce
(nemate predstavu, co dokaze pagelock na index <g>). Jedina SQL
databaze na svete, ktery tento problem nikdy nemela je Interbase,
u ktere write nikdy neblokuje read.

Pokud presto potrebujete zajistit exkluzivitu editace pro jednoho
uzivatele, pak to realizujte jinak, nikdy pres SQL server. V D3/4
napriklad muzete snadno vytvorit jednoduchy OLE Automation server
na zamky, ktery bude evidovat napr. retezce ve stringlistu. Pokus
pridat jiz evidovany retezec (napr. primarni klic radku + nazev
tabulky nebo treba ID vetsi operace) pak vyvola chybu. Da se to
snadno napsat i tak, ze pri padu klienta COM server uvolni jeho
zamky. Tento server pak ani nemusi bezet na stejnem stroji jako
SQL server (ale musi byt Win32 :-( ). Pokud D3/4 nemate nebo
nemuzete zajistit sdileny Win32 stroj, pak muzete vyuzit klasicke
metody pres filesystem.

Hodne zdaru s SQL servery.

Restartovat v rezimu MSDOS

[*] Jan Fiala <fiala(zv)infos(tec)cz> - 9.3.1999 10:49:09

>Nevite nekdo, jak provede prikaz "Restartovat v rezimu MSDOS". Prohledal
jsem cele API, ale
>nemuzu nic najit.
>


Zkus si udelat nejakeho zastupce, nastav mu, ze musi pracovat v rezimu
MS_Dos a podivej se na prvni radek CONFIG.SYS. Aspon tak to delaji Windows.
Po navratu z programu ten radek zase zrusi a restartuji


-----------------------------------------------------------------
ing. Jan Fiala jan.fiala(zv)iname.com
Prog-Soft s.r.o.
INFOS - informa�n� system pro n�poj��e
-----------------------------------------------------------------


mySQL ODBC a Delphi 4

[*] eL <delphi(zv)sales(tec)cz> - 9.3.1999 11:19:21

>> "Your application is not enabled for use with this driver."
>
>A nemas Delphi 4 Standard? Ten neumoznuje ODBC.
>
>
>S pozdravem
> Petr Zahradnik, pocitacovy expert

A sakra. To je pravda. Nejak jsem si toho nevsiml v rozdilech mezi Standart
a Profi. Prinejmensim je to nemile. Drive jsem si psal v Paradoxu a logicky
mne zacali zajimat Delphi. "Pujcil" jsem si na vyzkouseni D3 (ovsem Profi) a
vse se zdalo OK tak jsem koupil D4 Standarta. Nevsiml jsem si, ze by nekde v
rozdilech bylo
uvedeno , ze neumi ODBC. Myslel jsem si, ze spoluprace s ODBC je vlastnosti
BDE (viz perfektni fungovani stareho dobreho Paradoxu). Je to celkem nemile,
protoe rozdil v cene neni nejmensi a jinak mi finkce Standartu bohate staci.

Diky za odpoved, usetrila mi urcite hodne hodin louskani helpu.

eL...

Tvorba napovedy

[*] Shima Fares, Bc. <shima(zv)czechtrade.tpo(tec)cz> - 9.3.1999 11:22:20

Potrebuju vytvorit napovedu.

Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
soubor je corupted.

Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
specializovane programy na tvorbu napovedy, protoze ty tam vzdy pripoji
hlasku o tom, ze je to neregistrovane a podobne.

Dik
F. Shima

Tvorba napovedy

[*] Richard Willmann <sales(zv)nocomment.sk> - 09.3.1999 11:35:37

podobny problem som mal aj ja... Chce to stiahnut novy Help Workshop z
MS. Ten ktory sa dodava s Delphi (spon ten ktory bol k D3) nevedel
precitat rtf subory vytvorene vo worde.

rw

Shima Fares, Bc. wrote:

> Potrebuju vytvorit napovedu.
>
> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
>
> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
>
> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma
> najednou
> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to
> ze
> soubor je corupted.
>
> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam vzdy
> pripoji
> hlasku o tom, ze je to neregistrovane a podobne.
>
> Dik
> F. Shima

Detekce HW - grafika

[*] OceaniC <pleticha(zv)kol1.kolej.ujep(tec)cz> - 9.3.1999 11:53:56

Bohuzel se jedna o Win.
Pls HELP

OceaniC

-----P�vodn� zpr�va-----
Od: Marek Soukup <marek(zv)comberg.com>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 11:27
P�edm�t: Re: Detekce HW - grafika


>Ahoj,
>dulezity je pod jakym systemem to delas. Ne kazdej system te pusti tak
>nizko. Pro DOS toho mam spoustu, pro Woknousy jsem to zatim
>nepotreboval, ale myslim, ze tam na to bude neco primo systemovyho.
>
>
>Marek Soukup
>
>OceaniC wrote:
>
>> Ahojky,
>>
>> potreboval bych kopnout spravnym smerem,
>> pri detekci graficke karty. Mam to hledat pres
>> registry nebo si sahnout do BIOSu karty ?
>> A jak.
>>
>> Dik OceaniC 20084514


mySQL ODBC a Delphi 4

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 11:56:17

Puvodni zprava, kterou napsal eL dne 9 Mar 99,:

> >A nemas Delphi 4 Standard? Ten neumoznuje ODBC.
>
> A sakra. To je pravda. Nejak jsem si toho nevsiml v rozdilech mezi
> Standart a Profi. Prinejmensim je to nemile. Drive jsem si psal v Paradoxu

Z toho si nic nedelej, Professional zase neumi pristup pres SQL Links.

> a logicky mne zacali zajimat Delphi. "Pujcil" jsem si na vyzkouseni D3
> (ovsem Profi) a vse se zdalo OK tak jsem koupil D4 Standarta. Nevsiml jsem
> si, ze by nekde v rozdilech bylo uvedeno , ze neumi ODBC. Myslel jsem si,

Ale jo, je to tam napsano, opravdu.

> ze spoluprace s ODBC je vlastnosti BDE (viz perfektni fungovani stareho

Jenze to tam je zamerne zablokovano.

> dobreho Paradoxu). Je to celkem nemile, protoe rozdil v cene neni nejmensi
> a jinak mi finkce Standartu bohate staci.

Vsak take Standard je skoro zadarmo jen na vyzkouseni...

I kdyz vlastne vsechno jsou jen betaverze, jak rika Zbysek,
protoze uz je tu 3. patch a stale to nechodi tak, jak by si
nekdo mohl predstavovat... Ja jsem docela spokojeny.

> Diky za odpoved, usetrila mi urcite hodne hodin louskani helpu.

Nemas zac. Asi jsem Te moc nepotesil...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Tvorba napovedy

[*] Roman <roman.banar.fei(zv)vsb(tec)cz> - 9.3.1999 12:25:03

> Potrebuju vytvorit napovedu.
>
> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
> soubor je corupted.
>
> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam vzdy pripoji
> hlasku o tom, ze je to neregistrovane a podobne.

to je divny, ja na to w97 normalne pouzivam a zadny takovy problem
nemam... akorat nevim jestli pouzivam to od Mrkvosoftu, ja help
kompiluju v tom, co je dodavany s Delphi /mozna ze to je to samy,
nevim jak se to menuje/, takze problem by mohl bejt asi tam

roman


Detekce HW - grafika

[*] Ing. Ludek Florian <ludan(zv)bluerose(tec)cz> - 9.3.1999 12:32:25

Cauec,

mam tu jednu komponentu pro D3 i D4, docasne jsem ji strcil na
www.bluerose(tec)cz/delphi/msysinfo.zip (241 KB)
Umi toho vic (BIOS, Net...). EXE demo prilozeno.

Stranky jsou v porodnich bolestech, ale na tohle se dostanes.

Bye Ludan
>Bohuzel se jedna o Win.
>Pls HELP


>>Ahoj,
>>dulezity je pod jakym systemem to delas. Ne kazdej system te pusti tak
>>nizko. Pro DOS toho mam spoustu, pro Woknousy jsem to zatim
>>nepotreboval, ale myslim, ze tam na to bude neco primo systemovyho.

>>> potreboval bych kopnout spravnym smerem,
>>> pri detekci graficke karty. Mam to hledat pres
>>> registry nebo si sahnout do BIOSu karty ?

Ovl�dac� panely

[*] Ing. Ludek Florian <ludan(zv)bluerose(tec)cz> - 9.3.1999 12:32:14

Cauec,

mam tu priklad pro D3, docasne jsem to strcil na
www.bluerose(tec)cz/delphi/cpl.zip (111 KB)
CPL demo prilozeno.

Stranky jsou v porodnich bolestech, ale na tohle se dostanes.

Bye Ludan

>>Potreboval bych do slozky "Ovladaci panely" p�idat zastupce, nevite
>>prosim kde zjistit cestu, nebo kam zaspat. Nemohu to najit mozna
>>koukam jinam nez mam.

Tisk dlouhych grafu

[*] Ing. Jaroslav K�e�ek - 9.3.1999 12:32:58

Takhle nastavuju velikost strany v jednom programu. Myslim, ze mi to dokonce
poradil nekdo z konference.

Jaroslav Krecek

procedure SetPrinterPageSize(nLength, nWidth : Integer;
oOrientation:TPrinterOrientation);
var
oInfo : TPrinterInfo;
hDevMod1, hDevMod2 : THandle;
pDevMod1, pDevMod2 : PDevMode;
pDevice, pDriver, pPort : PChar;
begin
{Zji��uji Driver, Device a Port}
oInfo := TPrinterInfo(Printer.Printers.Objects[Printer.PrinterIndex]);
pDriver := StrAlloc(Length(oInfo.Driver) + 1);
pDevice := StrAlloc(Length(oInfo.Device) + 1);
pPort := StrAlloc(Length(oInfo.Port) + 1);
StrPCopy(pDriver,oInfo.Driver);
StrPCopy(pDevice,oInfo.Device);
StrPCopy(pPort,oInfo.Port);

{Zji��uji DEVMODE}
Printer.GetPrinter(pDevice, pDriver, pPort, hDevMod1);
pDevMod1 := GlobalLock(hDevMod1); {Glob�ln� pointer a nepohybliv�}
hDevMod2 := GlobalAlloc(GHND, SizeOf(TDevMode)); {Alokuje na glob�l.
heapu}
pDevMod2 := GlobalLock(hDevMod2);
CopyMemory(pDevMod2, pDevMod1, SizeOf(TDevMode));

{Modifikuji DEVMODE}
pDevMod2^.dmFields := DM_PAPERSIZE or DM_PAPERLENGTH or DM_PAPERWIDTH or
DM_ORIENTATION;
pDevMod2^.dmOrientation := Ord(oOrientation) + 1;
pDevMod2^.dmPaperSize := DMPAPER_USER;
pDevMod2^.dmPaperLength := nLength;
pDevMod2^.dmPaperWidth := nWidth;

GlobalUnlock(hDevMod2);
GlobalUnlock(hDevMod1);

{Nastavuji DEVMODE}
Printer.SetPrinter(pDevice, pDriver, pPort, hDevMod2);

StrDispose(pPort);
StrDispose(pDevice);
StrDispose(pDriver);
end;

-----P�vodn� zpr�va-----
Od: Dodek <Dodek(zv)cbmi.cvut(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 8:48
P�edm�t: Re: Tisk dlouhych grafu


>
>Ahoj,
>
>to co radis by bylo urcite reseni a drobne mezery by asi nevadily.
>
>Zkousel jsem to ale nejak se mi nepodarilo nastavit velikost stranky
>programove. property PageHeight a PegeWidth jsou read-only a nic jineho
jsem
>nenasel.
>
>Je samozrejme mozne nastavit velikost stranky pomoci PrinterSetupDialogu
ale
>to by musel delat uzivatel a to je prinejmensim neprijemny.
>
>Muze mi prosim nekdi jeste poradit jak nastavit velikost stranky programove
>bez zasahu uzivatele ?
>
>
>predem diky
>
>Pepa Dodek

Menu

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 9.3.1999 12:41:02

Ahoj,

s timhle mam tuto zkusenost (sice v D3, ale asi to bude v D2 stejne):
pokud zkusis takhle dat do menu treba zlutou kosticku (SVETLE zlutou),
objevi se v menu TMAVE zluta. Podobne se povede vsem svetlym barvam,
takze vysledny obrazek bude tmavy a seredny. Lepsi je zpusob, ktery jsem
dostal od Z . Fryze (ten udela polozku owner draw, takze tam muzes
kreslit co te napadne:

... pro inspiraci jednoduchy priklad kresleni v menu - ve vsech
polozkach
MainMenu1, ktere maji Tag >0
priklad ale nebere v uvahu disable polozky, hotkeys ....
vyzkouseno v D3/Win95

Zdenek Fryz



unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Menus, ExtCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
mnuFile: TMenuItem;
mnuOpen: TMenuItem;
mnuClose: TMenuItem;
Image1: TImage;
mnuEdit: TMenuItem;
mnuCopy: TMenuItem;
mnuCut: TMenuItem;
mnuPaste: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure ChangeMenu(MenuItems: TMenuItem);
private
{ Private declarations }
procedure wmdrawitem(var msg: twmdrawitem);message wm_drawitem;
procedure wmmeasureitem(var msg: twmmeasureitem);message
wm_measureitem;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ChangeMenu(MenuItems: TMenuItem);
var
i: integer;
begin
for i:=0 to MenuItems.Count -1 do begin
ChangeMenu(MenuItems[i]);
if (MenuItems[i].Caption <> '-') and (MenuItems[i].tag > 0) then
ModifyMenu(MainMenu1.Handle ,
MenuItems[i].command,
MF_OWNERDRAW or MF_BYCOMMAND,
MenuItems[i].command,
nil );
end;
end;

procedure TForm1.wmdrawitem(var msg: twmdrawitem);
var
hFontOld: hFont;
szText: array[0..80] of char;
dwCheck: longint;
Retang: TRect;
c: TCanvas;
item: TMenuItem;
begin
with Msg.DrawItemStruct^ do begin
c:=TCanvas.Create;
c.handle:=hDc;
c.brush.color:=clMenu;
c.Font.Color:=clMenuText;
c.Font:=canvas.Font;
hFontOld:=hFont(SelectObject(hDc,canvas.Font.handle));
item:=MainMenu1.FindItem(itemID,fkCommand);
StrPCopy(szText,item.caption);
if (itemstate and ODS_SELECTED)>0 then begin
c.Font.Color:=clWhite;
c.brush.color:=clRed;
end;
Retang:=Rect(rcItem.left,rcItem.Top,rcItem.Right,rcItem.Bottom);
c.FillRect(Retang);
dwcheck:=getmenuCheckmarkDimensions;

c.TextRect(Retang,rcItem.left+loword(dwCheck)+16,rcItem.Top,szText);
// tady by bylo lepsi kreslit bitmapu z ImageListu:
// imagelist1.Draw(c,0,0,item.tag);
if item = mnuOpen then
c.Draw(0,0,image1.picture.bitmap);
c.Free;
SelectObject(hDC,hFontOld);
end;
end;

procedure TForm1.wmmeasureitem(var msg: twmmeasureitem);
var
sText: string;
dwCheck: longint;
item: TMenuItem;
begin
With Msg.MeasureItemStruct^ do begin
item:=MainMenu1.FindItem(itemID,fkCommand);
sText:=item.caption;
dwcheck:=getmenuCheckmarkDimensions;
ItemWidth:=canvas.TextWidth(sText)+LoWord(dwcheck)+14;
ItemHeight:=canvas.TextHeight(sText);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
ChangeMenu(MainMenu1.Items);
canvas.font.name:='Tahoma';
canvas.font.size:=10;
canvas.font.style:=[fsBold];
end;


end.> -----P�vodn� zpr�va-----
> Od: Martin Lasevic [SMTP:vyvoj(zv)atlascon(tec)cz]
> Odesl�no: 9. b�ezna 1999 10:13
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: RE: Menu
>
> Neni to muj napad, proto podekuj autorovi, ktery je uz asi neznamy.
>
> Martin
>
> var
> h:HBitmap;
> lBitMap:TBitMap;
>
> begin
> .........................
> //obrazky do menu
> lBitMap:=TBitMap.Create;
>
> //miNapoveda
> lBitMap.Assign(BBtPomoc.Glyph); //naplneni bitmapy nejakym obrazkem
> - napr.
> glyphem z tlacitka
> If BBtPomoc.NumGlyphs>1 then
> lBitMap.Width:=(lBitMap.Width-1) div BBtPomoc.NumGlyphs; //pokud
> je glyph
> z vice casti, beru prvni
> H:=CopyImage(lBitMap.Handle, image_bitmap, 12, 12, 0);
> //vytvori kopii
> obrazku a preda handle a oreze
> SetMenuItemBitmaps( miNapoveda.Handle, 1, MF_BYPosition,
> H, H);
> //nastaveni bitmapy do menu miNapoveda k
> submenu,
> //ktere
> je na pozici 1, podle pozice
> ..............
> lBitMap.free;
>
>
> -----Puvodni zprava-----
> Od: Petr Vones [SMTP:pvones(zv)mbox.vol(tec)cz]
> Odeslano: 8. boezna 1999 22:21
> Komu: delphi-l(zv)fwd(tec)cz
> Poedmit: Re: Menu
>
> > Milan Fiedler wrote:
> >
> > nevite o nejake komponente do Delphi 2, ktera by v menu mela obrazky
> (Gliph).
>
> Ahoj,
>
> Zkus prohledat DSP, Torry, urcite tam neco takoveho nekde najdes.
>
> --
>
> Internet proti monopolu. Petr Vones, amatersky
> programator
> * http://www.bojkot(tec)cz *
> ************************
>
>
>
>

Tvorba helpu

[*] Libor Klicnik <libor_klicnik(zv)aisoft(tec)cz> - 09.3.1999 12:41:21

Zdravim vsechny,
mam dotaz ohledne tvorby helpu pro D2. Pouzivam prg. Help&Manual, ale
neni to ono... Nemate nekdo zkusenost s nejakym jinym softwarem,
pripadne
uvitam i odkaz na nejake stranky
Diky za odpoved
Libor

Tvorba napovedy

[*] PeJaSoft <petr.jarkovsky(zv)spsselib.hiedu(tec)cz> - 9.3.1999 12:42:14

> Potrebuju vytvorit napovedu.
> Nevite nekdo v jakem editoru lze rtf vytvorit ?
>
> Dik
> F. Shima

Ja to editoval v tom Delphackym prikladu v (myslim ...\DEMOS\RICHEDIT)
ten to umi.

PeJaSoft

(\__/) PeJaSoft
/o o \ ____ Petr Jarkovsky
{o__, +/~ _) (PASCAL,DELPHI,3D Studio, 3D Max)
/ + \ {
|-| ) \ E-Mail: domu: pejasoft(zv)post(tec)cz
,+( `+`\ } do skoly: petr.jarkovsky(zv)spsselib.hiedu(tec)cz
---+~_ _ _)-+` Homepage: http://www.spsselib.hiedu(tec)cz/~xjarkov
nebo: http://www.mujweb(tec)cz/www/pejasoft
Sypte veverkam !!!

Tvorba napovedy

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 9.3.1999 12:46:03

> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam
> vzdy pripoji
> hlasku o tom, ze je to neregistrovane a podobne.

RTF umi i WordPad z Windows.
Nevim, ale, jestli neni vysledek taky obohacen.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Tvorba napovedy

[*] Mor�ol Marian <Marian.Morzol(zv)ostrava.aksignal(tec)cz> - 9.3.1999 12:51:27

S touto chybou jsem zapolil take, ale reseni jsem (prozatim) nenasel.
Tak jsem to vzdal. Sice jsem nepouzival vzorovy rtf, ale svuj, ktery
jsem vytvoril na zaklade kursu, ktery tu pred nejakou dobou probehl
....a jedine ceho jsem dosahl bylo ze kompilator hlasi naruseny rtf
soubor.
Kdyby nekdo z HLP create guru (kterych je v teto konferenci urcite dost)
poradil co s tim vyl bych neskonale vdecen.

> -----P�vodn� zpr�va-----
> Od: Shima Fares, Bc. [SMTP:shima(zv)czechtrade.tpo(tec)cz]
> Odesl�no: 9. b�ezna 1999 11:22
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: Tvorba napovedy
>
> Potrebuju vytvorit napovedu.
>
> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma
> najednou
> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to
> ze
> soubor je corupted.
>
> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam vzdy
> pripoji
> hlasku o tom, ze je to neregistrovane a podobne.
>
> Dik
> F. Shima


Pouzivani databaze vice uzivateli

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 9.3.1999 13:05:08

Ahoj vsichni,

nejsem zadny odbornik na databaze, tak mne moc nebijte, pokud je muj
dotaz trivialni:

Delal jsem aplikaci, kde na databazi mohl pristupovat jen jeden
uzivatel. Vzdy pri startu aplikace se databaze reindexovala, protoze
jednak je mala a jednak casove zdrzeni nevadilo.

Ted ji mam predelat tak, aby byla databaze na jednom miste v siti a aby
na ni mohlo pristupovat vice uzivatelu. Problem je, ze se databaze
reindexuje jen tomu prvnimu, u dalsiho to samozrejme zarve. Jde mi tedy
o to, jak poznat, ze databaze je jiz otevrena jinym uzivatelem.

Dale pujde o to, jak osetrit, ze kdyz chce editovat zaznam jeden
uzivatel, nemohl jej soucasne editovat i jiny uzivatel.

Mam D3 Standard, tabulka je ve forme DBF souboru (2 sloupce a cca 500
zaznamu).

Diky za vsechny odpovedi predem.

********************************************************
Petr Brant [p.brant(zv)samo(tec)cz]

programator v MSVC++, obcas Delphi nebo Visual Basic
********************************************************

elementarny problem s C/S

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 9.3.1999 13:06:54

Koukam, ze by se subj. mel prejmenovat na "zapeklity problem s
C/S" :-)

Jaro wrote:

> A nastavoval jsi ten priznak na serveru nebo jej nastavoval klient?
> Tady jsme mozna konecne u jadra veci. Klient nema co nastavovat zamek nebo
> priznak. Kdo ten zamek uvolni nebo vrati priznak na puvodni hodnotu, kdyz
> klient zatuhne? S postupem casu tam budou pribyvat "neuvolnene" zaznamy.

Uz si to presne nepamatuji, ale myslim, ze to delal klient, s
kontrolami pred a po. Urcite netvrdim, ze moje reseni je to nejlepsi,
ale nic lepsiho me v te dobe nenapadlo. :-) Myslim, ze jsem tam
nakonec dal moznost rucniho odstranovani tech priznaku, pokud
doslo k padu systemu (provoz to umoznoval - to je DOST dulezita
poznamka :).

> Pokud to nastavi triger pri BeforeUpdate a uvolni pri AfterUpdate, tak je
> to OK. Na tvem prikladu je dobre videt rozdil mezi zamkem a pouzitim
> priznaku. Zatimco zamek blokuje dalsi transakce a praci serveru a musi byt
> pouzit jen kratkodobe, priznak blokuje pouze jeden zaznam k editaci,
> protoze to je tak osetreno klientsky, ale server muze provadet libovolne
> operace a nic ho neblokuje. Tady, kdyby bylo jeste vyreseno, ze bude
> videt, ktery uzivatel zaznam blokuje, tak je to mozne pouzit i
> dlouhodobe. Na toho dispecera se mohou vsichni ... "vynadat mu", a on je
> klidne muze poslat do ... "haje zelenyho", protoze on byl prvni a jemu ten
> kseft patri, ale to uz je veci vnitrni smernice a ne programu. Jaro

Jeden hacek byl v tom, ze to bezi na MS SQL, tedy zadne
BeforeXxx neexistuje. Krome toho jsem pracoval s celou grupou
zaznamu z ruznych tabulek. Resil jsem to tak, ze jsem otevrel
zaznam, nahodil priznak, sosnul data, zavrel zaznam, dispecer v
klidu neco vyrabel a pak jsem to vratil zpatky. Ostatni samozrejme
videli, co kdo dela, ale to nebylo zajisteno pres databazi ale jinak.
>
=================
>
> Mno, delal jsem dispecersky program, kde jeden zaznam mohl byt
> otevreny delsi dobu (dispecer se vyptaval klienta a doplnoval udaje).
> Potom vetu ulozil, ale mohl se k ni pozdeji nekolikrat vratit pri
> doplnovani novych udaju. Jenze k teze vete se mohl vratit i jiny dispecer.
> Tam nelze pripustit, aby jiny dispecer sebral jinemu dispecerovi vetu v
> okamziku, kdy je veta editovana. Takze je tam nutno vyresit stav, kdyz je
> veta otevrena, a ostatnim se vrati hlaska (kdyz ji budou chtit otevrit pro
> zmeny), ze nemaji sanci. Neresil jsem to zamkem na vete (uz proto, ze s
> vetou souvisely dalsi zaznamy v dalsich tabulkach a take proto, ze to bylo
> na SQL), ale prave nastavenim priznaku v zaznamu.
>
> Tam ovsem z podstaty provozu nemohlo dojit k tomu, ze by baba
> nechala vetu otevrenou a sla si vyrizovat sve problemy na zachod a
> do kantyny. :-)


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Tvorba napovedy

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 9.3.1999 13:06:55

Myslim, ze to jde ve WordPadu nebo v tom prvnim Wordu pro Win95 (ted si
nepamatuji cislo verze).

********************************************************
Petr Brant [p.brant(zv)samo(tec)cz]

programator v MSVC++, obcas Delphi nebo Visual Basic
********************************************************
> -----P�vodn� zpr�va-----
> Od: Shima Fares, Bc. [SMTP:shima(zv)czechtrade.tpo(tec)cz]
> Odesl�no: 9. b�ezna 1999 11:22
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: Tvorba napovedy
>
> Potrebuju vytvorit napovedu.
>
> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma
> najednou
> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to
> ze
> soubor je corupted.
>
> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam vzdy
> pripoji
> hlasku o tom, ze je to neregistrovane a podobne.
>
> Dik
> F. Shima
>

Tvorba napovedy

[*] Roman <roman.banar.fei(zv)vsb(tec)cz> - 9.3.1999 13:13:33

> > Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> > specializovane programy na tvorbu napovedy, protoze ty tam
> > vzdy pripoji
> > hlasku o tom, ze je to neregistrovane a podobne.
>
> RTF umi i WordPad z Windows.
> Nevim, ale, jestli neni vysledek taky obohacen.

jo, tak tohle sem jednou zkusil a razem sem prisel o vsecky zalozky,
ktery byly v tom rtf, tak uz sem s tim raci nic nezkousel a zustal sem
u wordu97...

roman


Tvorba napovedy

[*] Skoupy, Martin <skoupy(zv)dcb(tec)cz> - 9.3.1999 13:17:55

Pouzij na to Word 6.0, tam to jede bez problemu.

> -----P�vodn� zpr�va-----
> Od: Shima Fares, Bc. [SMTP:shima(zv)czechtrade.tpo(tec)cz]
> Odesl�no: 9. b�ezna 1999 11:22
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: Tvorba napovedy
>
> Potrebuju vytvorit napovedu.
>
> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
> soubor je corupted.
>
> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
> specializovane programy na tvorbu napovedy, protoze ty tam vzdy pripoji
> hlasku o tom, ze je to neregistrovane a podobne.
>
> Dik
> F. Shima
>

Detekce HW - grafika - Nejen grafika

[*] OceaniC <pleticha(zv)kol1.kolej.ujep(tec)cz> - 9.3.1999 13:50:34

Velice dekuji,

do co jste poslal mi vyhovuje na 1000%...
Doporucuji vsem

OceaniC 20084514
-----P�vodn� zpr�va-----
Od: Ing. Ludek Florian <ludan(zv)bluerose(tec)cz>
Komu: Konference Delphi <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 13:44
P�edm�t: Re: Detekce HW - grafika


>Cauec,
>
>mam tu jednu komponentu pro D3 i D4, docasne jsem ji strcil na
>www.bluerose(tec)cz/delphi/msysinfo.zip (241 KB)
>Umi toho vic (BIOS, Net...). EXE demo prilozeno.
>
>Stranky jsou v porodnich bolestech, ale na tohle se dostanes.
>
>Bye Ludan
>
>
>>Bohuzel se jedna o Win.
>>Pls HELP
>
>
>>>Ahoj,
>>>dulezity je pod jakym systemem to delas. Ne kazdej system te pusti tak
>>>nizko. Pro DOS toho mam spoustu, pro Woknousy jsem to zatim
>>>nepotreboval, ale myslim, ze tam na to bude neco primo systemovyho.
>
>>>> potreboval bych kopnout spravnym smerem,
>>>> pri detekci graficke karty. Mam to hledat pres
>>>> registry nebo si sahnout do BIOSu karty ?
>
>

Tvorba napovedy

[*] eL <delphi(zv)sales(tec)cz> - 9.3.1999 14:04:54

Uz jsem se stim take setkal. M$Word totiz RTF neuklada spravne. Nejlepsi je
pouzit stary dobry Wordpad. Ten totiz asi zapomeli pomrsit prizpusobit si ho
svym pozadavkum.

eL..
-----P�vodn� zpr�va-----
Od: Shima Fares, Bc. <shima(zv)czechtrade.tpo(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 13:18
P�edm�t: Tvorba napovedy


>Potrebuju vytvorit napovedu.
>
>Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
>souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
>spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
>asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
>soubor je corupted.
>
>Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
>specializovane programy na tvorbu napovedy, protoze ty tam vzdy pripoji
>hlasku o tom, ze je to neregistrovane a podobne.
>
>Dik
>F. Shima
>

Jak zjistit kdo je na vzdalenych NT prihlasen?

[*] muher(zv)csas(tec)cz - 9.3.1999 14:11:41

Zdravim!
Mne napada zatim jen to, ze si pripojim
jeho Registry a tam uz to najdu. Musi to jit prece
i jinak.

Diky za radu!

Tvorba napovedy

[*] Milan Fiedler <milanf(zv)rts(tec)cz> - 9.3.1999 14:53:55

Mel jsem podobny problem.

Vytvor to v Word 95 a pojede ti to, Word97 to rtf dela nejak nekorektne.
Milan Fiedler

-----P�vodn� zpr�va-----
Od: Shima Fares, Bc. <shima(zv)czechtrade.tpo(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 12:13
P�edm�t: Tvorba napovedy


>Potrebuju vytvorit napovedu.
>
>Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
>souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
>spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
>asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
>soubor je corupted.
>
>Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
>specializovane programy na tvorbu napovedy, protoze ty tam vzdy pripoji
>hlasku o tom, ze je to neregistrovane a podobne.
>
>Dik
>F. Shima
>
>
>

elementarny problem s C/S

[*] jk(zv)tzus(tec)cz - 9.3.1999 14:55:58

>Pokud ma SQL server makat na maximum (paralelni zpracovani
>transakci), je nezbytne nutne zajistit co nejkratsi dobu trvani
>transakce. Tedy zablokovani ostatnich transakci pseudozmenou
>editovaneho zaznamu je nejblbejsi (ale presto stale jeste hojne
>pouzivanou) technikou jak dosahnout toho, aby v danem okamziku
>mohl editovat jen jeden uzivatel. Vetsina SQL serveru (v
>optimalnim isolation levelu) trpi zavaznym nedostatkem, kdy write
>transakce blokuje nejen ostatni write, ale i read only transakce
>(nemate predstavu, co dokaze pagelock na index <g>). Jedina SQL
>databaze na svete, ktery tento problem nikdy nemela je Interbase,
>u ktere write nikdy neblokuje read.

Omlouvam se ale uplne jsem nepochopil jak mi blokuje SQL server dotazy
do databaze, pokud zaroven zapisuji ? Prece nejsem v dotazovani pri zapisu
nijak omezen (alespon na Oracle ne) a navic mam zarucenou konzistenci
vysledku ?

K zamkum :

1/ Pokud pouziju zamykani na urovni radku (na Oracle select ... for update)
tak je jen na me proc to delam. Pokud chci zamezit modifikaci tohoto zaznamu
jinym uzivatelem tak to dela presne to co chci a nevidim duvod proc by to
melo necemu branit a nemel bych to pouzivat. Ostatni uzivatele se mohou bez
problemu dotazovat (vidi samozrejme starou verzi zaznamu) ale nemohou delat
update a delete (a to je prece presne to co chci zakazat). Pokud mi klient
spadne tak mi server zamky automaticky uvolni a nemusim o nic starat. Je to
zcela jiste spolehlivejsi a obecnejsi reseni nez nejaky dalsi server ktery
se mi stara o zamky nebo ruzne triggery a ulozene procedury.

2/ Pokud chci pouzit nejake virtualni zamky nebo semafory tak je opet lepsi
snazit se vyuzit primo vlastnosti SQL serveru (pokud to umi nebo ma takove
rozsireni napr. DBMS_LOCK na Oracle) nez vymyslet najake rozsireni
aplikacniho serveru nebo pouzivat DCOM omezeny pouze na Win32.

BTW k predchozi diskuzi - automaticky audit zmen v databazi ma Oracle.

S pozdravem


Jan Kadlecek

******************************************
* kadlecek(zv)htkpro(tec)cz *
* HTK Pro s.r.o., www.htkpro(tec)cz *
* tel : 02-83880361, fax: 02-6896391 *
* Autorizovany dealer TurboPower *
******************************************

elementarny problem s C/S

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 9.3.1999 14:59:11

> Myslim, ze kdyz si Sebelik naplanuje skoleni tupu
> "databazove projektovani C/S", tak by tu mel mozna dost
> potencialnich zakazniku
> Vidim, ze to nekteri tvrdosijne stale nechapou.
>
> Jaro

Teda nechtel jsem o tom tady mluvit, ale kdyz uz jsi to nakousnul...
Takovy kurz samozrejme davno existuje (celkem 15x, 98 ucastniku).
Odkud bych jinak cerpal svoje "rozumy"?

Ale vazne:
Ucastniky skoleni jsou vetsinou lide, kteri zvolili Delphi+SQL pri prechodu z DOSu (Fox, Paradox, Fand, ...).
Problem ZAMEK x SQL databaze, o kterem je tady rec, jsme spolu prolezli ze vsech stran.

Zajimava jsou setkani techto
a)
"souborove orientovanych" lidi (upsizing, podivate-li se na subj. "elementarny problem s C/S", okamzite je poznate)
b)
s ucastniky, kteri zvolili Delphi jako RAD klienta ke svym velkym unixovym SQL databazim (downsizing, nejcasteji Oracle, Informix).

Tyto dve skupiny ucastniku si casto vubec nerozumi, da jim hodne prace, aby nasli spolecnou rec!
V Subj. "elementarny problem s C/S" je to take videt, uplne stejne.

Za svuj uspech pak povazuji, pokud se mi podari ty "upsizing" presvedcit, za Aplikace na strane Server je SAMOSTATNA APLIKACE, kterou je treba vytvaret bez ohledu na to, jaky klientsky nastroj bude nakonec pouzit. Nehlede na to, ze klienskych nastroju muze byt cela rada - v zavislosti na typu klientske ulohy (programovaci jazyk, "databazovy klient", spreadsheat).

Proto se mi zdaji ponekud "mimo misu" ty uvahy, jak integritu databaze zajistit z klienta. Databaze se musi o svoji integritu postarat sama a bez ohledu na typ klienta a na chyby klientskych programatoru a uzivatelu.

Proc rikam ze Aplikace na strane Server je SAMOSTATNA APLIKACE:

Programovani SQL databaze to nejsou jenom datove struktury a integritni omezeni typu Foreign Key.
Na SQL databazi je mocne predevsim to, ze je schopna modelovat dynamiku realneho systemu, udalosti.
Data ve Fox nebo Paradoxu to je jenom mrtva hromada dat.
To, co dava databazi "zivot" jsou prave triggery - reakce na udalosti. Tak je model reality uplny.

Pak jediny update prinasi retezovou reakci navazujicich akci. Puvodni udalost se siri databazi aniz bychom vsechny tyto dusledky byli schopni ve sve hlave vubec domyslet. A ono to pritom funguje! Pres pet tabulek/akci/triggeru zprostredkovane poruseni nejakeho omezeni (constraint) zpusobi rollback, puvodni akce se neprovede a databaze ohlasi exception. Jak proste, jak snadne.

To jsou dusledky, jejichz reseni si v souborove orientovane databazi vubec nedokazu predstavit. Nemluve za takove situace o viceuzivatelskem pristupu.

Doufam, ze jsem vas vyjadrenim sveho nazoru nenudil.
Doufam, ze ucastnici skoleni, ktere jsem v teto konferenci zaznamenal, se mnou budou souhlasit.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================

mySQL ODBC a Delphi 4

[*] eL <delphi(zv)sales(tec)cz> - 9.3.1999 15:03:18

>> a logicky mne zacali zajimat Delphi. "Pujcil" jsem si na vyzkouseni D3
>> (ovsem Profi) a vse se zdalo OK tak jsem koupil D4 Standarta. Nevsiml
jsem
>> si, ze by nekde v rozdilech bylo uvedeno , ze neumi ODBC. Myslel jsem si,
>
>Ale jo, je to tam napsano, opravdu.


Je a neni. Myslim ze se mohu citit ze strany INPRISE malinko obelhan ted
jsem se tam dival a je tam, ( cituji z
http://www.inprise(tec)cz/del4skus.htm ) : "Nov�: �pln� podpora konektivity
ODBC". (Standart NE ostatn� ANO)

Kdy� je neco nov�ho tak to ve star� verzi nen� (r�k� mi logika veci).

Proste jsem si myslel, �e je to vlastnost BDE a �e tedy Profi verze bude m�t
nejakou lep�� kompnentu ci co najako takov�ho a nenapadlo mne, ze to budou
takhle blokovat. No co mel sem se asi zeptat. Jenze koho by to napadlo kdy�
Paradox to zvladal i na nove verzi BDE. Nikde se nezminuji o tom, ze by
Standart mel (krom nejakych transakci, CAB souboru a primeho pristupu pres
API) nejak omezenou moznost vyuziti BDE. Pritom bych pocital s tim, ze co
umi 4 nebo 5 let stara Pdox7 ktera stala tenkrat priblizne ty samy prachy
bude dneska ten Standart umet taky.
Moc si to u mne timhle Borland nepolepsil.

No to uz je zbytecne placani. Problem je vyresen a je se holt musim
rozhodnout zda se vratim ke staremu nebo zaplatim spustu penez za neco co
temer nevyuziju.
Pokud jsem to spravne pochopil neexistuje ani upgrade. Takze 5000 je v
kazdem pripade v haji.

eL..

Tvorba napovedy

[*] rys(zv)zas-me(tec)cz - 9.3.1999 15:11:10

>Potrebuju vytvorit napovedu.
>
>Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
>souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
>spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma najednou
>asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to ze
>soubor je corupted.

K naproste spokojenosti pouzivam Word 6.0 - od Wordu 97 jsem rychle utekl.
Nezkousel jsem, co by se stalo, kdyby se z Wordu 97 ukladalo ve formatu pro
Word 6/95 (coz je taky RTF, jen to tam verejne netvrdi), ovsem nejak se mi
nechce verit, ze by to fungovalo.

Karel Rys


mySQL ODBC a Delphi 4

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 9.3.1999 15:17:37

Petr Zahradnik wrote:

> I kdyz vlastne vsechno jsou jen betaverze, jak rika Zbysek,
> protoze uz je tu 3. patch a stale to nechodi tak, jak by si
> nekdo mohl predstavovat... Ja jsem docela spokojeny.

Bodejt bys nebyl, kdyz se koukas jenom na ikonku. :-))) Ale
pockej, az s tim zacnes doopravdy neco delat. :-))


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


elementarny problem s C/S

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 9.3.1999 15:23:42

Haj hou!

From: jk(zv)tzus(tec)cz <jk(zv)tzus(tec)cz>
>Omlouvam se ale uplne jsem nepochopil jak mi blokuje SQL server
dotazy
>do databaze, pokud zaroven zapisuji ? Prece nejsem v dotazovani
pri zapisu
>nijak omezen (alespon na Oracle ne) a navic mam zarucenou
konzistenci
>vysledku ?


Hohoho, Oracle je pisen sama pro sebe :-) Je samozrejme vzdy
nutne konzultovat technickou (nikoliv povsechnou) dokumentaci k
tomu kteremu SQL serveru (a k dane verzi). Hodne zalezi na
strategii (row/page) a typech zamku (share,write atd.) a
nastavenem isolation levlu. Rozdily jsou casto velmi znacne.
Rovnez mivaji novejsi verze serveru ruzne okliky, jak tyto
problemy (alespo castecne) resit. Jsou vsak rovnez proprietarni,
nic obecneho neexistuje. Strategie vyladena pro urcitou verzi
urciteho servere nemusi jinde fungovat vubec.

>K zamkum :
>
>1/ Pokud pouziju zamykani na urovni radku (na Oracle select ...
for update)
>tak je jen na me proc to delam. Pokud chci zamezit modifikaci
tohoto zaznamu
>jinym uzivatelem tak to dela presne to co chci a nevidim duvod
proc by to
>melo necemu branit a nemel bych to pouzivat. Ostatni uzivatele
se mohou bez
>problemu dotazovat (vidi samozrejme starou verzi zaznamu) ale
nemohou delat
>update a delete (a to je prece presne to co chci zakazat). Pokud
mi klient
>spadne tak mi server zamky automaticky uvolni a nemusim o nic
starat. Je to
>zcela jiste spolehlivejsi a obecnejsi reseni nez nejaky dalsi
server ktery
>se mi stara o zamky nebo ruzne triggery a ulozene procedury.


SELECT...FOR UPDATE je uplne neco jineho a typycky nemusi ani nic
zamykat (zalezi na typu serveru a isolation levelu). Navic select
s touto klauzuli muze dost dobre zmast BDE a zapricinit anomalni
chovani (rovnez ruzne pripad od pripadu). Ja jsem ovsem mluvil o
strategi, kdy transakce udela zmenu v datech (bud iluzorni nebo
zmenu flagu). Tato zmena sice nahodi zamek na radek/stranku, ale
zaroven typycky blokuje (vice ci mene) pouhe ctenare ve cteni,
dokud neni bud potvrzena nebo odvolana. Tragedii je, kdyz tato
zmena ovlivni indexy a server pouziva pagelocky (to casto
blokujete veci, o kterychse vam ani nesni). Napr. u takoveho SQL
Serveru 6.5 je to nejlepsi spusob, jak jej dostat pri vicero
uzivatelich do kolen.

>2/ Pokud chci pouzit nejake virtualni zamky nebo semafory tak je
opet lepsi
>snazit se vyuzit primo vlastnosti SQL serveru (pokud to umi nebo
ma takove
>rozsireni napr. DBMS_LOCK na Oracle) nez vymyslet najake
rozsireni
>aplikacniho serveru nebo pouzivat DCOM omezeny pouze na Win32.


Ano, proc ne, ale POKUD TO UMI. typycky to neumi. Pokud ma navic
aplikace bezet na ruznych SQL serverech, je externi reseni lepsi.

>BTW k predchozi diskuzi - automaticky audit zmen v databazi ma
Oracle.


Uz jdi s tim molochem nek....

Pouzivani databaze vice uzivateli

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 15:32:56

Puvodni zprava, kterou napsal Petr Brant dne 9 Mar 99,:

> na ni mohlo pristupovat vice uzivatelu. Problem je, ze se databaze
> reindexuje jen tomu prvnimu, u dalsiho to samozrejme zarve. Jde mi tedy o
> to, jak poznat, ze databaze je jiz otevrena jinym uzivatelem.

Zkusis ji otevrit exkluzivne a pokud to pujde, pak jsi jediny.
Pokud ne, pak tam uz nekdo visi...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Tvorba napovedy

[*] BRAIN and HEART <mozek2(zv)iol(tec)cz> - 9.3.1999 15:34:52

J� pou��v�m Help Workshop, aktu�ln� verzi st�hnutou z www.microsoft.com a
nem�m s rtf formatem zadny problem.
Jako textovy editor pouzivat WOFR 97.

Jirka

-----P�vodn� zpr�va-----
Od: Richard Willmann <sales(zv)nocomment.sk>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 12:49
P�edm�t: Re: Tvorba napovedy


>podobny problem som mal aj ja... Chce to stiahnut novy Help Workshop z
>MS. Ten ktory sa dodava s Delphi (spon ten ktory bol k D3) nevedel
>precitat rtf subory vytvorene vo worde.
>
>rw
>
>Shima Fares, Bc. wrote:
>
>> Potrebuju vytvorit napovedu.
>>
>> Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade rtf
>>
>> souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor dodavany
>>
>> spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma
>> najednou
>> asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to
>> ze
>> soubor je corupted.
>>
>> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
>> specializovane programy na tvorbu napovedy, protoze ty tam vzdy
>> pripoji
>> hlasku o tom, ze je to neregistrovane a podobne.
>>
>> Dik
>> F. Shima
>
>
>

Tvorba helpu

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 9.3.1999 15:44:22

FOREHELP (puvodne RAD Pack pro Delphi 1)
mi prisel hodne dobry, ma i verzi pro Win32 (ale uz je to drazsi...)

Psat .rtf ve Wordu - na to ja trpelivost nemam, to bych s tim seknul jeste drive, nez bych poradne zacal.

Ale nastupuje nam era html helpu, s tim jsem se dosud vyrovnat nestacil.
Ma s tim nekdo zkusenosti? Kratce a vystizne?

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
----------
> Odes�latel: Libor Klicnik <libor_klicnik(zv)aisoft(tec)cz>
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Tvorba helpu
> Datum: 9. b�ezna 1999 12:41
>
> Zdravim vsechny,
> mam dotaz ohledne tvorby helpu pro D2. Pouzivam prg. Help&Manual, ale
> neni to ono... Nemate nekdo zkusenost s nejakym jinym softwarem,
> pripadne
> uvitam i odkaz na nejake stranky
> Diky za odpoved
> Libor


Dynamicka pole

[*] Ing. Zdenek Sraier <sraierzd(zv)czn(tec)cz> - 9.3.1999 16:09:27

Nazdarek,

chtel bych se zeptat, jestli a jake mate zkusenosti s dynamickymi poli.
Specielne s dvojrozmernymi - jsem dnes narazil na problem s polem:

|var
| b: array of array of integer;
|*****
|setLength(b,delka,2);

Byla to lokalni promnenna formulare a pri jejim uvolnovani pri close
jsem porad dostaval "Invalid pointer operation".

Kdyz jsem pole nahradil definici:

|var
| b: array of array [1..2] of integer;
|*****
|setLength(b,delka);

fungovalo to dobre (D4P-SP3).

S pozdravem Zdenek

--------------------------------------- E-Mail -------------------------
| Zdenek Sraier | sraierzd(zv)czn(tec)cz (jednou denne) |
| o__o | zdenek.sraier(zv)sms.paegas(tec)cz (max 160 zn. kdykoliv) |
| ( o o) |--------------------- WWW --------------------------|
| (. .) | http://users(tec)czn(tec)cz/~sraierzd/ |
------------------------------------------------------------------------
| WWW Stranky Potapecske (SP) HTTP://www.byll(tec)cz/scuba/ |
------------------------------------------------------------------------


mySQL ODBC a Delphi 4

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 16:13:47

Puvodni zprava, kterou napsal eL dne 9 Mar 99,:

> >Ale jo, je to tam napsano, opravdu.
>
> Je a neni. Myslim ze se mohu citit ze strany INPRISE malinko obelhan ted
> jsem se tam dival a je tam, ( cituji z http://www.inprise(tec)cz/del4skus.htm
> ) : "Nov�: �pln� podpora konektivity ODBC". (Standart NE ostatn� ANO)
>
> Kdy je neco nov�ho tak to ve star� verzi nen� (r�k� mi logika veci).

No a copak Delphi 3 Standard umel ODBC? Ja bych to tedy z tohoto
pochopil, ze to nejde... Zrovna jako ze SQL Links nepujdou z verze
Professional.

> Proste jsem si myslel, e je to vlastnost BDE a e tedy Profi verze bude
> m�t nejakou lep � kompnentu ci co najako takov�ho a nenapadlo mne, ze to
> budou takhle blokovat. No co mel sem se asi zeptat. Jenze koho by to
> napadlo kdy Paradox to zvladal i na nove verzi BDE. Nikde se nezminuji o
> tom, ze by Standart mel (krom nejakych transakci, CAB souboru a primeho
> pristupu pres API) nejak omezenou moznost vyuziti BDE. Pritom bych

Musis si uvedomit, ze kazda verze je urcena pro neco jineho a podle
toho take Inprise urcuje cenu. Standard stoji opravdu smesne penize.
Umi toho na ty penize hodne. Vem si, ze napriklad konkurencni
Visual Basic Learning Edition nema licenci na sireni aplikaci,
ktere jsou v nem udelane, musis si koupit Professional, pokud
chces tvorit a prodavat... Delphi Standard proste slouzi pro
seznameni se s produktem, a pokud delas mensi aplikace, tak
s nim mozna vystacis. Chces-li ale opravdu programovat, potrebujes
Professional, kde jsou take zdrojaky a spousta dalsich veci.

> pocital s tim, ze co umi 4 nebo 5 let stara Pdox7 ktera stala tenkrat
> priblizne ty samy prachy bude dneska ten Standart umet taky. Moc si to u
> mne timhle Borland nepolepsil.

Me zase Inprise nastval pred X roky, kdyz jsem si kupoval upgrade
z Turbo Pascal 6 na Borland Pascal 7 a prislo to v obycejne krabici
bez obrazku :-))) A obcas me stve i dnes, to nejsi sam...

> No to uz je zbytecne placani. Problem je vyresen a je se holt musim
> rozhodnout zda se vratim ke staremu nebo zaplatim spustu penez za neco co
> temer nevyuziju. Pokud jsem to spravne pochopil neexistuje ani upgrade.
> Takze 5000 je v kazdem pripade v haji.

Ale ano, muzes upgradovat na Professional. Ale mas jeste nekolik
dalsich moznosti. Nekde si stahni nejake free komponenty pro primy
pristup na ODBC, pokud existuji. Urcite existuji placene, jako
napr. ODBC Express nebo ODBC98. Tim pak muzes na cele BDE zapomenout
a jeste navic mas malou aplikaci bez DLL apod. A to ti bude chodit
i v Delphi Srandard.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Tvorba helpu

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 9.3.1999 16:16:56

Puvodni zprava, kterou napsal Jan �ebel�k dne 9 Mar 99,:

> FOREHELP (puvodne RAD Pack pro Delphi 1)

Co ??? V RAD Packu pro Delphi neni ForeHelp. Ja mam RAD Pack
a je tam uplne neco jineho. ForeHelp 1 jsem si kupoval uplne
zvlast a nedavno jsem si upgradoval na ForeHelp 3.

> mi prisel hodne dobry, ma i verzi pro Win32 (ale uz je to drazsi...)

Ano, ForeHelp je bezvadny!!!

> Psat .rtf ve Wordu - na to ja trpelivost nemam, to bych s tim seknul jeste
> drive, nez bych poradne zacal.

I ja...

> Ale nastupuje nam era html helpu, s tim jsem se dosud vyrovnat nestacil.
> Ma s tim nekdo zkusenosti? Kratce a vystizne?

To jsou .CHM soubory - na microsoft.com je HTML Help Workshop
(nebo jak se to jmenuje) a ten z HTML souboru udela tenhle
.CHM soubor a funguje to jako HTML.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Info v BIOSu

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 9.3.1999 16:18:20

>resim problem, jak dostat v D3 z BIOSu informaci o tom, je-li PeCka
notebook nebo
>stolni poeitae.
>

a to je opravdu nekde v BIOSu ? Urcite to neni standardni zalezitost....


Zdravi
D. Toman

Popis jazyka SQL

[*] David Kriz <david.kriz(zv)ccv(tec)cz> - 09.3.1999 16:20:48

Nevite nekdo o nejakem popisu jazyka SQL, ktery je pokud mozno v
elektronicke podobe a zadarmo?

IE - Tazka otazka

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 9.3.1999 16:20:51

>potreboval by som monitorovat "stahovanie" obrazkov prehliadaca IE alebo
NN.
>Nema niekto nejaky napad?
>
>Summa summarum ide o zabranenie downloadingu obrazkov s rozmerom 486/60
>resp. podobnych ...


jedine napsat proxy server (dokonce existuje nejmene jeden, ktery presne
tohle dela) nebo mozna vlastni plugin....

Ma ale takovato funkce _opravdu_ nejaky smysl? Co si od toho slibujes?

Zdravi
D. Toman

Popis jazyka SQL

[*] Marek Soukup <marek(zv)comberg(tec)com> - 09.3.1999 16:28:50

Ahoj,
videl jsem toho fakt hodne na webu, spoustu clanku do Acrobata. Staci
nebejt linej a stourat se po webu :-))
Nektery linky:
http://willcam.com/sql/default.htm
http://www.itlibrary.com/reference/library/0672311100/ewtoc.html
http://www.itlibrary.com/


Marek Soukup


David Kriz wrote:

> Nevite nekdo o nejakem popisu jazyka SQL, ktery je pokud mozno v
> elektronicke podobe a zadarmo?

elementarny problem s C/S

[*] Erik Salaj <erik(zv)dodo.sk> - 9.3.1999 16:29:33

>Myslim, ze kdyz si Sebelik naplanuje skoleni tupu
>"databazove projektovani C/S", tak by tu mel mozna dost
>potencialnich zakazniku
>Vidim, ze to nekteri tvrdosijne stale nechapou.

Plne suhlasim.

>Tak, ze celou skupinu operaci, ktera ma vliv na integritu bud potvrdi a
>nebo zahodi. Integrita a zamky - to je prece uplne o necem jinem!

Zamky su prostriedkom, ktory transakcie pouzivaju na zabezpecenie
integrity. Velmi uzko to suvisi. Nemyslite, ze keby zamky neboli
potrebne, tak by ich do databaz neimplementovali? Mozno ale
vyvojari nemaju co robit, tam tam davaju zbytocnosti ;-).

>>Pokial je to mozne, tak by som napriklad uprednostnil deklarativnu
>integritu
>>(nie triggre), najlepsie ak by ju bolo mozne zachytit v relacnom diagrame
>>(co robia triggre tam asi velmi tazko znazornite).
>-----
>Vzdyt prave trigry slouzi rovnez pro udrzeni integrity. Jak to chces jinak
>hlidat?

Samozrejme, nenapisal som, ze triggery sa nemaju pouzivat, ale
uprednostnujem deklarativnu integritu (pokial to ide), pretoze je ovela
prehladnejsia a jednoduchsia ako programovat triggery.

Erik Salaj


Popis jazyka SQL

[*] Vodnansky David <Vodnansky(zv)allianz(tec)cz> - 9.3.1999 16:53:27

Pro nejakou konkretni databazi nebo uplne obecne (a tedy IMHO k
nicemu:-) ?
Muzu dodat popis SQL pro Oracle,Interbase. Obecne neco vyslo na Zive
(zive.cpress(tec)cz) a treba v Chipu.

> -----P�vodn� zpr�va-----
> Od: David Kriz [mailto:david.kriz(zv)ccv(tec)cz]
> Odesl�no: 9. b�ezna 1999 16:21
> Komu: Diskuse o Delphi
> P�edm�t: Popis jazyka SQL
>
>
> Nevite nekdo o nejakem popisu jazyka SQL, ktery je pokud mozno v
> elektronicke podobe a zadarmo?
>

Internal errors

[*] David Svoboda <dsvoboda(zv)iol(tec)cz> - 09.3.1999 16:54:53

Prosim o pomoc pri reseni nasledujiciho problemu:

Projekt v D4 update#3 se sklada z nekolika PCG, dve design-runtime,
2-runtime.
Pri debugovani zdroj. kodu mimo package se krokovani spravne zastavi na
breakpointu, ale jiz nejde krokovat dale, nejde vypsat obsah
prommennych. Lze pouze resetovat CTRL+F2. Pri nasledne kompilaci
jakekoli se objevi jedna z nasledujicich internich chyb:
Internal error: U911
Internal error: URW527
Internal error: SY434

Jakakoli rada velmi vitana, jedinnym vychodiskem je restart D4, obcas je
nutno restartovat WIN NT SP4.

David Svoboda


Tvorba napovedy

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 9.3.1999 17:40:42

Dobry den, Slovacko, regional wrote:

> Potrebujete co nejstarsi verzi M$ Wordu. Oni neustale meni format RTF, jak
> se jim hodi. Tim nechci rici, ze neexistuje nic lepsiho :) M. Kucera
>
Mno, ke vsem temto dotazum - nebylo by rozumnejsi stahnout si
od M$ novejsi verzi programu Hcrtf.exe? :-)


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


mySQL ODBC a Delphi 4

[*] eL <delphi(zv)sales(tec)cz> - 9.3.1999 19:02:40

>Ale ano, muzes upgradovat na Professional. Ale mas jeste nekolik
>dalsich moznosti. Nekde si stahni nejake free komponenty pro primy
>pristup na ODBC, pokud existuji. Urcite existuji placene, jako
>napr. ODBC Express nebo ODBC98. Tim pak muzes na cele BDE zapomenout
>a jeste navic mas malou aplikaci bez DLL apod. A to ti bude chodit
>i v Delphi Srandard.
>
>
>S pozdravem
> Petr Zahradnik, pocitacovy expert



Konecne trochu optimismu. Diky za tip.

eL..

Transakcia na IB

[*] Peter Hudec <pietro(zv)proces.sk> - 09.3.1999 18:43:51

Caute vsetci.

Neviete, ako zapisat v Interbase do storovanej procedury taketo nieco
(zapis z ORACLE) ?

SAVEPOINT ZAPIS;
--
UPDATE ......... -- hromadny
--
COMMIT;
RETURN 0;
EXCEPTION
WHEN OTHERS THEN
err := SQLCODE;
ROLLBACK TO ZAPIS;
RETURN err;
END;

Podla manualu som to nezvladol.

Dakujem.
Peter.

Tvorba napovedy

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 9.3.1999 21:14:39

Na Torry je jeden program pro tvorbu napovedy, ktery je zdarma a pro
tvorbu napovedy bohate staci, jmenuje se Oasis SE, mne osobne se libi.

s pozdravem,
Ondrej Krajicek

---------------------------------------------------------------
Microsoft Windows: Testing on humans.
---------------------------------------------------------------

-----P�vodn� zpr�va-----
Od: Shima Fares, Bc. <shima(zv)czechtrade.tpo(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 12:53
P�edm�t: Tvorba napovedy


>Potrebuju vytvorit napovedu.
>
>Pouzivam Microsoft Help Project, ktery napovedu vytvori na zaklade
rtf
>souboru. Problem je v tom, ze i kdyz vezmu vzorovy rtf soubor
dodavany
>spolu s timto SW otevru ho ve Wordu 97 a ulozim (beze zmen) ma
najednou
>asi o 15 procent vic a kdyz se to pak snazim zkompilovat, hlasi mi to
ze
>soubor je corupted.
>
>Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
>specializovane programy na tvorbu napovedy, protoze ty tam vzdy
pripoji
>hlasku o tom, ze je to neregistrovane a podobne.
>
>Dik
>F. Shima
>
>

Tvorba napovedy

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 9.3.1999 21:16:50

Wordpad ovsem nezvlada vsechny veci potrebne v helpu - odkazy (alinx,
klinx), protoze nepodporuje plny set prikazu RTF.

s pozdravem,
Ondrej Krajicek

---------------------------------------------------------------
Microsoft Windows: Testing on humans.
---------------------------------------------------------------

-----P�vodn� zpr�va-----
Od: Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 9. b�ezna 1999 13:51
P�edm�t: RE: Tvorba napovedy


>> Nevite nekdo v jakem editoru lze rtf vytvorit ? Ne ale nejake
>> specializovane programy na tvorbu napovedy, protoze ty tam
>> vzdy pripoji
>> hlasku o tom, ze je to neregistrovane a podobne.
>
>RTF umi i WordPad z Windows.
>Nevim, ale, jestli neni vysledek taky obohacen.
>
>Jura
>----------
>Jiri Polak
>e-mail:jura.polak(zv)email(tec)cz
> jiri.polak(zv)tconsult(tec)cz
>web :http://freeweb.coco(tec)cz/jpolak
>----------
>The only good bug, is a dead bug!

© Delphi.cz, program netcode.cz, 2008-9.