Archív konference Delphi

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

zavreni okna jine aplikace

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 02.1.2009 10:07:37

> To DestroyWindow se sice zavola, ale nefunguje. CloseWindow presne podle
> napovedy okno pouze minimalizuje.
> Zkousel jsem to dat jak do OnDestroy, tak i do OnCloseQuery hlavni
> aplikace.
> Nevite jak na to?
>
> Milan Dvorak

Nenapsal jsi totiz v jakem OS se o to pokousis. Takze i kdyby to drive slo, tak napriklad
ve Vistach si vylames zuby (isolace aplikaci mezi sebou, isolace sluzeb od user resources,
neplatna session atd.). Ted si vlastne ani nejsem jist s temi zpravami ve Vistach (taky to nemusi jet)
musel bych to zkusit a na to nemam cas... :)

zavreni okna jine aplikace

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 02.1.2009 10:01:36

> To DestroyWindow se sice zavola, ale nefunguje. CloseWindow presne podle
> napovedy okno pouze minimalizuje.
> Zkousel jsem to dat jak do OnDestroy, tak i do OnCloseQuery hlavni
> aplikace.
> Nevite jak na to?
>
> Milan Dvorak

Proste na nej posli pomoci zprav zpravu pro zavreni okna (simulace kliknuti na krizek).
Jeho Handle prece mas... Volat z cizi aplikace DestroyWindow na okno druhe je blbost.
Podle mne k tomu DestroyWindow neslouzi. Mezi aplikacemi vyuzivej jen zpravy.

Milan Kajnar


zavreni okna jine aplikace

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 02.1.2009 09:43:35

Z jednoho programu oteviram jiny. Pri ukoncovani "hlavniho" bych potreboval ukoncit i ten "podrizeny".
Zkousim to takto:

var
wHandle: HWND;
begin
wHandle := FindWindow (nil, 'Titulek druhe aplikace');
if wHandle <> 0 then DestroyWindow (wHandle);
end;

To DestroyWindow se sice zavola, ale nefunguje. CloseWindow presne podle napovedy okno pouze minimalizuje.
Zkousel jsem to dat jak do OnDestroy, tak i do OnCloseQuery hlavni aplikace.
Nevite jak na to?

Milan Dvorak



Torrent client

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 02.1.2009 12:45:46

Zdravim,

nemate nekdo tip na pouzitelnou torrent knihovnu pro Delphi a pripadne i
nejake dobre how-to jak pouzit torrent technologii pro potreby sireni
vlastnich dat tj. vcetne vlastniho tracker serveru (ten spis v .net nez v
Delphi) ?


Diky
Radek

zavreni okna jine aplikace

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 02.1.2009 10:13:37

navic pokud se ti ma okno zavrit, pak v jeho CloseWindow musis specifikovat do CloseAction ze chces caFree... (v obsluze ciloveho okna)...

Sinea - otoceni textu.

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 06.1.2009 08:33:52

Nedari se mi otocit text v sestave o 90 (nebo 270) stupnu. Ve vyvojovem
prostredi to funguje (nastavim sklon textu 90 a polozka se zobrazuje
"svisle", kolmo k ostatnim) ale pri vlastnim tisku nebo v nahledu se text
svisle smrskne na vysku vodorovneho radku. Jak na to? Dik.

Kalhous


DB a znaky Unicode

[*] Jan Dubsky - Strojirna Palava <dubsky(zv)s-palava(tec)cz> - 06.1.2009 08:57:54

Zdravim

Potrebuji v databazi (Paradox, pristup pres BDE) zobrazit foneticke znaky anglicke vyslovnosti. Takovyto znak se ale ve standardnich komponentach (DBGrid, DBText ...) zobrazi jako otaznik. Co je potreba nastavit v komponentach, nebo jake jine komponenty pouzit, aby se tyto znaky zobrazovaly korektne. Nebo je omezeni uz primo v Paradoxu?

Diky za nakopnuti spravnym smerem

Honza

DB a znaky Unicode

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 06.1.2009 09:05:54

Problemem bude urcite BDE, ktere pres sebe Unicode znaky neprotlaci.
Bojoval jsem s tim marne pri propojeni s MS SQL, ktere bez problemu
Unicode umi.


Jan Dubsky - Strojirna Palava napsal(a):
> Zdravim
>
> Potrebuji v databazi (Paradox, pristup pres BDE) zobrazit foneticke znaky anglicke vyslovnosti. Takovyto znak se ale ve standardnich komponentach (DBGrid, DBText ...) zobrazi jako otaznik. Co je potreba nastavit v komponentach, nebo jake jine komponenty pouzit, aby se tyto znaky zobrazovaly korektne. Nebo je omezeni uz primo v Paradoxu?
>
> Diky za nakopnuti spravnym smerem
>
> Honza

zavreni okna jine aplikace

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 06.1.2009 10:34:00

Ja jsem resil neco podobneho. Mozna bys to mohl taky pouzit. Mam aplikaci (klient), ktera v urcitem okamziku spusti jinou aplikaci (server), ktery neco provadi podle instrukci klienta. Ty instrukce se na server posilaji pomoci socketu no a jedna z instrukci zni "ukoncit server" a ten na sve strane normalne ukonci svuj beh.
Tedy rada zni zkusit nahradit meziaplikacni zpravy (pokud to nefunguje) vymenou socketu. V Delphi IDE je pro to podpora na karte Internet

Milos Pojsl

Sinea - otoceni textu.

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 06.1.2009 10:50:01

From: "Zdenek Kalhous" <kalhous(zv)eu(tec)cz>> Nedari se mi otocit text v sestave o 90 (nebo 270) stupnu. Ve vyvojovem
> prostredi to funguje (nastavim sklon textu 90 a polozka se zobrazuje
> "svisle", kolmo k ostatnim) ale pri vlastnim tisku nebo v nahledu se text
> svisle smrskne na vysku vodorovneho radku. Jak na to? Dik.


Myslim, ze to byl prechodny problem verzi X.51. nekdy v roce 2005.
Ve verzi X.52.2 z poloviny roku 2006 a v novejsich jiz tento problem neni.

Vaclav Krmela

DB a znaky Unicode

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 06.1.2009 10:58:02

Dobry den,

LS> Problemem bude urcite BDE, ktere pres sebe Unicode znaky neprotlaci.
LS> Bojoval jsem s tim marne pri propojeni s MS SQL, ktere bez problemu
LS> Unicode umi.

No pokud nepouzivas Delphi2009 tak je taky problem v komponentach. VCL
komponenty nepodporuji unicode. Pro delphi < 2009 existuji free
komponenty pro podporu unicode, zkus pohledat na webu


--
S pozdravem,
Mgr. Martin Radvansky

DB a znaky Unicode

[*] Jan Dubsky - Strojirna Palava <dubsky(zv)s-palava(tec)cz> - 06.1.2009 11:08:03


>> No pokud nepouzivas Delphi2009 tak je taky problem v komponentach. VCL
>> komponenty nepodporuji unicode. Pro delphi < 2009 existuji free
>> komponenty pro podporu unicode, zkus pohledat na webu

Ano mam Delphi 6. Nemate nekdo nejaky konkretni link nebo aspon jak odlisit ty, ktere unicode podporuji a ktere ne. Nejsem zrovna borec v anglictine a pokud je to nekde zahrabane v nejakych pododkazech nebo slozite popisovane, tak to budu asi tezko hledat.

DB a znaky Unicode

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 06.1.2009 12:30:08

Dobry den,

JDSP> Ano mam Delphi 6. Nemate nekdo nejaky konkretni link nebo aspon
JDSP> jak odlisit ty, ktere unicode podporuji a ktere ne. Nejsem
JDSP> zrovna borec v anglictine a pokud je to nekde zahrabane v
JDSP> nejakych pododkazech nebo slozite popisovane, tak to budu asi tezko hledat.

http://www.tmssoftware.com/site/tmsuni.asp#buy
koukam ze cena 30 Euro neni tak zla


-
S pozdravem,
Mgr. Martin Radvansky

DB a znaky Unicode

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 06.1.2009 12:28:07

Dobry den,
6. ledna 2009, 11:08:03, napsal jste:>>> No pokud nepouzivas Delphi2009 tak je taky problem v komponentach. VCL
>>> komponenty nepodporuji unicode. Pro delphi < 2009 existuji free
>>> komponenty pro podporu unicode, zkus pohledat na webu

JDSP> Ano mam Delphi 6. Nemate nekdo nejaky konkretni link nebo aspon
JDSP> jak odlisit ty, ktere unicode podporuji a ktere ne. Nejsem
JDSP> zrovna borec v anglictine a pokud je to nekde zahrabane v
JDSP> nejakych pododkazech nebo slozite popisovane, tak to budu asi tezko hledat.

http://www.axolot.com/TNT/
posledni free verze pak to prevzali TMS software a ty uz jsou placene



--
S pozdravem,
Mgr. Martin Radvansky

Sinea - otoceni textu.

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 06.1.2009 13:02:10

Ale co si mam pocit kdyz mam D7 a posledni verze Sinea ke stazeni pro D7 je
prave 7.51.4 ze 17.5.2005 ?

Kalhous

From: "Vaclav Krmela" <krmela(zv)ustinadorlici(tec)cz>
> From: "Zdenek Kalhous" <kalhous(zv)eu(tec)cz>
> > Nedari se mi otocit text v sestave o 90 (nebo 270) stupnu.
>
> Myslim, ze to byl prechodny problem verzi X.51. nekdy v roce 2005.
> Ve verzi X.52.2 z poloviny roku 2006 a v novejsich jiz tento problem neni.
> Vaclav Krmela


DB a znaky Unicode

[*] Jan Dubsky - Strojirna Palava <dubsky(zv)s-palava(tec)cz> - 06.1.2009 13:08:10


>> http://www.axolot.com/TNT/
>> posledni free verze pak to prevzali TMS software a ty uz jsou placene

Stahnuto a nainstalovano - zkusim se s tim porvat - diky

zavreni okna jine aplikace

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 06.1.2009 13:34:12

>provadi podle instrukci klienta. Ty instrukce se na server posilaji pomoci
>socketu no a jedna z instrukci zni "ukoncit server" a ten na sve strane
>normalne ukonci svuj beh.

Pokud je mozne upravit i tu zaviranou aplikaci tak vyrazne jednoddusi reseni
je pomoci RegisterWindowMessage si zaregistrovat svoji zpravu a na jeji
prijem reagovat zavrenim aplikace.

Je to jednodussi nez sockety kvuli jednomu zavreni.

Jeste nevim zda se tu uz resilo ale PostQuitMessage API funkci jsi zkousel ?


Cau
Radek

Sinea - otoceni textu.

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 06.1.2009 17:44:28

From: "Zdenek Kalhous" <kalhous(zv)eu(tec)cz>

> Ale co si mam pocit kdyz mam D7 a posledni verze Sinea ke stazeni pro D7
> je
> prave 7.51.4 ze 17.5.2005 ?

Posledni verze generace X.50 (Sinea 2004) je verze X.52.14 ze dne 14.4.2008.
Tato verze je pouzitelna pro Delphi 4 az Delphi 11(2007).
Update na tuto verzi je bezplatny pro drzitele libovolne verze X.50, koupene
mezi roky 2004 az 2008. Kontaktujte firmu Sinea.

Pro Delphi 12(2009) by byl nutny placeny upgrade na verzi X.60 (Sinea 2009).

Vaclav Krmela

Webove sluzby s WSE

[*] Petr Capek <delphi(zv)haida(tec)cz> - 07.1.2009 15:09:46

Zdravim,

potrebuji z aplikace psane v D7 vyuzit webovou sluzbu zabezpecenou pomoci
WSE 2.0, ale nepodarilo se mi nikde najit, jak na to.

Diky za pomoc,

Petr

FastReport problem s instalaci

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 08.1.2009 09:00:50

Zdravim vsechny,
mam nasledujici problem s FastReport4.
Ze stranky http://www.clexpert(tec)cz/software/fastreport-vcl/download.asp jsem si stahnul demo verzi FastReportu pro Delphi 6.
Instalace probehla bez problemu, ale pri vlozeni hlavni komponenty na
formular se vyrojila dlouha rada chybovych hlasek o chybnem pristupu k
pameti v ramci delphi32 a nakonec Delphi uplne spadly. Nevite prosim, cim by
to mohlo byt? Pouzivam Delphi6... Jeste jsem si pokousel stahnout aktualni
verzi ze serveru www.fast-report.com ovsem ten mi nesel spustit vubec:
"Chyba pri vykonavani programu". Zkouset hledat jine stranky jsem take
zkousel, ale tam je obvykle nejnovejsi verze pro nejnovejsi Delphi...
Muzete mi prosim nejak poradit co s tim?

dekuji, s pozdravem M. Pojsl

Spusteni procedury pri vytvoreni souboru v adresar

[*] L?ula MiloL? <milos.sula(zv)musumperk(tec)cz> - 09.1.2009 21:57:08

Zdrav+AO0-m,
m+AOE-m napsanou proceduru, kter+AOE- nahraje soubor na ftp server. Cht+ARs-l bych tuhle proceduru pustit ihned pot+AOk- co do p+AVk-edem stanoven+AOk-ho adres+AOEBWQ-e n+ARs-jak+AOE- aplikace vytvo+AVkA7Q- soubor. Existuje na to n+ARs-jak+AOE- komponenta, p+AVkA7Q-padn+ARs- WINAPI ?


Milo+AWE- +AWA-ula


Spusteni procedury pri vytvoreni souboru v adresar

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 09.1.2009 22:07:09

Po prelusteni jsem pochopil, ze chces spoustet proceduru, po vytvoreni
nejakeho souboru v predem urcenem adresari.
Napadlo me reseni sledovat v pravidelnych intervalech (1, 2 vteriny) ten
adresar a pokud se tam objevi novy soubor, tak spustit tu proceduru. Nove
soubory poznas, podle data vytvoreni.
Nevim o necem, co by mohlo sledovat stav adresare.
Petr
2009/1/9 L?ula MiloL? <milos.sula(zv)musumperk(tec)cz>

> Zdrav+AO0-m,
> m+AOE-m napsanou proceduru, kter+AOE- nahraje soubor na ftp server.
> Cht+ARs-l bych tuhle proceduru pustit ihned pot+AOk- co do p+AVk-edem
> stanoven+AOk-ho adres+AOEBWQ-e n+ARs-jak+AOE- aplikace vytvo+AVkA7Q- soubor.
> Existuje na to n+ARs-jak+AOE- komponenta, p+AVkA7Q-padn+ARs- WINAPI ?

Spusteni procedury pri vytvoreni souboru v adresar

[*] Ludan <konference(zv)sales(tec)cz> - 09.1.2009 22:43:11


----- Original Message -----
From: "L?ula MiloL?" <milos.sula(zv)musumperk(tec)cz>

Ahoj,
Mrkni na TJvChangeNotify z JVCL

Ludek

Spusteni procedury pri vytvoreni souboru v adresar

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 09.1.2009 22:27:10

Dne Fri, 09 Jan 2009 22:07:09 +0100 Petr Berek <sojokl(zv)seznam(tec)cz>
napsal/-a:> Nevim o necem, co by mohlo sledovat stav adresare.


Na zalozce Samples byvala komponenta
TShellChangeNotifier() - ta zapouzdruje
API funkce FindFirstChangeNotification(),
FindNextChangeNotification etc...,
ktere sice nereknou, ktery soubor se zmenil,
ale pro tvuj ucel by to melo stacit.

Jinak existuje dokonalejsi API funkce
ReadDirectoryChange()


HTH, pf

Barvy u disablovanych komponent

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 12.1.2009 14:49:39

> Pokud nastavim u komponenty za behu Enabled=false a nasledne
> Color, res.
> Font.Color na mnou pozadovanou hodnotu, tak se stejne
> komponenta vykresli v
> puvodnich sedych barvach. Tento problem mam zatim u
> TCheckBox, TRadioGroup,
> TComboBox a predpokladam ho take u TMemo a TCheckListBox.
>
> Dotaz je jasny. Jak elegantne vyresit, aby barva alespon u
> fontu byla treba
> modra?
>
> Diky za radu.
>
> S pozdravem
>
> Rudolf Krizek
> TRIFID Software

Pokud to jde, muzete polozit komponentu na panel a disablovat panel. Barvy
zustanou zachovane.

JiriF


Barvy u disablovanych komponent

[*] Rudolf Krizek <krizek(zv)trifid-sw(tec)cz> - 12.1.2009 14:43:38

Zdravim konferenci!

Pokud nastavim u komponenty za behu Enabled=false a nasledne Color, res.
Font.Color na mnou pozadovanou hodnotu, tak se stejne komponenta vykresli v
puvodnich sedych barvach. Tento problem mam zatim u TCheckBox, TRadioGroup,
TComboBox a predpokladam ho take u TMemo a TCheckListBox.

Dotaz je jasny. Jak elegantne vyresit, aby barva alespon u fontu byla treba
modra?

Diky za radu.

S pozdravem

Rudolf Krizek
TRIFID Software

WinXP Home SP2, RAD Studio 2007 December 2007 Update

Webove sluzby s WSE

[*] Petr Vones <conference(zv)petrvones(tec)net> - 11.1.2009 16:32:18

Velice pochybuji ze by nekdo implementoval WS-* standardy pro Delphi 7 SOAP,
ktery stejne podporuje jen ty uplne nejzakladnejsi veci. Mozna nejake to
RemObjects SDK ... ? Pokud je to jen trochu mozne, bude daleko snazsi to
napsat jako .NET assembly a tu pripadne pouzit jako COM objekt z Delphi
Win32 aplikace.

Petr Vones

----- Original Message -----
From: "Petr Capek" <delphi(zv)haida(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, January 07, 2009 3:09 PM
Subject: Webove sluzby s WSE


> Zdravim,
>
> potrebuji z aplikace psane v D7 vyuzit webovou sluzbu zabezpecenou pomoci
> WSE 2.0, ale nepodarilo se mi nikde najit, jak na to.
>
> Diky za pomoc,
>
> Petr

Sluzby v Delphi 2007 .NET

[*] Petr Vones <conference(zv)petrvones(tec)net> - 11.1.2009 16:28:18

Nainstalovat Visual C# 2008 Express, tam si vytvorit novy projekt typu
Windows Service a z neho to obkoukat. Ono bude asi jednodussi u toho C# pak
rovnou zustat :-) Problemu spise ubyde.

Petr Vones

----- Original Message -----
From: "L?ula MiloL?" <milos.sula(zv)musumperk(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Saturday, January 10, 2009 11:09 PM
Subject: Sluzby v Delphi 2007 .NET


> Zdravim,
> muzete mi nekdo poradit jak napsat sluzbu v Delphi 2007 .NET . Bohuzel v
> teto verzi neni template pro tuhle sluzbu a nikde nemohu najit nejaky
> priklad.
>
> Milos

Sluzby v Delphi 2007 .NET

[*] L?ula MiloL? <milos.sula(zv)musumperk(tec)cz> - 10.1.2009 23:09:14

Zdravim,
muzete mi nekdo poradit jak napsat sluzbu v Delphi 2007 .NET . Bohuzel v teto verzi neni template pro tuhle sluzbu a nikde nemohu najit nejaky priklad.


Milos


PageControl a WordWrap

[*] Jozef Jusko <jusko(zv)colnicapo.sk> - 14.1.2009 08:02:09

Zdravim,

da sa v TPageControl dosiahnut Wordwrap nazvov zaloziek ?

D7 Ent

PageControl a WordWrap

[*] horky(zv)cominn(tec)cz - 14.1.2009 09:18:13

> From: Jozef Jusko [mailto:jusko(zv)colnicapo.sk]
> Sent: Wednesday, January 14, 2009 8:02 AM

> da sa v TPageControl dosiahnut Wordwrap nazvov zaloziek ?

Asi jenom pracne pomoci OwnerDraw, dole uvadim priklad,
kde si menim barvy aktivni zalozky a text centruji vodorovne a svisle.
Ty si budes muset navic rozdelit jednotliva slova, urcit pocet radku,
jejich pozici a podle toho nekolikrat vypsat jednotlive radky
pomoci TextRect:

procedure Tokno.pgDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
text:string;
Point:Tpoint;
begin
if TabIndex>=0 then begin
if (Tpagecontrol(control).pages[TabIndex].TabVisible) then begin
Text:=Tpagecontrol(control).pages[TabIndex].Caption;
with control.canvas do begin
FrameRect(rect);
if Active then
Brush.Color:=BarvaPozadiOken
else
Brush.Color:=clBtnFace;
point.X:=(Rect.Right-rect.Left) div 2 - TextWidth(text) div 2;
point.y:=(Rect.Bottom-rect.top) div 2 - Textheight(text) div 2;
TextRect(rect,rect.left+point.x,rect.top+point.y,text);
end; { with }
end; { if }
end;
end;

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

Vista aero, nahledy oken a minimalizace

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 14.1.2009 10:00:16

Ahoj,

v prostredi Vista Aero funguje to, ze pri najeti na program/okno na
taskbaru se zobrazi zmenseny nahled toho okna, neco podobneho funguje i
pri Alt+Tab, Win+Tab.

Zjistil jsem, ze kdyz aplikaci napsanou v D5 minimalizuji, nahled se
nezobrazuje, jen ikona. Aplikace jako Word, Firefox apod. zobrazuji
nahled i v minimalizovanem stavu. Nevi te nekdo, cim to, co s tim?

Diky predem.

David Lebeda

Vista aero, nahledy oken a minimalizace

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 14.1.2009 10:54:20

From: "Lebeda David" <david.lebeda(zv)comarr(tec)cz>

> v prostredi Vista Aero funguje to, ze pri najeti na program/okno na
> taskbaru se zobrazi zmenseny nahled toho okna, neco podobneho funguje i
> pri Alt+Tab, Win+Tab.
>
> Zjistil jsem, ze kdyz aplikaci napsanou v D5 minimalizuji, nahled se
> nezobrazuje, jen ikona. Aplikace jako Word, Firefox apod. zobrazuji
> nahled i v minimalizovanem stavu. Nevi te nekdo, cim to, co s tim?


V Delphi 6 funguje toto:
http://groups.google.com/group/borland.public.delphi.winapi/msg/85242b2f0e4b8a12?as_umsgid=VA.00007535.009119f0(zv)antispam.compuserve.com


Vaclav Krmela

Zmena ownera databaze na FB 2.5

[*] Jan Stefec <stefec(zv)algo-hk(tec)cz> - 14.1.2009 10:46:19

Pekny den preji vsem,
potreboval bych z programu v Delphi zmenit ownera databaze ze SYSDBA na
mnou vytvoreneho jineho usera.
Poradi nekdo, jak na to?
Budu rad za kazde nasmerovani.

Diky Honza

Zmena ownera databaze na FB 2.5

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 14.1.2009 12:18:25

2009/1/14 Jan Stefec <stefec(zv)algo-hk(tec)cz>:
> Budu rad za kazde nasmerovani

http://blog.upscene.com/thomas/index.php?entry=entry080730-233217

--
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

Vista aero, nahledy oken a minimalizace

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 14.1.2009 13:20:29

Vaclav Krmela napsal(a):
> From: "Lebeda David" <david.lebeda(zv)comarr(tec)cz>
>
>
>> v prostredi Vista Aero funguje to, ze pri najeti na program/okno na
>> taskbaru se zobrazi zmenseny nahled toho okna, neco podobneho funguje i
>> pri Alt+Tab, Win+Tab.
>>
>> Zjistil jsem, ze kdyz aplikaci napsanou v D5 minimalizuji, nahled se
>> nezobrazuje, jen ikona. Aplikace jako Word, Firefox apod. zobrazuji
>> nahled i v minimalizovanem stavu. Nevi te nekdo, cim to, co s tim?
>>
>
> V Delphi 6 funguje toto:
> http://groups.google.com/group/borland.public.delphi.winapi/msg/85242b2f0e4b8a12?as_umsgid=VA.00007535.009119f0(zv)antispam.compuserve.com
>
>
>
V aplikaci jsou okna nemodalni, ktera minimalizuji jen sebe sama (a maji
svuj zaznam na taskbaru), a modalni okna, ktera minimalizuji celou
aplikaci (Application.Minimize). Pokud je aplikace neminimalizovana, je
vse v poradku. Pokud si minimalizuji jen samostatne okno (nemodalni), je
to taky v poradku - nahled je i pro minimalizovane okno. Pouze pri
zminimalizovani cele aplikace do jedine ikony na taskbaru neni nahled k
dispozici. A to ani v pripade, ze jedine okno aplikace je hlavni form.
Minimalizovani cele aplikace ale potrebuji.

David Lebeda

Vista aero, nahledy oken a minimalizace

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 14.1.2009 15:22:37

Ahoj,

mrkni sem
http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Inde
x.html

Je to stejny kod co je v tom predchozim prispevku ale prijde me vic
vysvetleny a jsou tam i jine veci pro Visty


Radek

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Lebeda David
Sent: Wednesday, January 14, 2009 10:00 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Vista aero, nahledy oken a minimalizace

Ahoj,

v prostredi Vista Aero funguje to, ze pri najeti na program/okno na
taskbaru se zobrazi zmenseny nahled toho okna, neco podobneho funguje i
pri Alt+Tab, Win+Tab.

Zjistil jsem, ze kdyz aplikaci napsanou v D5 minimalizuji, nahled se
nezobrazuje, jen ikona. Aplikace jako Word, Firefox apod. zobrazuji
nahled i v minimalizovanem stavu. Nevi te nekdo, cim to, co s tim?

Diky predem.

David Lebeda


PageControl a WordWrap

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 14.1.2009 18:42:49

>> da sa v TPageControl dosiahnut Wordwrap nazvov zaloziek ?

> Asi jenom pracne pomoci OwnerDraw, dole uvadim priklad,

A funguje to aj v 64-bit windows? Protoze mne (Delphi6) OwnerDraw nefunguje,
taby zustavaji prazdne.

Zabiti vlakna

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 15.1.2009 17:42:15

Ahoj,>Chtel bych vas poprosit o vysvetleni principu SetEvent(KillEvent) a
WaitForSingleObject... Stava se mi totiz - ze kdyz jsem si
>toto reseni chtel otestovat, ze mi to vlakno nikdy "nezabije", ale ze se
pocka az se zrovna probihajici cinnost dokonci a
>potom se teprve provede ono zruseni vlakna...
>To muze byt potom problem, protoze jestli to zatuhne nekde pri provadeni
nektere z tech 3 cinnosti (vzdy muze byt provadena
>pouze jedna), tak to reseni pro "zabiti" vlakna ztraci smysl - protoze k
nemu nedojde - WaitForSingleObject mi vrati (to jen
>hadam - kdyz tak me opravte) TimeOut a hoto - nic se nestane, vlakno bude
stale tuhe...

WaitForSingleObject zastavi provadeni kodu a ceka na signalizaci eventu (to
provadis SetEventem). Takze ano, pokud je tvuj kod zrovna nekde jinde nez ze
by cekal v tedle funkci tak samozrejme dojde k ukonceni az v okamziku kdy
dojde ke kontrole.

Reseni je vic :

- opravit si chybu ktera zpusobuje zatuhnuti, doporucuju napr.
OutputDebugString logovani a koukat co posledni se zaloguje pred zatuhem
resp. zda se ti nekde neloguje nejaka cast opakovane a tudiz tam nemas
nejaky nekonecny cyklus. Dalsi moznost je stopnout si exac v zatuhnutem
stavu a zkusit trasovani na nejblizsi sourceline s kontrolou call stacku

- pokud to opravit nepujde tak zjistit proc to tuhne a predejit tomu napr.
tim ze to vlakno restartnes jeste pred tim nez se dostanes do zatuhu. Todle
sice mozna pomuze ale pokud ti to tuhne kvuli nejakemu humusu tak ti tam
muze zustavat a aplikace bude zrat pamet/resources a pak muze padnout na
tlamu cela

- v pripade ze opravdu nebude jine moznosti a chces vcasnejsi reakci na Kill
event tak by jsi musel jeho kontrolu zaradit na vic mist kodu (napr. do
smycek) tak aby se k te kontrole doslo driv nez ted. Pokud pouzijes WaitFor
s timeoutem 0 tak to overuje hned ale pozor na to ze WaitFor funkce
zpusobuji rescheduling threadu takze se muze stat ze se ti v pripade soubehu
s jinou aplikaci zpomali aplikace. Muzes si udelat jednoduchej testik -
cekani v nekonecne smycce s kontrolou Boolean promenne. Pokud tam nedas
waitfor.... tak bude zrat 100% procesoru, das tam waitfor 10ms a zatez
vyrazne spadne

- a v pripade ze opravdu chces natvrdo sejmout thread tak musis pouzit
funkci TerminateThread (nezamenovat s TThread.Terminated coz je kontrola
Boolean promenne) ale to je opravdu posledni a rozhodne nedoporucovane
reseni


Cau
Radek

Zabiti vlakna

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 15.1.2009 17:26:14

On Thursday, January 15, 2009 5:10 PM ,
Ing. Jiri SOKOL <js-delphi(zv)seznam(tec)cz> wrote:

> Ahoj vsem!
> Mam problem - mozna si jen potrebuji urovnat myslenky. Byl jsem
> neucen vratit se k jednomu starsimu projektu a priznam se trochu
> tapu.
> Mam malou aplikaci, ktera musi vykonavat celkem 3 typy cinnosti.
> Cinnosti jsem chtel oddelit do hlavniho okna aplikace a proto jsem
> si
> vytvoril separatni vlakno.
> Toto vlakno ma definovany 4 eventy - pro kill a potom pro vsechny 3
> typy cinnosti.
>
> Vsechno bezi - tak co resim - zacalo se stavat - opravdu nahodne a
> nevyzpytatelne, ze se chod toho vlakna zastavi. Myslim, ze ho mam
> docela osetrene na logicke chyby, chyby kodu, ale je mozne ze nekde
> delam nejakou prasarnu s obsluhou pameti a tak se proste stane, ze
> prestane pracovat.
>
> Inu protoze neni cas a protoze ani nevim jak, rozhodl jsem se udelat
> mechanismus, ktery si pohlida, jak dlouho je dana cinnost provadena.
> No a jakmile to prekroci stanovenou mez, chci provest "zabiti"
> tohoto
> vlakna, uvolneni vsech prostredku a jeho znovu vytvoreni... To vse
> mam...
>
> Chtel bych vas poprosit o vysvetleni principu SetEvent(KillEvent) a
> WaitForSingleObject... Stava se mi totiz - ze kdyz jsem si toto
> reseni chtel otestovat, ze mi to vlakno nikdy "nezabije", ale ze se
> pocka az se zrovna probihajici cinnost dokonci a potom se teprve
> provede ono zruseni vlakna...
>
> To muze byt potom problem, protoze jestli to zatuhne nekde pri
> provadeni nektere z tech 3 cinnosti (vzdy muze byt provadena pouze
> jedna), tak to reseni pro "zabiti" vlakna ztraci smysl - protoze k
> nemu nedojde - WaitForSingleObject mi vrati (to jen hadam - kdyz tak
> me opravte) TimeOut a hoto - nic se nestane, vlakno bude stale
> tuhe...
>
> Takze - chtel udelat jako "druhe kolo" - v pripade, ze dostanu
> TimeOut na KillEvent, chtel bych to vlakno zabit opravdu natvrdo -
> ale to uz nejak netusim jak...
>

pokud vlakno nedojde ke kusu kodu ktery ten event/semefor kontroluje
tak samozrejme nevi, ze ma skoncit.

pridej do vlakna debug vystupy do nejakeho souboru (nezapomenout
flushovat) abys v pripade zatuhnuti byl schopny rict kde to zustalo
viset...

D. Toman

Zabiti vlakna

[*] Ing. Jiri SOKOL <js-delphi(zv)seznam(tec)cz> - 15.1.2009 17:10:13

Ahoj vsem!
Mam problem - mozna si jen potrebuji urovnat myslenky. Byl jsem neucen vratit se k jednomu starsimu projektu a priznam se trochu tapu.
Mam malou aplikaci, ktera musi vykonavat celkem 3 typy cinnosti. Cinnosti jsem chtel oddelit do hlavniho okna aplikace a proto jsem si vytvoril separatni vlakno.
Toto vlakno ma definovany 4 eventy - pro kill a potom pro vsechny 3 typy cinnosti.

Vsechno bezi - tak co resim - zacalo se stavat - opravdu nahodne a nevyzpytatelne, ze se chod toho vlakna zastavi. Myslim, ze ho mam docela osetrene na logicke chyby, chyby kodu, ale je mozne ze nekde delam nejakou prasarnu s obsluhou pameti a tak se proste stane, ze prestane pracovat.

Inu protoze neni cas a protoze ani nevim jak, rozhodl jsem se udelat mechanismus, ktery si pohlida, jak dlouho je dana cinnost provadena. No a jakmile to prekroci stanovenou mez, chci provest "zabiti" tohoto vlakna, uvolneni vsech prostredku a jeho znovu vytvoreni... To vse mam...

Chtel bych vas poprosit o vysvetleni principu SetEvent(KillEvent) a WaitForSingleObject... Stava se mi totiz - ze kdyz jsem si toto reseni chtel otestovat, ze mi to vlakno nikdy "nezabije", ale ze se pocka az se zrovna probihajici cinnost dokonci a potom se teprve provede ono zruseni vlakna...

To muze byt potom problem, protoze jestli to zatuhne nekde pri provadeni nektere z tech 3 cinnosti (vzdy muze byt provadena pouze jedna), tak to reseni pro "zabiti" vlakna ztraci smysl - protoze k nemu nedojde - WaitForSingleObject mi vrati (to jen hadam - kdyz tak me opravte) TimeOut a hoto - nic se nestane, vlakno bude stale tuhe...

Takze - chtel udelat jako "druhe kolo" - v pripade, ze dostanu TimeOut na KillEvent, chtel bych to vlakno zabit opravdu natvrdo - ale to uz nejak netusim jak...

Muzete mi, prosim, poradit?
Diky vsem, hezky den
Jirka

--------------------------------------------------------------
Ing. Jiri Sokol, jiri.sokol(zv)seznam(tec)cz, 724 144 097
D6Prof+SP3; WinXP+SP2; Firebird 1.5.3
programator amater

Vista aero, nahledy oken a minimalizace

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 15.1.2009 16:58:12

Lebeda David napsal(a):
> Radek Voltr napsal(a):
>
>> Ahoj,
>>
>> mrkni sem
>> http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Index.html
>>
>>
>>
> funguje dobre, jedine, co mi tam vadi, ze Application.Minimize zpusobi,
> ze v levem dolnim rohu obrazovky je videt minimalizovana podoba toho
> skryteho okna aplikace Zatim netusim, jak to odstranit, proc to tam vlastne vznika.

Odpovim si sam - trivialni, zavola se ShowWindow(Application.Handle,
SW_HIDE).

Vista aero, nahledy oken a minimalizace

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 15.1.2009 16:08:09

Radek Voltr napsal(a):
> Ahoj,
>
> mrkni sem
> http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Inde
> x.html
>
> Je to stejny kod co je v tom predchozim prispevku ale prijde me vic
> vysvetleny a jsou tam i jine veci pro Visty
>
>
Ahoj,

dekuju za odkaz. Prvne bych se rad omluvil panu Krmelovi - zrejme mi
poslal obdobne reseni, ale mne se to po prvnim zkouknuti jevilo jako
neco jineho, co uz pouzivam k zajisteni, aby nektera okna mela
samostatny button na taskbaru.

Reseni z toho clanku jsem aplikoval. Pouze misto PopupParent mam vlastni
workarround, protoze v D5 PopupParent jeste neexistuje. I tohle ale
funguje zrejme uspokojive.

Pokud delam minimalizaci jednotlivych oken, je vse v poradku, vcetne
prepinani pomoci taskbaru za situace, kdy tam je nejake modalni okno.

Zbyva ale vyresit Application.Minimize, tj. minimalizaci cele aplikace
do jedineho buttonu na taskbaru (vyvolavam specialnim tlacitkem na
nemodalnich formech a klasickym minimalizacnim tlacitkem na formech
modalnich). Tj. v pripade modalniho formu chci, aby se neminimalizoval
jen ten modalni form (protoze pak jsou videt ostatni okna, ale kvuli
tomu modalnimu se na ne stejne neda dostat), ale celou aplikaci I to
funguje dobre, jedine, co mi tam vadi, ze Application.Minimize zpusobi,
ze v levem dolnim rohu obrazovky je videt minimalizovana podoba toho
skryteho okna aplikace (doporucuji zkusit). Zatim netusim, jak to
odstranit, proc to tam vlastne vznika. Tohle kdyby se povedlo potlacit,
tak uz budu uplne spokojeny.

David Lebeda

PageControl a WordWrap

[*] horky(zv)cominn(tec)cz - 15.1.2009 08:19:39

> From: Jan Novak [mailto:delfin4(zv)volny(tec)cz]
> Sent: Wednesday, January 14, 2009 6:43 PM
>
> >> da sa v TPageControl dosiahnut Wordwrap nazvov zaloziek ?
>
> > Asi jenom pracne pomoci OwnerDraw, dole uvadim priklad,
>
> A funguje to aj v 64-bit windows? Protoze mne (Delphi6)
> OwnerDraw nefunguje,
> taby zustavaji prazdne.

Pri zapnuti jiz v designtime jsou zalozky opravdu prazdne. OwnerDraw proto nastavuji na True az v runtime, v OnCreate formulare. Problemy se zalozkami nam zadny zakaznik nehlasil a mame jich dost. Ale jestli ma nekdo 64-bit Win nevim, na 32-bit Vistach, XP, W2k, W98 to jede OK.

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

FastReport, "rucni" vytvoreni reportu

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 15.1.2009 14:22:02

http://www.fast-report.com/en/forum/index.php?showtopic=2940&hl=runtime


jeste si pamatuji ze pokud se nepletu tak nekde je nutno nastavovat i
parent krome pridani


> Zdravim vsechny,
>
> prosim nekoho, kdo ma zkusenosti s balikem komponent FastReport 4. Mysojidni naklikani sestavy je sice fajn, ale ja potrebuji sestavovat vzhled sestavy az za behu programu. Zkousel jsem to (tak jak jsem byl zvykly v QuickReportu, ale neuspel jsem), na webu jsem take rychle nic nenasel. Muze mi prosim nekdo ukazat priklad kodu, jak udelat napr. toto:
>
> Pridej do MasterData komponentu TfrxMemoView, kterou si pred tim vytvorim, priradim ji vlastnosti jako umisteni, DataSet a DataField
>

....
> Diky za jakekoli nakopnuti
>

FastReport, "rucni" vytvoreni reportu

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 15.1.2009 14:06:01

Zdravim vsechny,

prosim nekoho, kdo ma zkusenosti s balikem komponent FastReport 4. Mysojidni naklikani sestavy je sice fajn, ale ja potrebuji sestavovat vzhled sestavy az za behu programu. Zkousel jsem to (tak jak jsem byl zvykly v QuickReportu, ale neuspel jsem), na webu jsem take rychle nic nenasel. Muze mi prosim nekdo ukazat priklad kodu, jak udelat napr. toto:

Pridej do MasterData komponentu TfrxMemoView, kterou si pred tim vytvorim, priradim ji vlastnosti jako umisteni, DataSet a DataField

Zkousel jsem neuspesne toto:
Memo:=TfrxMemoView.Create(frxReport.FindObject('MasterBand1'));
Memo.DataSet:=frxDataSet;
Memo.DataField:='Popis';
M:=TfrxMemoView(frxReport.FindObject('MSN'));
Memo.Left:=M.Left+M.Width+5;
Memo.Top:=M.Top;
frxReport.ContainerAdd(Memo);
frxReport.ShowReport();

Diky za jakekoli nakopnuti


Mgr. Miloslav Pojsl

PageControl a WordWrap

[*] Jozef Jusko <jusko(zv)colnicapo.sk> - 15.1.2009 13:29:58

Pozrel som si metodu OnDrawTab TPageControl a myslim si, ze WordWrap nou
nedosiahnem, lebo ako parameter je tam const Rect: TRect, cize vykreslovaci
obdlznik uz je urceny a nemozno ho zmenit a ja WordWrap potrebujem hlavne
preto, aby som zmensil sirku nazvu zalozky (je tam velmi dlhy popis).
Existuje sice vlastnost TabWidth (TCM_SETITEMSIZE), ale ta zmeni sirku
vsetkych zaloziek a to ja nechcem.

PageControl a WordWrap

[*] Kavala, Ivo <kavala(zv)kavala(tec)cz> - 15.1.2009 09:53:45

Take mi na 64-bitovych Vistach nefungovalo vykreslovani zalozek. Na webu jsem nasel tuto upravu/opravu (na zdroj teto informace si nepamatuji, google bude vedet vic), ktera mi pomohla (pouzivam D7, ale snad to bude pro D6 stejne):

procedure TWinControl.WMDrawItem(var Message: TWMDrawItem);
begin
//if not DoControlMsg(Message.DrawItemStruct^.CtlID, Message) then inherited;
if not DoControlMsg(Message.DrawItemStruct^.hwndItem, Message) then inherited;
end;

Jan Novak napsal(a):

>>> da sa v TPageControl dosiahnut Wordwrap nazvov zaloziek ?
>> Asi jenom pracne pomoci OwnerDraw, dole uvadim priklad,
> A funguje to aj v 64-bit windows? Protoze mne (Delphi6) OwnerDraw nefunguje,
> taby zustavaji prazdne.

FastReport, "rucni" vytvoreni reportu

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 16.1.2009 08:47:09

> http://www.fast-report.com/en/forum/index.php?showtopic=2940&hl=runtime
>
Dekuji za odkaz, ale zde je jeden ropzdil. Ja mam stranku (ReportPage) a pas (MasterData) jiz vytvorene a potrebuju tam jen pridat nejake memo (TfrxMemoView), podle prikladu:

var Memo,M:TfrxMemoView;
Page:TfrxReportPage;
begin
Page:=TfrxReportPage(frxReport.Pages[0]);
Memo:=TfrxMemoView.Create(Page);
Memo.CreateUniqueName;
Memo.DataSet:=frxDataSet;
Memo.DataField:='Popis';
Memo.SetBounds(0,10,50,20);

frxReport.ShowReport();
end;

avsak nefunguje to... Co delam stale spatne, muze nekdo poradit?

FastReport, "rucni" vytvoreni reportu

[*] Heinisch Jiri <info(zv)drnholec(tec)cz> - 16.1.2009 08:59:10

Ahoj

Misto
Page:=TfrxReportPage(frxReport.Pages[0]);

zkus

Page:=TfrxReportPage(frxReport.Pages[1]);

Jura

Miloslav Pojsl napsal(a):
>> http://www.fast-report.com/en/forum/index.php?showtopic=2940&hl=runtime
>>
> Dekuji za odkaz, ale zde je jeden ropzdil. Ja mam stranku (ReportPage) a pas (MasterData) jiz vytvorene a potrebuju tam jen pridat nejake memo (TfrxMemoView), podle prikladu:
>
> var Memo,M:TfrxMemoView;
> Page:TfrxReportPage;
> begin
> Page:=TfrxReportPage(frxReport.Pages[0]);
> Memo:=TfrxMemoView.Create(Page);
> Memo.CreateUniqueName;
> Memo.DataSet:=frxDataSet;
> Memo.DataField:='Popis';
> Memo.SetBounds(0,10,50,20);
>
> frxReport.ShowReport();
> end;
>
> avsak nefunguje to... Co delam stale spatne, muze nekdo poradit?
>
>
>

FastReport, "rucni" vytvoreni reportu

[*] Heinisch Jiri <info(zv)drnholec(tec)cz> - 16.1.2009 09:37:13

Posilam vycuc z meho funkcniho kodu

var R: TfrxReport;


for i:=1 to R.PaGesCount-1 do

begin
Band := TfrxOverlay.Create(R.Pages[i]);
Band.CreateUniqueName;

Band.Height := vyska;
Band.Width := Sirka;
Band.Top := 0;

Memo1 := TfrxMemoView.Create(Band);
Memo1.CreateUniqueName;
Memo1.Text := SmallText;
Memo1.Font.Name := 'ARIAL';
Memo1.Font.Size := VelikostPismaSmall;
Memo1.Font.Color := clSilver;
Memo1.Align := bawidth;
Memo1.CharSpacing := 10;
Memo1.Height := 100;
Memo1.Top := 100;
Memo1.HAlign := haCenter;
Memo1.VAlign := vaCenter;

end;


Miloslav Pojsl napsal(a):
>> Misto
>> Page:=TfrxReportPage(frxReport.Pages[0]);
>>
>> zkus
>>
>> Page:=TfrxReportPage(frxReport.Pages[1]);
>
> bohuzel ani toto nepomaha...
>
>
>

FastReport, "rucni" vytvoreni reportu

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 16.1.2009 09:31:13

> Misto
> Page:=TfrxReportPage(frxReport.Pages[0]);
>
> zkus
>
> Page:=TfrxReportPage(frxReport.Pages[1]);

bohuzel ani toto nepomaha...

FastReport, "rucni" vytvoreni reportu

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 16.1.2009 11:05:19

Z meho postupu

ORep := TfrReport.Create(Obal);
try
ORep.ShowProgress := false;

ORep.Pages.Clear;
ORep.Pages.Add;
Page := ORep.Pages[0];

Bar := TfrBarCodeView.Create;
Bar.Name := 'BAR';
....
Page.Objects.Add(Bar);

.....

if ORep.PrepareReport then


Pavel

Chyba: interface not supported

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 16.1.2009 16:09:37

Zdravim,

Pro pristup k Excelu volam postupne

TExcelApplication.Create(nil);
TExcelWorkbook.Create(nil);
TExcelWorksheet.Create(nil);
a pak funkci
Connect;

Bezne to funguje, ale nyni na jednom pocitaci to na funkci Connect dava
chybu: "interface not supported".
Pocitac je preinstalovan s WinXP SP3, Office 2000 SBE.
( pred preinstalovanim to na stejnem pocitaci chodilo )

Dival jsem se na internet, ale odpoved jsem zatim nenasel.

Ma nekdo nejaky tip ? diky

Pavel
P.S. pouzivam D6, update 2


Fragmentace souboru Firebird databaze

[*] nonsense <nonsense(zv)volny(tec)cz> - 20.1.2009 17:40:05

Vaclav Krmela napsal(a):
> Ahoj.
>
> Mam Firebird 1.5 databazi, do ktere se pouze data pridavaji, v prumeru 1 MB
> denne. Po 6 letech provozu je databazovy soubor velky pres 2 GB. Tento
> soubor je na disku fragmentovany do vice jak 17 000 fragmentu. Je to
> normalni? Ma to vliv na vykon databaze? Da se s tim neco delat?
>
Ale jo, da
:-)
Pro cisteni databaze, opravy struktury, odblokovani uvaznutych transakci
a (jine) udrzbe slouzi prikaz gfix.

take se (obecne) doporucuje pro "setreseni" dazabaze postup:
- zalohovat dabatazi, tusim ze s priznakem "transport"
-pote ji z teto zalohy obnovit.

Velmi precizne a podrobne je toto a mnoho dalsiho posano v knize od
Pavla Cisare, Interbase/Firebird-Podrobna prirucka, ISBN:80-7226-946-1
> Omlouvam se za trivialni dotaz. Nejsem zadny databazovy guru, toto je jedina
> aplikace, ve ktere mam databazi pouzitou.
>
Kazdy jsme nekdy zacinal...
:-)

L.vlcek

Fragmentace souboru Firebird databaze

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 20.1.2009 17:20:04

Ahoj.

Mam Firebird 1.5 databazi, do ktere se pouze data pridavaji, v prumeru 1 MB
denne. Po 6 letech provozu je databazovy soubor velky pres 2 GB. Tento
soubor je na disku fragmentovany do vice jak 17 000 fragmentu. Je to
normalni? Ma to vliv na vykon databaze? Da se s tim neco delat?

Omlouvam se za trivialni dotaz. Nejsem zadny databazovy guru, toto je jedina
aplikace, ve ktere mam databazi pouzitou.
Vaclav Krmela


Fragmentace souboru Firebird databaze

[*] roman.bradac(zv)fotoinfo(tec)cz - 21.1.2009 10:55:08

Jan Dubsky - Strojirna Palava napsal(a):
>> to na co se ptas je asi o sprave disku, tedy predpokladam, ze jsi
>> zkousel defragmentovat disk a ze mas dostatecne velky volny prostor na
>> disku. Rozdil bude pak zrejme, na jakem OS (rozumnej serveru) je diskove
>> pole ulozeno, (windows, novell, linux), z cehos plyne i format
>> partitinons (fat, ntfs, ..). Fat asi ne, to by se ti tam nevesel tak
>> velky soubor.
>>
>
> Problem bude asi v tom, ze pokud je DB trvale v provozu (24/7) tak system soubor drzi a tim padem jej nelze defragmentovat (aspon u Windows to tak funguje napr. se swapovacim souborem) Nebo OS pro server funguje jinak?
>
> Honza
>
>
No, uz to bude asi offtopic, ale jen pro predstavu Novell v pristupu na disk pouziva semafor, tady bych nejakou sanci pri nizsich pristupech videl. Nebo holt si udelat "servis time" a v nejhrosim na tvrdo prepsat soubor tam (jiny disk) a zase zpet.
--

Roman Bradac

Fragmentace souboru Firebird databaze

[*] Jan Dubsky - Strojirna Palava <dubsky(zv)s-palava(tec)cz> - 21.1.2009 10:37:07

> to na co se ptas je asi o sprave disku, tedy predpokladam, ze jsi
> zkousel defragmentovat disk a ze mas dostatecne velky volny prostor na
> disku. Rozdil bude pak zrejme, na jakem OS (rozumnej serveru) je diskove
> pole ulozeno, (windows, novell, linux), z cehos plyne i format
> partitinons (fat, ntfs, ..). Fat asi ne, to by se ti tam nevesel tak
> velky soubor.

Problem bude asi v tom, ze pokud je DB trvale v provozu (24/7) tak system soubor drzi a tim padem jej nelze defragmentovat (aspon u Windows to tak funguje napr. se swapovacim souborem) Nebo OS pro server funguje jinak?

Honza


Fragmentace souboru Firebird databaze

[*] roman bradA?AT <roman.bradac(zv)fotoinfo(tec)cz> - 21.1.2009 10:01:05

Vaclav Krmela napsal(a):
> Ahoj.
>
> Mam Firebird 1.5 databazi, do ktere se pouze data pridavaji, v prumeru 1 MB
> denne. Po 6 letech provozu je databazovy soubor velky pres 2 GB. Tento
> soubor je na disku fragmentovany do vice jak 17 000 fragmentu. Je to
> normalni? Ma to vliv na vykon databaze? Da se s tim neco delat?
>
> Omlouvam se za trivialni dotaz. Nejsem zadny databazovy guru, toto je jedina
> aplikace, ve ktere mam databazi pouzitou.
> Vaclav Krmela
>
>
>
>
>
Ahoj,
to na co se ptas je asi o sprave disku, tedy predpokladam, ze jsi
zkousel defragmentovat disk a ze mas dostatecne velky volny prostor na
disku. Rozdil bude pak zrejme, na jakem OS (rozumnej serveru) je diskove
pole ulozeno, (windows, novell, linux), z cehos plyne i format
partitinons (fat, ntfs, ..). Fat asi ne, to by se ti tam nevesel tak
velky soubor.

--
Roman Bradac

Fragmentace souboru Firebird databaze

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 21.1.2009 09:09:01

From: "Jan Sebelik" <honza(zv)haes(tec)cz>
>
> Ale obavam se, ze Vaskuv problem ke nekde jinde.
> Pokud do databaze data jenom pridava, nemyslim si, ze by GDB soubor byl
> nejak zasadne "interne fragmentovany" na platne segmenty a neplatne
> segmenty nebo jak to rici. Problem popisuje jako fragmentaci NA DISKU,
> tady jakoby pri zvetsovani souboru nebyl na disku k dispozici potrebny
> souvisly prostor.

Ano presne takto to myslim. Jedna se o fragmentaci souboru, nikoliv obsahu
databaze. Do databaze se pouze pridava, nic se z ni nemaze. Ale soucasne s
pridavanim dat do databaze na stejnem diskovem poli vznikaji dalsi soubory.
Pri pridani jednoho zaznamu velikosti 500 B do databaze soucasne vznikne na
disku jeden soubor velikosti 500 kB. Na dalsi zvetseni databazoveho souboru
tedy neni souvisly prostor a soubor se fragmentuje.

Umistit databazovy soubor na jiny disk nez ostatni soubory se mi nechce
vzhledem po pozadovane konzisteci souboruu s databazii.

Ve verzi Firebird 2.1 by pry mel byt nejaky konfiguracni parametr na
prealokaci databazoveho souboru. Ale jak na to ve verzi 1.5?

Delat Backup/Restore kazdy den? Kdy a jak, kdyz je to bezuzivatelska
aplikace, ktera musi bezet 24/7? Jak se to obvykle dela?

Vasek

Zvukove schema

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 21.1.2009 09:05:01

Zakaznik si preje, aby program vydaval ruzne zvuky tak jak jsou definovane
ve schematu Windows. Napriklad zvuk definovany ve schematu pro "Otazka",
"Hvezdicka" ap. Jak na to? Dik.
Kalhous


Fragmentace souboru Firebird databaze

[*] horky(zv)cominn(tec)cz - 21.1.2009 08:26:58

> From: nonsense [mailto:nonsense(zv)volny(tec)cz]
> Sent: Tuesday, January 20, 2009 5:40 PM

> Vaclav Krmela napsal(a):
> >
> > Mam Firebird 1.5 databazi, do ktere se pouze data
> pridavaji, v prumeru 1 MB
> > denne. Po 6 letech provozu je databazovy soubor velky pres
> 2 GB. Tento
> > soubor je na disku fragmentovany do vice jak 17 000
> fragmentu. Je to
> > normalni? Ma to vliv na vykon databaze? Da se s tim neco delat?
> >

> take se (obecne) doporucuje pro "setreseni" dazabaze postup:
> - zalohovat dabatazi, tusim ze s priznakem "transport"
> -pote ji z teto zalohy obnovit.

K velikosti db mam dotaz. Je dobre tak velike databaze ponechat vcelku
nebo je radeji rozdelovat na vice souboru ? Jestlize nekdo v praxi pouzivate
rozdeleny soubor databaze, popiste zkusenosti, diky.> Velmi precizne a podrobne je toto a mnoho dalsiho posano v knize od
> Pavla Cisare, Interbase/Firebird-Podrobna prirucka, ISBN:80-7226-946-1

Ano, casto pouzivana kniha :-)

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

Fragmentace souboru Firebird databaze

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.1.2009 07:50:56

> Mam Firebird 1.5 databazi, do ktere se pouze data pridavaji, v
> prumeru 1 MB denne.
> Po 6 letech provozu je databazovy soubor velky pres 2 GB. Tento
> soubor je na disku fragmentovany do vice jak 17 000 fragmentu.
> Vaclav Krmela

> take se (obecne) doporucuje pro "setreseni" dazabaze postup:
> - zalohovat dabatazi, tusim ze s priznakem "transport"
> -pote ji z teto zalohy obnovit.
> L.vlcek

Obecne urcite spravne doporuceni.

Ale obavam se, ze Vaskuv problem ke nekde jinde.
Pokud do databaze data jenom pridava, nemyslim si, ze by GDB soubor byl nejak zasadne "interne fragmentovany" na platne segmenty a neplatne segmenty nebo jak to rici. Problem popisuje jako fragmentaci NA DISKU, tady jakoby pri zvetsovani souboru nebyl na disku k dispozici potrebny souvisly prostor.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Fragmentace souboru Firebird databaze

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 21.1.2009 00:30:29

2009/1/20 nonsense <nonsense(zv)volny(tec)cz>:
> take se (obecne) doporucuje pro "setreseni" dazabaze postup:
> - zalohovat dabatazi, tusim ze s priznakem "transport"
> -pote ji z teto zalohy obnovit.

Transportable backup se dela implicitne. A tady zrovna ani neni treba.

--
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

Zvukove schema

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 21.1.2009 14:09:20

>ve schematu Windows. Napriklad zvuk definovany ve schematu pro "Otazka",
>"Hvezdicka" ap. Jak na to? Dik.

Podivej se na funkci PlaySound v PSDK, umi prehravat systemove definovane
zvuky


Radek

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Jiri Jelinek <jiri.jelinek(zv)asei(tec)cz> - 22.1.2009 14:08:53

>
> > Muze mi nejaka dobra duse poradit, jak vytvorit DBF tabulku pomoci ADO
> > v Delphi ?
> > Nejak se mi dneska nedari.
> > S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
>
> Nakonec zustal u toho, ze mam template prazdne tabulky, kterou zkopiruju
jako soubor a pres ADO do ni teprve nacpu data.
> Moc jsem te asi nepotesil, ale zkousel jsem to a taky se mi nedarilo.
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW = www.haes(tec)cz = Vojtiskova
321 = 507 81 Lazne Belohrad ====================================

Ja mam nactenou hlavicku dbf souboru jako constantu: pole bytu z prazdne
tabulky (nemusi se pak distribuovat s exe prazdne dbf soubory jako
template). V runtime, pak jen zalozim novy soubor, ulozim hlavicku a pak uz
lze pouzit ADO komponenty.

JiJe.

FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 10:26:37

> Jsem lehce zmaten, uvedl jsi :
> ....

Anebo jeste jednou, at je to jasny
(IBConsole)

create table xxx(id integer not null);
insert into xxx values(0);
insert into xxx values(1);
insert into xxx values(2);

select * from xxx;

alter table xxx add id1 integer;
alter table xxx add id2 integer not null;

select * from xxx where id2 is null;

Honza

SVN - jak se "vymanit" ze spravy repository

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 22.1.2009 14:04:52

Dne Thu, 22 Jan 2009 10:58:40 +0100 Ludan <konference(zv)sales(tec)cz> napsal/-a:> Takze asi nic jineho nez napsat si vlastni unsvn.exe nezbyde.

BTW, tady http://tortoisesvn.net/community jsi se ptal?

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] horky(zv)cominn(tec)cz - 22.1.2009 13:26:49

Zdravim!
Pouzivame ADO pro pripojeni k dbf tabulkam, pro import dat.
Nyni ale vyplynula potreba nejake data exportovat, opet do dbf.

Muze mi nejaka dobra duse poradit, jak vytvorit DBF tabulku pomoci ADO v Delphi ?
Nejak se mi dneska nedari.
Diky.

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

SVN - jak se "vymanit" ze spravy repository

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 22.1.2009 13:34:50

Dne Thu, 22 Jan 2009 10:58:40 +0100 Ludan <konference(zv)sales(tec)cz> napsal/-a:> verzi v repository bude problem s tim ze se kopiruji vsechny soubory a
> jde o to, ze wc a repository jsou kazdy jinde spojeni pouze nitkou
> internetove
> linky....

Tak snad takovou operaci nedelas nekolikrat denne, ne?

Ja si cas od casu palim snapshot cca 300 MB zdrojovek,
a cas na export se prilis nelisi od casu, ktery
potrebuje napr. rar na zkompresovani repository
apod. Pustis to pres obed a je to.> Takze asi nic jineho nez napsat si vlastni unsvn.exe nezbyde.

Proc psat? pokud chces smazat vsechny .svn foldery,
tak na to staci nejaky slusny file manager
napr. Far:
- search for .svn
- list in panel
- select all
- delete all

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 13:32:50

> Muze mi nejaka dobra duse poradit, jak vytvorit DBF tabulku
> pomoci ADO v Delphi ?
> Nejak se mi dneska nedari.
> S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2

Nakonec zustal u toho, ze mam template prazdne tabulky, kterou zkopiruju jako soubor a pres ADO do ni teprve nacpu data.
Moc jsem te asi nepotesil, ale zkousel jsem to a taky se mi nedarilo.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

SVN - jak se "vymanit" ze spravy repository

[*] Ludan <konference(zv)sales(tec)cz> - 22.1.2009 10:58:40


----- Original Message -----
From: "Petr Fejfar" <petr.fejfar(zv)seznam(tec)cz>

>> Ted bych chtel tuto pracovni kopii "vyjmout" ze spravy SVN(coz "externe"
>> dokazu tim ze rekurzivne smazu vsechny slozky.svn v adresarove
>> strukture celeho projektu)
>
> Ze by existoval command pro in-place premenu
> workink copy na samostatne zdrojovky si nevzpominam,
> ale podobneho ucinku lze docilit prikazem Export
> (TortoiseSVN).
>
> Akorat pozor na ztratu unversioned souboru...

Ahoj,
No to tu vec neresi nebot - uz v tu dobu to muze byt v tom wc (umyslne)
jinak nez v repository a i kdybych toto nejak osetril pres nejakou trunk
verzi v repository bude problem s tim ze se kopiruji vsechny soubory a jde o
to, ze wc a repository jsou kazdy jinde spojeni pouze nitkou internetove
linky....
Takze asi nic jineho nez napsat si vlastni unsvn.exe nezbyde.

Diky
Ludek

FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 11:08:41

> alter table xxx add id2 integer not null;
> update xxx set id2=0;
> JiJe

Samozrejme, takhle je to spravne, takhle jsem to taky udelal.
Ja jsem to koneckoncu nehlasil jako chybu, ale jako PODIVNOST, jako jestli to nekdy nekdo nahodou nezkoumal.

Problem nastal u cloveka, ktery program testuje.
-
po "alter table add ..." neudelal ten "update",
jako ze si spravne hodnoty v ciselniku nastavi v primo programu
-
otevrel ciselnik a
id id1 id2
0 null 0
1 null 0
2 null 0
-
pro id=0 opravil id1=55, hodnoty id2 se mu zdaly dobre
Dal "ulozit" (presneji ApplyUpdates)
-
Delphi (presneji TDataSetProvider) generuje
update xxx set id1=55 where id=0
-
A TO JE SAMOZREJME PROBLEM
pri update nastal konflikt na id2, ktere nesmi byt null, po "alter table add..." zustane null a nikdo ho z "null" na "ne-null" nezmenil
-
kdyby se v programu neobjevila ta "nula", bylo by jasne, ze je treba hodnotu zadat, kdyz prece kazdy vi, ze id2 musi hodnotu mit.

Honza

FB 1.5 - alter table add ...

[*] Ludan <konference(zv)sales(tec)cz> - 22.1.2009 11:04:40


----- Original Message -----
From: "Jan Sebelik" <honza(zv)haes(tec)cz>
> Narazil jsem na divnost:

Ahoj,
Osobne bych nad tim nespekuloval a ridil bych se zasadou ze kazda pocatecni
hodnota ma byti inicializovana.
Takz bych ten update script napsal nejak takto

IF NOT EXISTS(druhdodavky.id_sklad)
BEGIN
alter table druhdodavky add id_sklad integer
update druhdodavky set id_sklad=0 /*nebo NULL */
END

Ja se to takhle snazim psat vzdycky a na divnosti tim padem nenarazim:)

Ludek

FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 10:24:37

> Jsem lehce zmaten, uvedl jsi :
> select * from druhdodavky
> u id_sklad ukazuje "null"
> u id_druhpohybu ukazuje "nula"
>
> ted je to tak jako ze v id_sklad je "null" ale ukazuje se "nula" u
> id_druhpohybu se ukazuje take "nula"?
> Roman

sorry, chtel jsem to zjednodusit a zamotal jsem se do toho
jeste jednou :

alter table druhdodavky add id_sklad integer;
alter table druhdodavky add id_druhpohybu integer not null;

select * from druhdodavky where id_druhpohybu is null

id_druhdodavky id_sklad id_druhpohybu
0 Normalni <null> 0
1 Vratka <null> 0
2 Reklamace <null> 0

Honza

FB 1.5 - alter table add ...

[*] Jiri Jelinek <jiri.jelinek(zv)asei(tec)cz> - 22.1.2009 10:48:39

>
> alter table druhdodavky add id_sklad integer; alter table druhdodavky add
id_druhpohybu integer not null;
>
> select * from druhdodavky where id_druhpohybu is null
>
> id_druhdodavky id_sklad id_druhpohybu
> 0 Normalni <null> 0
> 1 Vratka <null> 0
> 2 Reklamace <null> 0
>
> Honza

Zdravim,
resil bych to takto (na ORACLE to ani jinak nejde):

alter table druhdodavky add id_druhpohybu integer;
update druhdodavky set id_druhpohybu = 0 where id_druhpohybu is null; (nebo
naplneni odpovidajicimi hodnotami)
alter table druhdodavky modify id_druhpohybu integer not null;

JiJe

FB 1.5 - alter table add ...

[*] roman.bradac(zv)fotoinfo(tec)cz - 22.1.2009 10:40:38

Jan Sebelik napsal(a):
>> Jsem lehce zmaten, uvedl jsi :
>> select * from druhdodavky
>> u id_sklad ukazuje "null"
>> u id_druhpohybu ukazuje "nula"
>>
>> ted je to tak jako ze v id_sklad je "null" ale ukazuje se "nula" u
>> id_druhpohybu se ukazuje take "nula"?
>> Roman
>>
>
> sorry, chtel jsem to zjednodusit a zamotal jsem se do toho
> jeste jednou :
>
> alter table druhdodavky add id_sklad integer;
> alter table druhdodavky add id_druhpohybu integer not null;
>
> select * from druhdodavky where id_druhpohybu is null
>
> id_druhdodavky id_sklad id_druhpohybu
> 0 Normalni <null> 0
> 1 Vratka <null> 0
> 2 Reklamace <null> 0
>
> Honza
>
>
>
>
To se mi stava taky dost casto, chce to odstup. Nicmene tak jak to
vypada, tak to dela dobre. Protoze kdyz pridavas sloupec, ktery je not
null, musi tam neco vyplnit a null tam dat nesmi proto tam da tu nulu.

<Anebo jeste jednou, at je to jasny
<(IBConsole)

<create table xxx(id integer not null);
<insert into xxx values(0);
<insert into xxx values(1);
<insert into xxx values(2);

<select * from xxx;

<alter table xxx add id1 integer;
<alter table xxx add id2 integer not null;

<select * from xxx where id2 is null;

<Honza

Kdyz das dotaz "<select * from xxx where id2 is null;" kde mas nully
nektere SQL servery nevrati nic, nektere vrati ty nuly a nektere skonc(i
chybou. Tak nejak jsem se s tim smiril a v manualu jsem nic k tomu
nenasel. Asi tak.

Roman


FB 1.5 - alter table add ...

[*] roman.bradac(zv)fotoinfo(tec)cz - 22.1.2009 09:58:35

Jan Sebelik napsal(a):
>> ne snad ze bych byl na to nejaky expert, ale predpokladam ze kdyz dam
>> NOT NULL a nezadam hodnoty tak se mi doplni cokoliv jen ne NULL, tedy se
>> doplni 0.
>> Roman
>>
>
> a)
> zadnej "default 0" tam neni
>
> b)
> select * from druhdodavky where id_sklad is null
> vrati
> id_sklad
> 0 Normalni <null> 0
> 1 Vratka <null> 0
> 2 Reklamace <null> 0
> to je prave to divny
> id_sklad je opravdu "null" (to bych predpokladal), pritom se vypisuje "nula".
> a to i v IBConsole, i v programu s TClientDataSet
>
> Honza
>
>

Jsem lehce zmaten, uvedl jsi :

> select * from druhdodavky u id_sklad ukazuje "null" u id_druhpohybu ukazuje "nula"

ted je to tak jako ze v id_sklad je "null" ale ukazuje se "nula" u
id_druhpohybu se ukazuje take "nula"?

Roman


XML a TMemo

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 22.1.2009 09:26:33

Puvodni zprava ze dne 22.1.2009 od Miloslav Pojsl:

> Mam nektere nody, ktere obsahuji text, ktery si zobrazuju v
> komponente TMemo. Vse funguje, ale pokud v textu zalomim radek
> (klavesou Enter), ulozim do xml a opet nactu, tak se mi misto
> zalomeni objevi znak ctverecek a pod WinVista zmizi zalomeni uplne.

Pokud jsou v XML souboru znaky CR/LF, znamenaji tzv. bile znaky, v
procesu normalizace jsou nahrazeny mezerou. To je v poradku.

> V xml je vsak vse ulozeno spravne i s temi zalomenimi, takze to asi
> bude problem nekde na strane TMemo. Nevite prosim, jak to vyresit?

Pred vkladanim do XML ty znaky CR/LF nahrad necim jinym, nebo to cele
koduj napr. base64.

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory


web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz

==========================================================


SVN - jak se "vymanit" ze spravy repository

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 22.1.2009 14:32:54

> Takze asi nic jineho nez napsat si vlastni unsvn.exe nezbyde.

..svn adresare su skryte (hidden), takze napriklad ak mas WinZip, mozes pouzit wzzip (command line interface, http://www.winzip.com/downcl.htm):

wzzip -a -P -r %mydirectory%.zip %mydirectory%\*.*

ktory defaultne vynechava skryte a systemove subory.

Dalsia moznost, ktoru tiez bezne pouzivam, je cwRsync (http://sourceforge.net/projects/sereds/):
rsync --delete --delete-excluded --progress --recursive --archive --compress --exclude='.svn' --exclude='*.~*' --exclude='__history' --exclude='*.local' --exclude='*.identcache' --exclude='*.dcu' --exclude='*.map' %local_path% %remote_path%

HTH
TOndrej

FB 1.5 - alter table add ...

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 22.1.2009 14:34:55

2009/1/22 Jan Sebelik <honza(zv)haes(tec)cz>:
> Narazil jsem na divnost:

Nejsi prvni :) http://tracker.firebirdsql.org/browse/CORE-1355 .

--
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Petr Kejval <petr.kejval(zv)worldonline(tec)cz> - 22.1.2009 18:17:08

>
> Trochu jsem upravil k+APM-d pro vytv+AOEBWQ-en+AO0- Access datab+AOE-ze a funguje to.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ADODB_TLB, ADOX_TLB;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FDatabaseConnect : string;
FDatabaseName : string;
FTableName : string;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const
MSJet4ConnectString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=%s;Extended Properties=dBase III;';
procedure TForm1.FormCreate(Sender: TObject);
begin
FDatabaseName :=ExtractFilePath(Application.ExeName);
FDatabaseConnect:=format(MSJet4ConnectString,[FDatabaseName]);
FTableName :='Table1';
end;

procedure TForm1.Button1Click(Sender: TObject);
var FCatalog : Catalog;
FConnection : Connection;
FTable : Table;
FColumn : _Column;
FPrimaryKey,FSecondaryIndex1 : Index;
i : integer;
begin
if FileExists(FDatabaseName+-FTableName+-'.dbf') then
if (MessageDlg(Format('Datab+AOE-ze %s ji+AX4-
existuje.'+-#13+-#10+-''+-#13+-#10+-'Chcete ji p+APg-epsat?',[FDatabaseName]),
mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
DeleteFile(FDatabaseName+-FTableName+-'.dbf')
else
Exit;

FCatalog:=CoCatalog.Create;
FConnection:=CoConnection.Create;
FTable:=CoTable.Create;
FPrimaryKey:=CoIndex.Create;
FSecondaryIndex1:=CoIndex.Create;
try
FConnection.Open(FDatabaseConnect,'','',adConnectUnspecified);
FCatalog.Set_ActiveConnection(FConnection);
//..................Tvorba tabulky
Table1.................................
FTable.Name:=FTableName;
FTable.Columns.Append('ID',adInteger,0);
FTable.Columns.Append('Prijmeni',adVarWChar,20);
FTable.Columns.Append('Jmeno',adVarWChar,15);
FCatalog.Tables.Append(FTable);
//..................Tvorba prim+AOE-rn+AO0-ho indexu tabulky
Table1...............
FPrimaryKey.Name:='PK';
FPrimaryKey.PrimaryKey:=True;
FPrimaryKey.Columns.Append('ID',adInteger,0);
FTable.Indexes.Append(FPrimaryKey,null);
finally
try FConnection.Close; except end;
FPrimaryKey._Release;
FTable._Release;
FConnection:=nil;
FCatalog:=nil;
end;
end;

end.

Fragmentace souboru Firebird databaze

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 22.1.2009 14:26:54

2009/1/21 Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz>:
> Ve verzi Firebird 2.1 by pry mel byt nejaky konfiguracni parametr na
> prealokaci databazoveho souboru. Ale jak na to ve verzi 1.5?

Na 1.5 ten param neni. :)

Nejlepsi je samozrejme vyhrazeny disk. Nicmene lze to i resit
nasypanim do DB velke mnozstvi dat a ty pak smazat. Soubor zustane
velky a nebude se pomalu natahovat.

--
Jiri {x2} Cincura (CTO x2develop.com)
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

SVN - jak se "vymanit" ze spravy repository

[*] Ludan <konference(zv)sales(tec)cz> - 22.1.2009 21:51:22


----- Original Message -----
From: "Petr Fejfar" <petr.fejfar(zv)seznam(tec)cz>
>
> Tak snad takovou operaci nedelas nekolikrat denne, ne?
>
>> Takze asi nic jineho nez napsat si vlastni unsvn.exe nezbyde.
>
> Proc psat? pokud chces smazat vsechny .svn foldery,
> tak na to staci nejaky slusny file manager
> napr. Far:
> - search for .svn
> - list in panel
> - select all
> - delete all

No ono se nejedna v tomto pripade o klasicke zdrojaky a navic to cele pisi v
T-SQL :) takze exec master..xp_cmdshell ......
Ale dik za radu.


Ludek

FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 09:42:34

> ne snad ze bych byl na to nejaky expert, ale predpokladam ze kdyz dam
> NOT NULL a nezadam hodnoty tak se mi doplni cokoliv jen ne NULL, tedy se
> doplni 0.
> Roman

a)
zadnej "default 0" tam neni

b)
select * from druhdodavky where id_sklad is null
vrati
id_sklad
0 Normalni <null> 0
1 Vratka <null> 0
2 Reklamace <null> 0
to je prave to divny
id_sklad je opravdu "null" (to bych predpokladal), pritom se vypisuje "nula".
a to i v IBConsole, i v programu s TClientDataSet

Honza

FB 1.5 - alter table add ...

[*] roman.bradac(zv)fotoinfo(tec)cz - 22.1.2009 09:30:33

Jan Sebelik napsal(a):
>> To ti asi konvertuji komponenty. Cim se pripojujes k DB ?
>>
>
> Trochu jsem to zjednodusil, ve skutecnosti metadata
>
> create table DRUHDODAVKY (
> id_DRUHDODAVKY integer NOT NULL,
> NAZEV varchar(40),
> id_sklad integer,
> id_druhpohybu integer NOT NULL,
> constraint pk_DRUHDODAVKY primary key (id_DRUHDODAVKY)
> );
> (stale jeste zjednoduseno)
>
> Ten id_sklad, id_druhpohybu tam pribyl pres "add".
> alter table druhdodavky add id_sklad integer;
> alter table druhdodavky add id_druhpohybu integer not null;
>
> select * from druhdodavky u id_sklad ukazuje "null" u id_druhpohybu ukazuje "nula"
>
> 0 Normalni <null> 0
> 1 Vratka <null> 0
> 2 Reklamace <null> 0
>
> Pripojeni a komponenty:
> IBConsole,
> v programu pak TClientDataSet (pres TIBDataSet) a DBGrid.
>
> Honza
>
>
>
>
Ahojky,
ne snad ze bych byl na to nejaky expert, ale predpokladam ze kdyz dam
NOT NULL a nezadam hodnoty tak se mi doplni cokoliv jen ne NULL, tedy se
doplni 0.

Roman


FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 09:04:31

> To ti asi konvertuji komponenty. Cim se pripojujes k DB ?

Trochu jsem to zjednodusil, ve skutecnosti metadata

create table DRUHDODAVKY (
id_DRUHDODAVKY integer NOT NULL,
NAZEV varchar(40),
id_sklad integer,
id_druhpohybu integer NOT NULL,
constraint pk_DRUHDODAVKY primary key (id_DRUHDODAVKY)
);
(stale jeste zjednoduseno)

Ten id_sklad, id_druhpohybu tam pribyl pres "add".
alter table druhdodavky add id_sklad integer;
alter table druhdodavky add id_druhpohybu integer not null;

select * from druhdodavky u id_sklad ukazuje "null" u id_druhpohybu ukazuje "nula"

0 Normalni <null> 0
1 Vratka <null> 0
2 Reklamace <null> 0

Pripojeni a komponenty:
IBConsole,
v programu pak TClientDataSet (pres TIBDataSet) a DBGrid.

Honza

SVN - jak se "vymanit" ze spravy repository

[*] Ludan <konference(zv)sales(tec)cz> - 21.1.2009 22:59:53

Zdravim,
Potrebuji poradit s SVN:
Mam nejaky projekt v repository.
Udelam si jeho pracovni kopii pomoci checkout.
Pracuji...zmeny posilam pres commit.
Ted bych chtel tuto pracovni kopii "vyjmout" ze spravy SVN (coz "externe"
dokazu tim ze rekurzivne smazu vsechny slozky .svn v adresarove strukture
celeho projektu)
Nepodarilo se mi na to v SVN najit zadny prikaz. Je to nejak mozne ?

Predem diky za nakopnuti.

Ludek


XML a TMemo

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 22.1.2009 08:06:27

Zdravim vsechny,

mam asi trivialni dotaz. Pouzivam pro podporu xml TXmlDocument (Delphi6, WinXP). Mam nektere nody, ktere obsahuji text, ktery si zobrazuju v komponente TMemo. Vse funguje, ale pokud v textu zalomim radek (klavesou Enter), ulozim do xml a opet nactu, tak se mi misto zalomeni objevi znak ctverecek a pod WinVista zmizi zalomeni uplne. V xml je vsak vse ulozeno spravne i s temi zalomenimi, takze to asi bude problem nekde na strane TMemo. Nevite prosim, jak to vyresit? Ono se to zda zbytecne, ale kdyz je polozka "adresa" napsana na jeden radek, tak to hodne vadi.

diky za kazde nakopnuti:-), zdravi M. Pojsl

FB 1.5 - alter table add ...

[*] horky(zv)cominn(tec)cz - 22.1.2009 08:28:29

> From: Jan Sebelik [mailto:honza(zv)haes(tec)cz]
> Sent: Thursday, January 22, 2009 8:22 AM

> Narazil jsem na divnost:
>
> alter table druhdodavky add id_sklad integer;
>
> select * from druhdodavky
>
> ID_DRUHDODAVKY NAZEV ID_SKLAD
> 0 Normalni 0
> 1 Vratka 0
> 2 Reklamace 0
>
> Kde se tam vzala ta nula?

To ti asi konvertuji komponenty. Cim se pripojujes k DB ?

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

SVN - jak se "vymanit" ze spravy repository

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 22.1.2009 07:46:26

Dne Wed, 21 Jan 2009 22:59:53 +0100 Ludan <konference(zv)sales(tec)cz> napsal/-a:> Ted bych chtel tuto pracovni kopii "vyjmout" ze spravy SVN(coz "externe"
> dokazu tim ze rekurzivne smazu vsechny slozky.svn v adresarove
> strukture celeho projektu)

Ze by existoval command pro in-place premenu
workink copy na samostatne zdrojovky si nevzpominam,
ale podobneho ucinku lze docilit prikazem Export
(TortoiseSVN).

Akorat pozor na ztratu unversioned souboru...


HTH, pf

FB 1.5 - alter table add ...

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.1.2009 08:22:29

Narazil jsem na divnost:

alter table druhdodavky add id_sklad integer;

select * from druhdodavky

ID_DRUHDODAVKY NAZEV ID_SKLAD
0 Normalni 0
1 Vratka 0
2 Reklamace 0

Kde se tam vzala ta nula?

select * from druhdodavky where id_sklad is null

ID_DRUHDODAVKY NAZEV ID_SKLAD
0 Normalni 0
1 Vratka 0
2 Reklamace 0

On je tam ve skutecnosti "null", ale proc se ukazuje "nula"?

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Ing. Jiri SOKOL <js-delphi(zv)seznam(tec)cz> - 22.1.2009 22:09:23

Ahoj vsem...
Tak jsem po nekolikahodinovem hledani prisel na to, kdy mi aplikace vytuhne. Je to tehdy, kdyz "hlavni" vlakno zacne delat "neco" a prestane tak zpracovavat dalsi zpravy...
V ten moment jsem se snazil o synchronizaci z podrizeneho vlakna a bylo to - pokud nekdy nekdo budete hledat chybu - zkuste zvazit, jestli nemate podobny problem...

Chtel bych vas poprosit o radu - vysvetleni - jak a kdy presne je nutne synchronizovat kod podrizeneho vlakna s hlavnim vlaknem...

Jak je to:
- pri preklesni urcitych rpvku na formulari - labely, edity apod...
- pri startu aplikace nacitam data - ty jsou konstantni po celou dobu behu cele aplikace - pristup k temto hodnotam
- pokud chci pouzivat stejny kod jak v hlavni aplikaci, tak v podrizenem vlaknu - v mem pripade ukladani ruznych dat do souboru

- atd - treba vas jeste neco napadne...

Diky za skoleni :o)
Hezky den vsem!
Jirka


--------------------------------------------------------------
Ing. Jiri Sokol, jiri.sokol(zv)seznam(tec)cz, 724 144 097
D6Prof+SP3; WinXP+SP2; Firebird 1.5.3
programator amater

Vista a prepinani threadu

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.1.2009 20:02:46

From: "Radek Cervinka" <radek.cervinka(zv)technodat(tec)cz>
> Ale no tak, kazda platforma ma problemy nekde jinde, a to jak Delphi tak
> .NET.

No jiste, a cela tahle debata byla o multi-thread aplikacich. Pro tuto
oblast nebyla v Delphi (alespon to tak nebylo ve verzi 7) zadna zvlastni
podpora. Nepredpokladam ze by to bylo v nejake novejsi verzi, koneckoncu
psat neco takoveho nema dnes pro Win32/64 ani prilis smysl, kdyz jak .NET
tak Java jsou v tomto vyrazne dale.

Zkratka jsem chtel naznacit, ze pro (serverove) aplikace vyzadujici
paralelni zpracovani neni v roce 2009 platforma Win32/64 s knihovnami Delphi
(a patrne ani s zadnymi jinymi) tim idealnim nastrojem pro tvorbu takovych
aplikaci. Vzhledem k tomu, ze vyrobci hardware v soucasne dobe narazili na
technologicky limit neustaleho zvysovani frekvence se zacina cim dal tim
vice prosazovat tlak na zlepseni vykonu prave pomoci vicejadrovych
procesoru. Na to musi byt aplikace (a i vyvojari) pripraveni, coz v mnoha
pripadech nejsou. Spolecne s pronikanim 64 bitovych architektur "do kazdeho
pocitace" necht si zaver udela kazdy sam. Ja to nemyslim zle ...

To jak muze takovy framework vypadat a ze muze byt znacne odlisny od pojeti
pomoci tridy TThread a tradicnich Win API synchronizacnich objektu je videt
treba v pripravovanych Parallel Extensions:
http://msdn.microsoft.com/en-us/magazine/cc163329.aspx
Opet netvrdim, ze je idealni pro vsechny mozne scenare. Nicmene se alespon
snazi nejakym zpusobem tuto, dle meho nazoru velmi dulezitou, problematiku
pojmout a posunout dale k praktickemu pouziti.

Vzdy jsem prosazoval, ze vetsina aplikaci (vcetne klientsky UI) by mela byt
ze sve povahy multithreadova. V kazde se urcite najde nejaka uloha, ktera
dele trva nebo by ji mohlo byt vyhodne provadet soucasne s jinou. A schvalne
kolik v praxi takovych aplikaci opravdu je ... a proc jich je tak malo ;-)

Petr Vones

Vista a prepinani threadu

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 23.1.2009 19:22:43

Puvodni zprava ze dne 23.1.2009 od Petr Vones:

> Jehoz vysledny non-debug nativni kod je takovy, ze lecktery
> kompilator muze jen tise zavidet ... :-) Celkovy vykon aplikace dnes
> totiz uz vubec nezavisi jen na "hrube sile" v co nejefektivnejsim
> postupne provadenem kodu nebo spravnem seskupeni datovych struktur,
> ale i v paralelnim zpracovani takove ulohy a efektivnim rozdeleni
> zpracovani mezi vice procesoru, viz dale.

Hm. Pouzivam Delphi/Win32 i Visual Studio/.NET. Zrovna tak mam spousty
aplikaci, ktere pouzivam na svych pocitacich, Win32 i .NET. A na prvni
pohled ty .NET poznam, protoze jsou daleko pomalejsi nez ty Win32.
Takze bud to vsichni blbe programuji, vcetne me, a nebo je muj
pocitaci nejaky divny (procesor Intel Core 2 Quad 2,4 GHz, 4 GB RAM,
Windows Vista), kdyz to snadno poznam :-)))

Nerikam, ze .NET je na prd, protoze nechci byt jako ty, kdyz porad
tvrdis, ze Delphi jsou na prd. Za tech 25+ let, co jsem programoval a
programuji pro vsechny mozne platformy (mikrokontrolery, salove
pocitace, domaci pocitace, mobilni zarizeni, webove i jine servery a
samozrejme PC desktopy), jsem totiz zjistil, ze jedno prostredi a
jedna platforma nikdy nestaci.

Tyka se to vseho, od platformy hardwarove, pres platformy typu
uloziste dat, aplikacnich serveru, az po samotne vyvojove nastroje,
pomucky a janevimcojeste. Je snadne rict, ze tohle (co zrovna ted
pouzivas, predtim jsi to rikal zase o necem jinem) je nejlepsi a to
ostatni stoji za prd. A zrovna tak, jak je to snadne, tak je to i
lacine a v kontextu konference o Delphi to vyzniva maximalne jako
vykriky do tmy :-)

Vis sam, protoze jsi inteligentni clovek, ze to proste neni a ani
nemuze byt pravda. Oba vime, ze ve Visual Studiu nedelas vsechny typy
aplikaci, ktere se bezne programuji, ktere se na trhu objevuji, proste
mas urcity zaber, jsi urcitym zpusobem specializovany (navic dost
odlisnym smerem od vetsiny ostatnich). O tom to je, kde tobe vyhovuje
zrovna tohle, at uz jsou duvody jakekoliv, jinym lidem vyhovuje zase
neco jineho, a je to pro ne resenim nejlepsim.

Mohli bychom si tu klidne rici nejake konkretni priklady, ale byla by
to flame a tu jako administrator nepripoustim. Koneckoncu je to stejne
konference o Delphi, tak by se mela venovat Delphi :-)

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory


web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz

==========================================================

Vista a prepinani threadu

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 23.1.2009 18:46:41

Petr Vones napsal(a):
> From: "Radek Voltr" <voltr(zv)eleasoftware.com>
>
>> Pro kazdeho do neprogramuje v nejakem polokompilovanem jazyku kde mezi nim
>> a
>>
>
> Jehoz vysledny non-debug nativni kod je takovy, ze lecktery kompilator muze
> jen tise zavidet ... :-)
je nekde popsane, ktere optimalizace jsou provadeny nebo je to jen
takovy vykrik?

U Delphi mam celkem predstavu:
http://groups.google.com/group/borland.public.delphi.non-technical/msg/8a20aa5262eb482a?pli=1

> Celkovy vykon aplikace dnes totiz uz vubec nezavisi
> jen na "hrube sile" v co nejefektivnejsim postupne provadenem kodu nebo
> spravnem seskupeni datovych struktur, ale i v paralelnim zpracovani takove
> ulohy a efektivnim rozdeleni zpracovani mezi vice procesoru, viz dale.
>
Ale no tak, kazda platforma ma problemy nekde jinde, a to jak Delphi tak
.NET.

Vysledek prace kompilatoru a linkeru Delphi je pro me ucely dostacujici
(a co vice v novych verzich je vykon lepsi nez ve starych nejen diky novemu
spravci pameti).

Vas nikoho neirituji nektere problemy designeru VS (rikam jim cervena
obrazovka smrti)?

Pouzivam obe platformy, a jsem si vedom problemu (u obou - viz treba ty
3 mody kompilace ASP.NET aplikaci) a zda se mi tvuj pohled jednostranny.

BTW: kdyz se tak porad navazis do Delphi - kterou verzi jsi skoncil?
Neni fer porovnavat stare verze.

R.

Vista a prepinani threadu

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.1.2009 18:02:38

From: "Radek Voltr" <voltr(zv)eleasoftware.com>
> Pro kazdeho do neprogramuje v nejakem polokompilovanem jazyku kde mezi nim
> a

Jehoz vysledny non-debug nativni kod je takovy, ze lecktery kompilator muze
jen tise zavidet ... :-) Celkovy vykon aplikace dnes totiz uz vubec nezavisi
jen na "hrube sile" v co nejefektivnejsim postupne provadenem kodu nebo
spravnem seskupeni datovych struktur, ale i v paralelnim zpracovani takove
ulohy a efektivnim rozdeleni zpracovani mezi vice procesoru, viz dale.

> i blbej integer je reprezentovan jako objekt je to opravdu poucne cteni.

Neni naskodu, podobne jako v pripade onoho zmineneho Richtera a Win32/64, si
neco precist i o .NET CLR. Shodou okolnosti o tom vydal stejny autor stejne
dobrou knihu.

Jinak s temi thready, pokud se pouziva neco jineho nez WaitXXX funkce, tak
opravdu nelze cekat ze se to bude chovat optimalne. Nejake smycky ze Sleep
nejsou v zadnem pripade idealni kod.

Doba kdy na urovni nativniho Win32/64 existoval pouze pojem thread a API
funkce CreateThread take patri minulosti. Doporucuju si neco precist o tom,
proc a jak jsou na teto urovni zavedeny Thread pooly a k cemu jsou dobre:
http://msdn.microsoft.com/en-us/magazine/cc163327.aspx

Posledni osudnou ranou bude beh takoveho kodu na viceprocerovych strojich,
coz je dnes uz kazdy novejsi procesor. Je treba si uvedomit, ze sdilena data
nejsou primo v RAM, ale v cache jednotlivych procesoru, takze nemusi
existovat prima korelace zapisu dat z jednoho vlakna bezicim na jednom jadre
a druheho bezicim prave na jadre druhem. O tom kdy se maji presunout z/do
RAM rozhoduje na urovni nativnich instrukci i programator, ktery na to musi
myslet. Aby to nemel tak jednoduche, chce-li byt dostatecne low-level, tak
kazda architektura CPU (AMD, Intel) to resi jinak. Nektera "optimisticky" a
jina "pesimisticky".

Nejake odkazy:
http://msdn.microsoft.com/cs-cz/magazine/cc163715(en-us).aspx
http://blogs.msdn.com/cbrumme/archive/2003/05/17/51445.aspx
http://en.wikipedia.org/wiki/Cache_coherency

Chci tim jen ukazat, ze dnes existuji problemy souvisejici s paralelnim
zpracovanim uloh, ktere se na nekterych platformach snazi resit (netvrdim ze
idealnim zpusobem) a nabidnout vyvojarum alespon nejakou podporu jiz tak
slozite problematiky, zatimco jinde nejsou reseny vubec.

Petr Vones

Vista a prepinani threadu

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 23.1.2009 17:08:35

Radek Voltr wrote:
> a nevadi mu ze
> i blbej integer je reprezentovan jako objekt je to opravdu poucne cteni.
>
> 2Petr Vones : Ty nam do Delphi rejpes casto tak to jednou snad taky prezijes
> ;-)
>
> Cus
> Radek

Ahoj,
tak jak je dobre precist si neco o internals samotnych windows, je take dobre si precist neco i o
internals .NET frameworku. Pak se clovek napr. dozvi, jak to s tim integerem "jako objektem" vlastne
doopravdy je...

pl

Vista a prepinani threadu

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 23.1.2009 16:56:34

On Friday, January 23, 2009 2:54 PM ,
Lebeda David <david.lebeda(zv)comarr(tec)cz> wrote:

> Petr Vones napsal(a):
>> Zacal bych hledat problem nekde jinde nez ve Viste :-) Koneckoncu
>> to
>> lze zkusit jeste na Windows Serveru 2008 nebo betaverzi Windows 7.
>> Neni spise problem v nejake spatne napsane synchronizaci ktera se
>> projevi az tam ?
>>
> Jasne, u sebe se taky snazime...Nicmene thready jsou relativne
> nezavisle, vzajemne na sebe necekaji apod.
>
> V jednom z tech threadu byl napr cykl while, ktery inkrementoval
> promennou, nic jineho. Jiny thread vypisoval hodnotu teto promenne.
> V
> logu dlouho visela stale tataz hodnota, jednou za uhersky rok,
> nastal
> nejaky inkrement. Cili do toho threadu to vubec nevlezlo. Na XP v
> pohode.
>
> Ted jsem se docetl, ze Visty maji nove jadro, ktere uprednostnuje
> I/O
> operace apod. Nemuze byt problem v tom, ze thready, v nichz probiha
> TCP komunikace nebo cteni/zapisy na disk se vzajemne stridaji mezi
> sebou, diky tomu, ze s necim komunikuji, zatimco thread, ktery jen v
> nejakem cyklu na neco ceka, se nestihne dostat na radu nebo jen
> zridkakdy, kdyz se nekde v komunikaci udela dira?

jakmile se volaji blokujici funkce API (cteni ze socketu, select()
apod) tak thread samozrejme zaroven dobrovolne odevzdava svuj CPU cas
ve prospech ostatnich - dokud nejsou k dispozici pozadovana data ci
nenastala udalost.
Thread, ktery bezi stale dokola v cyklu, kde se nevola zadna windowsi
funkce (resp jejich vybrana mnozina) neni vetsinou napsany dobre.
Zavolani Sleep(0) s rozumnou hustotou muze pomoci. Pokud ten cyklus
nedela nejakou opravdu narocnou praci s velkym mnozstvim iteraci, kde
volani odlehcujici planovaci zpusobuje prilisne zpomaleni, melo by se
napriklad tim sleepem(0) planovaci IMHO pomahat.
Ve vetsine pripadu ale thready na neco cekaji a tam by se vzdy mely
pouzivat funkce typu WaitForXXX a nikoliv proste cykly apod.

D. Toman

Vista a prepinani threadu

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 23.1.2009 16:00:30

Ahoj,

>V jednom z tech threadu byl napr cykl while, ktery inkrementoval
>promennou, nic jineho. Jiny thread vypisoval hodnotu teto promenne. V

par dotazu :
- ty thready vali na 100% ? Nemaj tam zadnou waitfor... funkci ?
- je opravdu nutne aby ty thready jeli v takto agresivnim modu ?
- praci s tou hodnotou mas resenou jak ? InterlockedIncrement,
synchronizujes manualne nebo vubec ?
- nemas ciste nahodou ty XPcka na jednojadrovem procaku a ty Visty na
dvoujadrovem ?


a par rad od boku - podle mne tam nemas zadnou synchronizaci takze thread
nikdy dobrovolne nepredaji rizeni windows. To znamena ze thread vycerpa
svoje kvantum
prideleneho casu a pak je na windows jak mu rizeni seberou nebo neseberou
coz windows
resi podle toho v jakem jsou thread poradi atd.... Pokud maji thready
stejnou prioritu
tak todle rozhodovani stoji dost na vode.

Dalsi vec ktera ti todle muze delat (a ktera byla i na XP ale je mozne ze na
Vistach to
upravili - Windows Internals 5 ktere resi i Visty jeste nevydali) je to ze
Windows na zaklade
nejakych provedenych operaci (neni to jen I/O ale napr. i operace GUI tj.
ksichtu) zvedaji
threadu prioritu na urcitou dobu ktera nejakou dobu klesa.

Teoreticky pokud tak mas dva thready z nichz jeden dela operace na ktere
Windows zvedaj prioritu
a ty se dobrovolne nevzdas rizeni tak se muze stat ze to jedno jadro stale
jede lehce nad normalni
prioritou. Pak se dostane druhy thread k praci velmi sporadicky (Windows na
to maji metodu takze tam
to rizeni daj ale je to hooooooodne malo casto, nasel bych i kolik sekund
ale ta knizka je fakt tlusta)


Takze doporuceni - sleep neni to spravne reseni, spravne reseni je
waitfor.... a prepinani threadu
do waitable stavu v okamziku kdy to ma vyznam. Neni to zadne pomahani
systemu, pokud se dobrovolne
nevzdas rizeni tak to windows akceptuji a thread ma pridelen maximalni cas
ktery je a tim omezi neco
co ten cas tak nepotrebuje (z jejich pohledu). Ty ale jako programator muzes
rict kdy chces aby thread
spal nebo alespon zkontroloval zda nahodou nekdo jiny neco nechce.


Cus
Radek

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.1.2009 14:38:24

From: "Ing. Jiri SOKOL" <js-delphi(zv)seznam(tec)cz>
> Chtel bych vas poprosit o radu - vysvetleni - jak a kdy presne je nutne
> synchronizovat kod podrizeneho vlakna s hlavnim vlaknem...

Pokud se vola metoda threadu ve kterem je smycka zprav pro uzivatelske
rozhrani tak vzdy, VCL neni thread-safe. Problem vznikne, pokud v takto
volane metode cekam na neco, co je synchronizovano z jineho vlakna. Pak
samozrejme dojde k deadlocku. Rozumne UI frameworky standardne podporuji jak
synchronni tak i asynchronni volani metod UI z jineho threadu, kterym se
nektere tyto problemy daji vyresit.

Petr Vones

Vista a prepinani threadu

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.1.2009 14:34:24

From: "Lebeda David" <david.lebeda(zv)comarr(tec)cz>
> Neslysel jste nekdo o necem takovem, nemate podobnou zkusenost?

Zacal bych hledat problem nekde jinde nez ve Viste :-) Koneckoncu to lze
zkusit jeste na Windows Serveru 2008 nebo betaverzi Windows 7. Neni spise
problem v nejake spatne napsane synchronizaci ktera se projevi az tam ?

Petr Vones

Vista a prepinani threadu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 23.1.2009 13:52:21

Ahoj,

mam multithreadovou aplikaci s desitkami threadu. Na Win XP funguje
dobre - thready se pekne stridaji a vsechny bezi. Ta sama aplikace
spustena na Vistach ma se stridanim problem - jsou thready, ktere treba
nekolik sekund nedostanou rizeni, jiny thread bezi bez preruseni pomerne
dlouho a ostatni maji smulu...moc nechapu. Experimentalne se zjistilo,
ze pokud napr. v threadu je nejaky cyklus, tak se stav vyrazne zlepsi,
kdyz v cyklu je nejaky sleep. Jako kdyby Visty, narozdil od XP, mely
nejaky problem s prepinanim threadu a muselo se jim (ale jen nekde)
pomahat sleepy.

Neslysel jste nekdo o necem takovem, nemate podobnou zkusenost?

David Lebeda

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 23.1.2009 10:32:09


>> Chtel bych vas poprosit o radu - vysvetleni - jak a kdy presne je nutne
>> synchronizovat kod podrizeneho vlakna s hlavnim vlaknem...
>>
>>
Ahoj,

obecne VCL neni threadsafe, takze synchronizovat by bylo treba typicky
to prekreslovani formulare apod.. Synchronize necha vykonat prislusnou
proceduru hlavni vlakno. Predpokladem tedy je, ze hlavni vlakno ma cas,
coz muze byt nekdy problem.

Nejlepsi ale je, pokusit se metode Synchronize vyhnout a odstranit tak
zavislost threadu na tom, co zrovna dela hlavni thread. Napr. v pripade
prekresleni neceho na formulari muze byt resenim poslat onomu oknu
message - okno, az bude mit cas, message zpracuje. Pokud cas zrovna
nema, bude zprava cekat ve fronte a puvodni thread muze vesele bezet dal.


David Lebeda

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Ivan Pavelka <i.pavelka(zv)volny(tec)cz> - 23.1.2009 09:10:04

Pisete, ze se vam prestanou zpracovavat dalsi zpravy.
Nemate tam nekde velikou programovou smycku a nebo casove narocny kod. Treba
to tam tak rejdi, ze se zadne dalsi zpravy nikam nedostanou. V takovem
pripade v te smycce obcas zavolam application.processmessages. To uvolni
tok zprav ostatnim aplikacim. Snad by to mohlo pomoci i ve vlaknu. Ale
nezkousel jsem, zda je to mozne z vlakna volat.

Ivan P.


----- Original Message -----
From: "Ing. Jiri SOKOL" <js-delphi(zv)seznam(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, January 22, 2009 10:09 PM
Subject: Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)> Ahoj vsem...
> Tak jsem po nekolikahodinovem hledani prisel na to, kdy mi aplikace
> vytuhne. Je to tehdy, kdyz "hlavni" vlakno zacne delat "neco" a prestane
> tak zpracovavat dalsi zpravy...
> V ten moment jsem se snazil o synchronizaci z podrizeneho vlakna a bylo
> to - pokud nekdy nekdo budete hledat chybu - zkuste zvazit, jestli nemate
> podobny problem...
>
> Chtel bych vas poprosit o radu - vysvetleni - jak a kdy presne je nutne
> synchronizovat kod podrizeneho vlakna s hlavnim vlaknem...
>
> Jak je to:
> - pri preklesni urcitych rpvku na formulari - labely, edity apod...
> - pri startu aplikace nacitam data - ty jsou konstantni po celou dobu behu
> cele aplikace - pristup k temto hodnotam
> - pokud chci pouzivat stejny kod jak v hlavni aplikaci, tak v podrizenem
> vlaknu - v mem pripade ukladani ruznych dat do souboru
>
> - atd - treba vas jeste neco napadne...
>
> Diky za skoleni :o)
> Hezky den vsem!
> Jirka
>
>
> --------------------------------------------------------------
> Ing. Jiri Sokol, jiri.sokol(zv)seznam(tec)cz, 724 144 097
> D6Prof+SP3; WinXP+SP2; Firebird 1.5.3
> programator amater
>
>
>

Vista a prepinani threadu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 23.1.2009 14:54:26

Petr Vones napsal(a):
> Zacal bych hledat problem nekde jinde nez ve Viste :-) Koneckoncu to lze
> zkusit jeste na Windows Serveru 2008 nebo betaverzi Windows 7. Neni spise
> problem v nejake spatne napsane synchronizaci ktera se projevi az tam ?
>
Jasne, u sebe se taky snazime...Nicmene thready jsou relativne
nezavisle, vzajemne na sebe necekaji apod.


V jednom z tech threadu byl napr cykl while, ktery inkrementoval
promennou, nic jineho. Jiny thread vypisoval hodnotu teto promenne. V
logu dlouho visela stale tataz hodnota, jednou za uhersky rok, nastal
nejaky inkrement. Cili do toho threadu to vubec nevlezlo. Na XP v pohode.

Ted jsem se docetl, ze Visty maji nove jadro, ktere uprednostnuje I/O
operace apod. Nemuze byt problem v tom, ze thready, v nichz probiha TCP
komunikace nebo cteni/zapisy na disk se vzajemne stridaji mezi sebou,
diky tomu, ze s necim komunikuji, zatimco thread, ktery jen v nejakem
cyklu na neco ceka, se nestihne dostat na radu nebo jen zridkakdy, kdyz
se nekde v komunikaci udela dira?


David Lebeda

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 23.1.2009 16:12:31

>V ten moment jsem se snazil o synchronizaci z podrizeneho vlakna a bylo to
- pokud nekdy nekdo budete hledat chybu - zkuste
nevim na jakych verzich Delphi je to podporovano ale presne jak psal Petr -
rozumne frameworky (on tim urcite myslel .NET :-D ale ja uz jsem mu to jeho
zbehnuti odpustil) to maji takze to maji i Delphi 2007 (zda nizsi nevim).

Jedna se o TThread.Queue proceduru - viz :

If you are unsure whether a method call is thread-safe, call it from within
the Synchronize or Queue methods to ensure that it executes in the main
thread.
Unlike Synchronize, execution of the current thread is allowed to continue.
The main thread will eventually process all queued methods.


Cus
Radek


Vista a prepinani threadu

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 23.1.2009 16:20:31

k tem threadum jedna vec - opravdu doporucuju knizku Windows Internals.
Clovek pak
pochopi spoustu veci a prestane nadavat na OS ale opravi si chyby ve svych
kodech :-)

Pro kazdeho do neprogramuje v nejakem polokompilovanem jazyku kde mezi nim a
systemem
stoji maminka framework ktera mu uklizi za rukama, obejde se bez P/Invoke a
nevadi mu ze
i blbej integer je reprezentovan jako objekt je to opravdu poucne cteni.

2Petr Vones : Ty nam do Delphi rejpes casto tak to jednou snad taky prezijes
;-)

Cus
Radek

Vlakna a pouziti Synchronize (WAS: Zabiti vlakna)

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 23.1.2009 08:54:02

On Thursday, January 22, 2009 10:09 PM ,
Ing. Jiri SOKOL <js-delphi(zv)seznam(tec)cz> wrote:

cili pouzivas TTHread.Synchronize?
IMHO nejjistejsi je v threadu vubec nic nekreslit apod = mit thread
jen na vypocty/zpracovani veci nesouvisejicich se zobrazenim.
Zobrazovani by mel pak provadet hlavni proces s tim, ze se data
predavaji nejakym rozumnym zpusobem. K synchronizaci (tj vyreseni
konkurencniho pristupu ke sdilenym promennym apod) se pouziji kriticke
sekce ci jine prostredky win API...


Jinak reseni (castecne?) Tveho problemu muze byt ze si das pozor a
hlavni proces pokud zabrousi nekam kde se delsi dobu nevola zpracovani
udalosti bude sam nucene volat ProcessMessages

D. Toman

> Ahoj vsem...
> Tak jsem po nekolikahodinovem hledani prisel na to, kdy mi aplikace
> vytuhne. Je to tehdy, kdyz "hlavni" vlakno zacne delat "neco" a
> prestane tak zpracovavat dalsi zpravy... V ten moment jsem se snazil
> o synchronizaci z podrizeneho vlakna a bylo to - pokud nekdy nekdo
> budete hledat chybu - zkuste zvazit, jestli nemate podobny
> problem...
>
> Chtel bych vas poprosit o radu - vysvetleni - jak a kdy presne je
> nutne synchronizovat kod podrizeneho vlakna s hlavnim vlaknem...
>
> Jak je to:
> - pri preklesni urcitych rpvku na formulari - labely, edity apod...
> - pri startu aplikace nacitam data - ty jsou konstantni po celou
> dobu
> behu cele aplikace - pristup k temto hodnotam
> - pokud chci pouzivat stejny kod jak v hlavni aplikaci, tak v
> podrizenem vlaknu - v mem pripade ukladani ruznych dat do souboru
>
> - atd - treba vas jeste neco napadne...
>
> Diky za skoleni :o)
> Hezky den vsem!
> Jirka
>
>
> --------------------------------------------------------------
> Ing. Jiri Sokol, jiri.sokol(zv)seznam(tec)cz, 724 144 097
> D6Prof+SP3; WinXP+SP2; Firebird 1.5.3
> programator amater

Delphi 2009

[*] delphak(zv)centrum(tec)cz - 27.1.2009 10:22:38

Ahoj, tak se zkousim ptat po nejake dobe znova, zda-li jiz ma nekdo prakticke zkusenosti s Delphi 2009 - hlavne co se tyce databazovych aplikaci a vetsiho mnozstvi rozsahlejsich tiskovych sestav. A hlavne o podporu UNICODE (jak v aplikaci tak v sestavach)

Jaky UNICODE report pro Delphi?

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 27.1.2009 09:54:36

zkus se podivat na fastReport
FastReport VCL 4.7 je i pro Delphi 2009

http://fast-report.com/en/news/4078.html

zkus si stahnout demo a uvidis
> V soucasnosti pouzivam Delphi 6 a QuickReport. Nyni bych mel vytvorit aplikaci pro Gruzii a nepodarilo se mi dohledat charset, ktery bych mohl pouzit. Vypada to, ze pod windows je podpora jejich znaku pouze v Unicode. Mate nekdo nejakou praktickou zkusenost kterak na to? Pripadne nejaky reportovaci nastroj pro Delphi, ktery umi unicode.
> Uvazoval jsem i o Delphi 2009, ktere by melo mit kompletni podporu unicode, ale tam pokud vim take zadny reportovaci anstroj neni.
>
>

Jaky UNICODE report pro Delphi?

[*] delphak(zv)centrum(tec)cz - 27.1.2009 09:46:36

V soucasnosti pouzivam Delphi 6 a QuickReport. Nyni bych mel vytvorit aplikaci pro Gruzii a nepodarilo se mi dohledat charset, ktery bych mohl pouzit. Vypada to, ze pod windows je podpora jejich znaku pouze v Unicode. Mate nekdo nejakou praktickou zkusenost kterak na to? Pripadne nejaky reportovaci nastroj pro Delphi, ktery umi unicode.
Uvazoval jsem i o Delphi 2009, ktere by melo mit kompletni podporu unicode, ale tam pokud vim take zadny reportovaci anstroj neni.

Dik!

Runtime prace s TCrossView ve FastReport 4

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 28.1.2009 08:22:03

Zdravim vsechny,

uz nekolik dni se morim s proniknutim do taju FastReport 4 (Delphi6). Potrebuju s reporty pracovat hlavne v runtime a s ne-DB daty, takze mi prijde vhod komponenta TCrossView. Zde uvadim priklad pouziti (demo dodavane s FR4):

procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent);
var
Cross: TfrxCrossView;
i, j: Integer;
begin
if c is TfrxCrossView then
begin
Cross := TfrxCrossView(c);

Table1.First;
i := 0;
while not Table1.Eof do
begin
for j := 0 to Table1.Fields.Count - 1 do
Cross.AddValue([i], [Table1.Fields[j].DisplayLabel], [Table1.Fields[j].AsString]);

Table1.Next;
Inc(i);
end;
end;
end;

a dale muj pokus o neco podobneho:

procedure TForm1.frxRBeforePrint(Sender: TfrxReportComponent);
var CT:TfrxCrossView;
v,s:array[1..2]of string;
begin

if Sender is TfrxCrossView then
begin
CT:=TfrxCrossView(Sender);
CT.AddValue([1],['Sloupec 1'],[0]);
CT.AddValue([1],['Sloupec 2'],['Nejaky text']);
end;
end;

to ovsem pri pokusu o vlozeni do CT zpusobi vyjimku EVariantError 'Inalid variant conversion'. Jak je to ale mozne, kdyz i v tom ukazkovem prikladu mu predava stringy???
Jak jsem tak zkousel vsechno mozne, tak nasledujici kod uz byl uspesnejsi:

procedure TForm1.frxRBeforePrint(Sender: TfrxReportComponent);
var CT:TfrxCrossView;
v,s:array[1..2]of string;
begin

if Sender is TfrxCrossView then
begin
CT:=TfrxCrossView(Sender);
v[1]:='Neco';
v[2]:='Jine';
s[1]:='Hura';
CT.AddValue([1],[v[1]],[5]);
CT.AddValue([1],[v[2]],[6]);
end;
end;

tabulka se jiz zobrazila stravne, ovsem kdyz napisu
CT.AddValue([1],[v[1]],[s[1]]);
CT.AddValue([1],[v[2]],[6]);

tak to opet hodi stejnou chybu... Problem je asi s temi variant typy. Neco jsem si o nich precetl, ale stejne mi nejde do hlavy, proc jednou ten string vezme a jindy ne. Muzete nekdo poradit, co delam spatne? FR se i podle teto konference pouziva hodne casto, takze to asi neni nejaka zfusovana komponenta, nad kterou bych mohl hned mavnout rukou.

Diky za nakopnuti, zdravi

M. Pojsl

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Vasek Zaruba <vasek.zaruba(zv)sielaff(tec)cz> - 28.1.2009 20:50:48

Jeste jsem nasel tento priklad:
procedure TCreateTableForm.CreateMethod1Click(Sender: TObject);
begin
With Dbf1 do begin
Close;
TableName := 'table1.dbf';
// Method 1
with FieldDefs do begin
Clear;
Add('Field1',ftString,10,False);
Add('Field2',ftInteger,0,False);
Add('Address',ftMemo,0,False);
Add('Date',ftDate,0,False);
end;
CreateTable;
Open;
end;
end

http://tdbf.sourceforge.net/

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Jan Sebelik
Sent: Wednesday, January 28, 2009 8:33 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Vytvoreni DBF tabulky pomoci ADO v Delphi


> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Vasek Zaruba
> Ja to obchazim pomoci componenty TDbf (neni potreba BDE)

No jo.
Ale soudim, ze tady slo hlavne o tu univerzalitu ADO, ktere je na kazdem
pocitaci.
Prave proto jsem se taky zbavil BDE.
Jedna utilitka meho programu muze exportovat data kamkoli, kam ji napisu ADO
Connection String.
Jenom zmenou Connection String muzu exportovat do MSSQL, ORACLE, CSV, DBF,
...
Co si uzivatel zamane ...

Honza

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Vasek Zaruba <vasek.zaruba(zv)sielaff(tec)cz> - 28.1.2009 20:16:46

Ja to obchazim pomoci componenty TDbf (neni potreba BDE)
datamodule1.vzorDB.Close;
datamodule1.vzorDB.TableName:= soubor;
datamodule1.vzorDB.CreateTable;

kde mam nastaveno u TDBF

StoreDefs = True
TableName = 'VZOR.DBF'
TableType = ttFoxPro

Pouzivam starsi verzi TDbf, s poslednima jsem se trochu trapil


-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Jiri Jelinek
Sent: Thursday, January 22, 2009 2:09 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Vytvoreni DBF tabulky pomoci ADO v Delphi


>
> > Muze mi nejaka dobra duse poradit, jak vytvorit DBF tabulku pomoci ADO
> > v Delphi ?
> > Nejak se mi dneska nedari.
> > S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
>
> Nakonec zustal u toho, ze mam template prazdne tabulky, kterou zkopiruju
jako soubor a pres ADO do ni teprve nacpu data.
> Moc jsem te asi nepotesil, ale zkousel jsem to a taky se mi nedarilo.
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW = www.haes(tec)cz = Vojtiskova
321 = 507 81 Lazne Belohrad ====================================

Ja mam nactenou hlavicku dbf souboru jako constantu: pole bytu z prazdne
tabulky (nemusi se pak distribuovat s exe prazdne dbf soubory jako
template). V runtime, pak jen zalozim novy soubor, ulozim hlavicku a pak uz
lze pouzit ADO komponenty.

JiJe.

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Vasek Zaruba <vasek.zaruba(zv)sielaff(tec)cz> - 28.1.2009 20:44:48

TDBF NEpotrebuje BDE a pouzivam ji prave jen k vytvoreni souborove tabulky
dbf.
Pro access, sql atd pouzivam prikaz sql create ...

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Jan Sebelik
Sent: Wednesday, January 28, 2009 8:33 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Vytvoreni DBF tabulky pomoci ADO v Delphi


> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Vasek Zaruba
> Ja to obchazim pomoci componenty TDbf (neni potreba BDE)

No jo.
Ale soudim, ze tady slo hlavne o tu univerzalitu ADO, ktere je na kazdem
pocitaci.
Prave proto jsem se taky zbavil BDE.
Jedna utilitka meho programu muze exportovat data kamkoli, kam ji napisu ADO
Connection String.
Jenom zmenou Connection String muzu exportovat do MSSQL, ORACLE, CSV, DBF,
...
Co si uzivatel zamane ...

Honza

Vytvoreni DBF tabulky pomoci ADO v Delphi

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 28.1.2009 20:32:47

> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Vasek Zaruba
> Ja to obchazim pomoci componenty TDbf (neni potreba BDE)

No jo.
Ale soudim, ze tady slo hlavne o tu univerzalitu ADO, ktere je na kazdem pocitaci.
Prave proto jsem se taky zbavil BDE.
Jedna utilitka meho programu muze exportovat data kamkoli, kam ji napisu ADO Connection String.
Jenom zmenou Connection String muzu exportovat do MSSQL, ORACLE, CSV, DBF, ...
Co si uzivatel zamane ...

Honza

Jaky UNICODE report pro Delphi?

[*] rkubat(zv)email(tec)cz - 29.1.2009 15:11:54

Dobry den vsem,

1. Delphi 2009 obsahuje pro tvorbu vystupnich sestav nastroj Nevrona Rave
Reports 7.6 - nastroj je v cene produktu
2. Alternativne si muzete poridit QuickReport 5.04, ktery plne podporuje
Unicode. QBS k tomu pise:

"In Delphi 2009 all text is unicode by default, and the QR components have
been updated to inherit this capability from the new VCL. Any international
character sets and fonts supported by the operating system may be processed
and displayed in QuickReports documents. In addition, the encoding of output
files from the exporting components may be selected with a new property
'TextEncoding' which inherits its value from the new TEncoding class. The
output types supported are ASCII, BigEndianUnicode, Unicode(UTF-16), UTF-7
and UTF-8. This does not apply to PDF exports, which must be in ASCII or
UTF-8."

http://www.embt(tec)cz/cs/produkty/89-quickreport-5-04-professional.html

Zdravi, -- Richard Kubat


----- Original Message -----
From: <delphak(zv)centrum(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 27, 2009 9:46 AM
Subject: Jaky UNICODE report pro Delphi?>V soucasnosti pouzivam Delphi 6 a QuickReport. Nyni bych mel vytvorit
>aplikaci pro Gruzii a nepodarilo se mi dohledat charset, ktery bych mohl
>pouzit. Vypada to, ze pod windows je podpora jejich znaku pouze v Unicode.
>Mate nekdo nejakou praktickou zkusenost kterak na to? Pripadne nejaky
>reportovaci nastroj pro Delphi, ktery umi unicode.
> Uvazoval jsem i o Delphi 2009, ktere by melo mit kompletni podporu
> unicode, ale tam pokud vim take zadny reportovaci anstroj neni.
>
> Dik!

SQL dotaz zretezeni

[*] Petr Vobornik <vobornik(zv)apel(tec)cz> - 29.1.2009 15:19:54

Zdravim,

mam napr. tabulku:

latka | mozstvi | misto
-------------------------------------------
lih | 1l | objekt 1
benzin | 5l | objekt 2
toulen | 3l | objekt 3
lih | 3l | objekt 2
benzin | 4l | objekt 1
toulen | 2l | objekt 3
benzin | 2l | objekt 3

potrebuji SQL dotaz pro ADO, Access MDB, D6, ktery vrati


lih | 4l | objekt 1, objekt 2
benzin | 11l | objekt 1, objekt 2, objekt 3
toulen | 5l | objekt 3


Da se toto vubec resit ? Na webu jsem nasel reseni pomoci GROUP_CONCAT, ale to bohuzel Access MDB nepodporuje.

Predem dekuji za jakykoliv napad, nebo informaci, ze to nejde.


Jaky UNICODE report pro Delphi?

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 29.1.2009 15:25:55

----- Original Message -----
From: <delphak(zv)centrum(tec)cz>> Pripadne nejaky reportovaci nastroj pro Delphi, ktery umi unicode.

Kombinace Delphi 2009 + Sinea 2009.

Vaclav Krmela


Sluzba pro auto-upgrade (podepsani souboru)

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 30.1.2009 19:17:34

Dobry den,


PF> potrebuji vyresit (tedy spis predelat) vzdaleny autoupgrade aplikace
PF> pres internet.
PF> Nyni je to provizorne reseno jako vlakno na pozadi aplikace, ktere se
PF> diva na ftp server, zda pribyla verze, a kdyz najde novou, pres ftp ji
PF> stahne, rozbali, a vicekrokove restartne aplikaci.
PF> Problem je v tom, ze na to potrebuje ta aplikace prava na prepis sama
PF> sebe, coz je samozrejme bezpecnostni problem.
PF> Jako prvni me napadlo, ze ten stahovaci-upgradovaci mechanismus
PF> presunu do sluzby bezici pod uctem administratora a samotna aplikace
PF> uz bude mit bezna uzivatelska prava.
PF> Ovsem protoze ta sluzba (kdyz uz tam bude) bude plnit i jine funkce na
PF> vyzadani z centraly (replikace dat, prenos DB, logu, zmeny lokalni
PF> konfigurace, upgrade Firebirdu...) a hlavne casem kdovi co jeste, je
PF> nutne, aby umela upgradovat i sama sebe. A jsme zase tam kde jsme byli
PF> - diky pravu administratora bezpecnostni problem.

Jakym zpusobem instalujete progam. Pokud pomoci Sluzby Windows
Installer, tak to neni problem, protoze tato sluzba je presne na toto
urcena tedy pri zjisteni nove verze stahnete MSI balicek a tento
spustite a zaroven ukoncite aplikaci. Timto lze i pro administratory
snadno resit updaty a upgrade na siti.

Jinak lze pouzit i instalacni sluzby InstallShieldu, ktery ma take
samostatnou sluzbu pro zjistovani upgrade, a vyuziva to fura aplikaci.

Resenim je i jen samostatna jednoducha sluzba bez tech Vasich dalsich
obezlicek pouze pro instalaci upgrade ci update.


--
S pozdravem,
Mgr. Martin Radvansky

Sluzba pro auto-upgrade (podepsani souboru)

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 30.1.2009 17:47:28

Dobry den vsem,
potrebuji vyresit (tedy spis predelat) vzdaleny autoupgrade aplikace
pres internet.
Nyni je to provizorne reseno jako vlakno na pozadi aplikace, ktere se
diva na ftp server, zda pribyla verze, a kdyz najde novou, pres ftp ji
stahne, rozbali, a vicekrokove restartne aplikaci.
Problem je v tom, ze na to potrebuje ta aplikace prava na prepis sama
sebe, coz je samozrejme bezpecnostni problem.
Jako prvni me napadlo, ze ten stahovaci-upgradovaci mechanismus
presunu do sluzby bezici pod uctem administratora a samotna aplikace
uz bude mit bezna uzivatelska prava.
Ovsem protoze ta sluzba (kdyz uz tam bude) bude plnit i jine funkce na
vyzadani z centraly (replikace dat, prenos DB, logu, zmeny lokalni
konfigurace, upgrade Firebirdu...) a hlavne casem kdovi co jeste, je
nutne, aby umela upgradovat i sama sebe. A jsme zase tam kde jsme byli
- diky pravu administratora bezpecnostni problem.
Jak byste to resili vy?
Me napadl digitalni podpis exe (nebo by mozna stacilo stahovaneho
zipu), ale nevim o tom zatim vubec nic (jak podepsat exe, jak podpis
overit) a z toho co jsem vygoogloval zatim moudry nejsem.
Neco jsem nasel i o MSI a jeho remote install, ale ten je zrejme
zavisly na group policy, coz u zakaznika neprojde, kdyz uz maji tech
asi 130 pobocek bez nej.

Muzete me prosim popostrcit spravnym smerem?

Diky moc, PF. (D7E, WinXP).

DBComparer VCL (WAS: Firebird a Delphi 7)

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 04.2.2009 20:29:25


Ahoj,

Pri prilezitosti diskuze o pristupovych komponentach
zminuji produkt DB Comparer VCL od CleverComponents.

Shanim jejich podporu pro D2009 a firma CleverComponets
me i jinym kolegum nekdy od rijna 2008 vubec neodpovedela
ani na jeden mail tykajici se tohoto problemu. Posledni podporu
zverejnili pro D2007 nekdy v rijnu 2007.

Vite nekdo zda tato firma jeste zije nebo jen dozivaji jejich stranky
a na nich dostupne produkty ?

Dekuji PMal


Firebird a Delphi 7

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 04.2.2009 20:13:24

> zvazujeme moznost prechodu na SQL server Firebird. Pri te prilezitosti
> bych se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
> osvedcily a jake administrativni nastroje doporucujete. Prilis nezalezi na
> tom, jestli jsou free nebo placene, primarni jsou funkcni vlastnosti. U
> komponent pro D7 je nezbytnou podminkou dostupnost zdrojovych textu.
> Dekuji predem za doporuceni.

My pouzivame "Unified interbase" z http://www.progdigy.com/?page_id=5
presneji receno, nejnovejsi zdrojaky jsou na SVN na SourceForge:
https://sourceforge.net/projects/uib

Jsou to unity a komponenty pro pristup od Interbase, pres Firebird, az po
Yaffil. Zadne velke okolky, jsou primo na telo, takze jsou velmi rychle a
bez problemu je pouzivam v drtivem multithreadovem aplikacnim serveru. ;)

Je to opensource, free, a je to stale udrzovane. (Napriklad byla nedavno
pridana podpora i pro IB2009)


--
Lukas Gebauer.

E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library


Firebird a Delphi 7

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 04.2.2009 20:21:25

Ahoj,

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Jan Sebelik

> Pak jsou tady jeste asi dost dokonale IBObjects (placene),

Ano, souhlas (pouzival sem v D5 a D7).
Nicmene posledni vydani ze srpna 2007!
Hlaska "D2009/IB2009 support coming soon! " uz pres rok
zarici na jejich strankach je pekna :) Vzhledem k tomu, ze
pouzivam Developer Express komponety tak potrebuji opravdu jen
rozhrani pro pristup k ruznym DB strojum tak sem presel
na UniDAC (http://devart.com/unidac/compatibility.html#compatibility_ides)
k naproste spokojenosti (D2007, ale podporuji nekde od D6).
Pri dodrzeni "standardu SQL" ses schopen obslouzit jednim rozhranim
MSSQL, Firebird/Interbase, Oracle (nativne bez Oracle opicaren), MySQL
a nyni i PosgreSQL.

> Pro administraci databaze se vseobecne a opravnene doporucuje
> IBExpert.

Ano, nic jineho nepouzivam. Za tech par euro je to super nastroj.

IBConsole proc ne, to je veci zvyku.

PS: Subjektivni nazory :)

PMal


prechod z BDE na ADO

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 04.2.2009 19:31:22

> Nejde mi priradit do TADOQuery do SQL.Text nasledujici sql prikaz:
> select co.*, (select cb.NAZEV from CIS_BANKY cb where
> co.KODBANKY=cb.KOD) as
> NAZEV from CIS_ORGJEDNOTEK co where co.NOJEDNOTKA=:XXXX
>
> Setkali jste se s timto problemem a netusite kde
> muze byt problem? Pouzivam Delphi 7.0.

No, to je sice hezky, ze pouzivas D7, ale vubec jsi nenapsal, nad jakou databazi pracujes.

Ja bych prislusny select vyzkousel nejprve primo proti databazi pres nejakou jeji prislusnou konzoli. Pro MSSQL napr. Management Studio.
A pokud mi to projde, musi to projit i pres ADO.

Koneckoncu, kdyz se podivas do zdrojaku, ADO nedela nic jinyho, ze TADODataSet.CommandText preda do databaze.

Pokud je mi znamo, pred parametrem se nekdy uvadi "(zv)", ale mne ADO funguje i s tema dvojteckama.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Firebird a Delphi 7

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 04.2.2009 19:21:21

> se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
> osvedcily a jake administrativni nastroje doporucujete.
> Jiri Foldyna

Nevim, asi jak kdo.

Ja bez sebemensich problemu pouzivam dlouhodobe IBX 7.08 (verze 29.6.2003),
nejnovejsi mam stazeno IBX 7.11 (verze 3.10.2006 - nezkousel jsem).

Pozor, puvodni verze dodana s D7 obsahovala fatalni chyby.
(provider support, konkretne metoda IBCustomDataSet.PS_ExecuteStatement byla uplne spatne).

Pak jsou tady jeste asi dost dokonale IBObjects (placene), ale ja nevim, co bych tam nasel vic, nez v IBX.
(taky jsem dost linej se neco ucit)
Jo, snad podporuji datovy typ "array", ale ja nevim, k cemu bych to vyuzil.

Pro administraci databaze se vseobecne a opravnene doporucuje IBExpert.
(personal edition Free, vyssi verze jsou placene)
Ale abych si rejpnul:
Stejne mam nejradsi IBConsole. Ona sice obcas spadne (tak 1x za tyden), ale s ohledem na rychlost, jednoduchost ovladani a primocarost reseni vseho potrebneho se mi zda 10x produktivnejsi nez dokonaly IBExpert.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Firebird a Delphi 7

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 04.2.2009 18:41:18

Ahoj,

zvazujeme moznost prechodu na SQL server Firebird. Pri te prilezitosti bych
se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
osvedcily a jake administrativni nastroje doporucujete. Prilis nezalezi na
tom, jestli jsou free nebo placene, primarni jsou funkcni vlastnosti. U
komponent pro D7 je nezbytnou podminkou dostupnost zdrojovych textu.
Dekuji predem za doporuceni.

Jiri Foldyna


Synaser - parametr neni spravny - error 87

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 04.2.2009 17:03:12

Dne Wed, 04 Feb 2009 16:35:10 +0100 Tomas Rosa <trosa(zv)seznam(tec)cz> napsal/-a:

> com.Config(fBaud,fBits,fParity,fStop,false,true);
> //com.config(9600,8,'N',0,false,true);
> googlil jsem a nic. Netusi nekdo cim by to mohlo byt a co delam spatne?

Hodnotu fStop sis zkontroloval?

Takovou typickou chybou byva, ze to lidi
nastavuji jako pocet, ale ve skutecnosti
je to enum.


HTH, pf


Synaser - parametr neni spravny - error 87

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 04.2.2009 17:01:12

> na nekterych seriovych portech me pri pokusu o otevreni portu
> vyskoci
> error - viz %SUBJ%. Postup otevirani portu je:

Takovato chyba nastane tehdy, pokud se pokousis seriovy port nastavit
na takovou kombinaci parametru, ktere onen seriovy port proste neumi.
(Pricemz chipsety v ruznych pocitacich jsou ruzne, a tak umi ruzne
mnoziny parametru!)

Take byva castou chybou programatoru, ze misto preddefinovanych
konstant na nastaveni stopbitu pouziji primo ciselnou hodnotu, a
nedojde jim, ze 1= 1.5 stopbitu a 2=jeden stopbit. ;)
--
Lukas Gebauer.

E-mail: gebauerl(zv)mlp(tec)cz
http://synapse.ararat(tec)cz/ - Ararat Synapse - TCP/IP Lib.

Synaser - parametr neni spravny - error 87

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 04.2.2009 16:35:10

Zdravim,

na nekterych seriovych portech me pri pokusu o otevreni portu vyskoci
error - viz %SUBJ%. Postup otevirani portu je:

com:=TBlockSerial.Create;
com.Connect(fPort);
Outputdebugstring(pchar(format('com.Connect, %d,
%s',[com.LastError,com.GetErrorDesc(com.LastError)])));
com.Config(fBaud,fBits,fParity,fStop,false,true);
//com.config(9600,8,'N',0,false,true);
Outputdebugstring(pchar(format('com.Config, %d,
%s',[com.LastError,com.GetErrorDesc(com.LastError)])));

googlil jsem a nic. Netusi nekdo cim by to mohlo byt a co delam spatne?

TR

prechod z BDE na ADO

[*] dan <xfojtik(zv)centrum(tec)cz> - 04.2.2009 16:09:08

Bohuzel tohle neni tento problem. Chyba se mi stala v aplikaci, tak jsem si
vytvoril extra miniaplikaci s par radky. Dela to porad...

Dan

>Setkal jsem se s jednim problemem kolem ADO. Obcas si ADO komponenta
>blbe generuje seznam parametru. Myslim, ze pomohlo, kdyz jsem tu
>komponentu smazal a placl ji na formular znovu.
>
>
>Ladislav Stary

Teplota CPU

[*] Petr Vones <conference(zv)petrvones(tec)net> - 04.2.2009 15:59:08

From: "Vasek Zaruba" <vasek.zaruba(zv)sielaff(tec)cz>
> Pokousel jsem se to vyresit pomoci WMI, Win32_TemperatureProbe, MagWMI i
> externi dll. Stahnul jsem nekolik "prikladu", ale vzdy to skoncilo errorem
> nebo nesmyslnou hodnotou. Mam vubec sanci to rozumne vyresit? Nemusim mit

Pokud si vzpominam, tak ta hodnota co to vraci neni skutecna teplota, ale
musi se jeste prepocitat (nelinearne) podle nejakeho vzorce. A ten se lisi
dle typu snimace te teploty.

Ohledne WMI doporucuju stahnout nejaky "WMI Explorer" a v nem si to nejdrive
zkusit. Napriklad:
http://thepowershellguy.com/blogs/posh/archive/2007/03/22/powershell-wmi-explorer-part-1.aspx
http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en

Petr Vones

prechod z BDE na ADO

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 04.2.2009 15:49:07

Setkal jsem se s jednim problemem kolem ADO. Obcas si ADO komponenta
blbe generuje seznam parametru. Myslim, ze pomohlo, kdyz jsem tu
komponentu smazal a placl ji na formular znovu.


Ladislav Stary


dan napsal(a):
> Dobry den,
> Momentalne predelavam aplikaci, ktera doted pracovala pod BDE. Pri prechodu
> na ADO jsem ale narazil na nasledujici problem:
> Nejde mi priradit do TADOQuery do SQL.Text nasledujici sql prikaz:
>
> select co.*, (select cb.NAZEV from CIS_BANKY cb where co.KODBANKY=cb.KOD) as
> NAZEV from CIS_ORGJEDNOTEK co where co.NOJEDNOTKA=:XXXX
>
> Tentyz prikaz pod BDE samozrejme funguje v poradku. Zajimave je ze prikaz je
> funkcni, kdyz odstranim ten podselect, pripadne kdyz na konci nepouziji
> parametr XXXX a misto nej dam primo hodnotu. Predpokladam ze jde o nejakou
> chybu v ADO knihovnach. Setkali jste se s timto problemem a netusite kde
> muze byt problem? Pouzivam Delphi 7.0.
>
> Dan

prechod z BDE na ADO

[*] dan <xfojtik(zv)centrum(tec)cz> - 04.2.2009 15:39:06

Dobry den,
Momentalne predelavam aplikaci, ktera doted pracovala pod BDE. Pri prechodu
na ADO jsem ale narazil na nasledujici problem:
Nejde mi priradit do TADOQuery do SQL.Text nasledujici sql prikaz:

select co.*, (select cb.NAZEV from CIS_BANKY cb where co.KODBANKY=cb.KOD) as
NAZEV from CIS_ORGJEDNOTEK co where co.NOJEDNOTKA=:XXXX

Tentyz prikaz pod BDE samozrejme funguje v poradku. Zajimave je ze prikaz je
funkcni, kdyz odstranim ten podselect, pripadne kdyz na konci nepouziji
parametr XXXX a misto nej dam primo hodnotu. Predpokladam ze jde o nejakou
chybu v ADO knihovnach. Setkali jste se s timto problemem a netusite kde
muze byt problem? Pouzivam Delphi 7.0.

Dan

Teplota CPU

[*] Vasek Zaruba <vasek.zaruba(zv)sielaff(tec)cz> - 04.2.2009 15:05:04

Ahoj,
Vyvstal mi problem, hlidat v app teplotu procesoru (pc je zavrene ve stroji). Zjistil jsem, ze to neni vubec zadna sranda. Resil jste to nekdy nekdo?
Pokousel jsem se to vyresit pomoci WMI, Win32_TemperatureProbe, MagWMI i externi dll. Stahnul jsem nekolik "prikladu", ale vzdy to skoncilo errorem nebo nesmyslnou hodnotou. Mam vubec sanci to rozumne vyresit? Nemusim mit informaci jako je u HWMonitoru, staci mne opradu je-li teplota OK a jest-li se se toci ventilator. Navic je to temer vzdy stejny procesor i deska u cca 25 PC.
Dik za kazde nakopnuti

DSPack

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 04.2.2009 14:29:01

Ahoj,
pro zobrazovani video souboru pouzivam componenty TFilterGraph a
TDSVideoWindowEx2, to proto, abych mohl pres video zobrazovat nejake
informace.
Ty zobrazuuju v TImage, ktery lezi na TPanel a to vsechno na
TDSVideoWindowEx2, s tim, ze TPanel.Color nastavuji na
TDSVideoWindowEx2.ColorKey.
Vse fungovalo az do doby, kdy jsem dostal za ukol udelat z videa snap.
Pridal jsem tedy TSampleGrabber a s jeho pomoci ziskal moznost delat
snimky z videa.
Bohuzel se pritom prestal zpruhlednovat TPanel s TImage. Da se nejak
tato neprijemnost odstranit?

Vaclav Sazima

prechod z BDE na ADO

[*] dan <xfojtik(zv)centrum(tec)cz> - 05.2.2009 08:40:10

Ahoj
Jde o MSSQL2005, ten SQL prikaz je funkcni jak primo v konzoli, tak pri
pouziti klasickych TDatabase a TQuery komponent. Problem nastava hned pri
prirazeni textu toho SQL dotazu do ADOQuery.SQL.Text. Konkretne to jde do
procedure TADOCommand.AssignCommandText a v ni to pada v InitParameters.

Dan


>> Nejde mi priradit do TADOQuery do SQL.Text nasledujici sql prikaz:
>> select co.*, (select cb.NAZEV from CIS_BANKY cb where
>> co.KODBANKY=cb.KOD) as
>> NAZEV from CIS_ORGJEDNOTEK co where co.NOJEDNOTKA=:XXXX>
>>
>> Setkali jste se s timto problemem a netusite kde
>> muze byt problem? Pouzivam Delphi 7.0.
>
>No, to je sice hezky, ze pouzivas D7, ale vubec jsi nenapsal, nad jakou
>databazi pracujes.
>
>Ja bych prislusny select vyzkousel nejprve primo proti databazi pres
>nejakou jeji prislusnou konzoli. Pro MSSQL napr. Management Studio.
>A pokud mi to projde, musi to projit i pres ADO.
>
>Koneckoncu, kdyz se podivas do zdrojaku, ADO nedela nic jinyho, ze
>TADODataSet.CommandText preda do databaze.
>
>Pokud je mi znamo, pred parametrem se nekdy uvadi "(zv)", ale mne ADO funguje
>i s tema dvojteckama.

>Honza


prechod z BDE na ADO

[*] Jiri Jelinek <jiri.jelinek(zv)asei(tec)cz> - 05.2.2009 09:30:13

Zdravim,
napsal bych to asi takto (urcite optimalizovanejsi kod (a urcite projde pres
ADO) a jeste navic pokud pouzivas v select * ma ADO velkou rezii s
metadaty):

select co.KODBANKY, cb.NAZEV
from CIS_ORGJEDNOTEK co, CIS_BANKY cb
where co.KODBANKY=cb.KOD and co.NOJEDNOTKA=:XXXX

JiJe

>
>Ahoj
>Jde o MSSQL2005, ten SQL prikaz je funkcni jak primo v konzoli, tak pri
pouziti klasickych TDatabase a TQuery komponent. Problem nastava hned pri
prirazeni textu toho SQL dotazu do ADOQuery.SQL.Text. Konkretne to jde do
procedure TADOCommand.AssignCommandText a v ni to pada v InitParameters.
>
>Dan
>
>
>>> Nejde mi priradit do TADOQuery do SQL.Text nasledujici sql prikaz:
>>> select co.*, (select cb.NAZEV from CIS_BANKY cb where
>>> co.KODBANKY=cb.KOD) as
>>> NAZEV from CIS_ORGJEDNOTEK co where co.NOJEDNOTKA=:XXXX>
>>>
>>> Setkali jste se s timto problemem a netusite kde muze byt problem?
>>> Pouzivam Delphi 7.0.
>>
>>No, to je sice hezky, ze pouzivas D7, ale vubec jsi nenapsal, nad jakou
>>databazi pracujes.
>>
>>Ja bych prislusny select vyzkousel nejprve primo proti databazi pres
>>nejakou jeji prislusnou konzoli. Pro MSSQL napr. Management Studio.
>>A pokud mi to projde, musi to projit i pres ADO.
>>
>>Koneckoncu, kdyz se podivas do zdrojaku, ADO nedela nic jinyho, ze
>>TADODataSet.CommandText preda do databaze.
>>
>>Pokud je mi znamo, pred parametrem se nekdy uvadi "(zv)", ale mne ADO
>>funguje i s tema dvojteckama.
>
>>Honza

Firebird a Delphi 7

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 05.2.2009 09:32:13

Jiri Foldyna napsal(a):
> Ahoj,
>
> zvazujeme moznost prechodu na SQL server Firebird. Pri te prilezitosti bych
> se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
> osvedcily

Prevazne pouzivame aktualizovane IBX, ktere jsou soucasti D7. Nedavno
jsme poridili FIBPlus. Oproti IBX, ktere oficialne podporuji pouze
Interbasi, jsou FIBPlus site na miru i Firebirdu, tudiz umi vyuzit i
nove vlastnosti serveru a moznosti komunikace s nim.
Urcite bych pro novy projekt pouzil FIBPlus misto IBX.

> a jake administrativni nastroje doporucujete.

Nejradeji mam FSQL a IBExperta. IBExpert mame koupeny, je to vyborny
nastroj se spoustou moznosti. FSQL je pro me mnohem rychlejsi pro
jednoduche dotazy nad volne lozenou databazi. Do IBExperta je nutne
databaze "zdlouhave" registrovat, takze neni tolik operativni. Zase
IBExpert jednoduse umoznuje prochazet entity v databazi, systemove
tabulky, ma analyticke nastroje,... Prote podle potreby.

> Dekuji predem za doporuceni.

Doporucuji stahnou zkusebni verze obojiho a vyzkouset. Neni nad
vlastni zkusenost.

> Jiri Foldyna

Peca / Petr Palicka

prechod z BDE na ADO

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 05.2.2009 10:18:16

> select co.KODBANKY, cb.NAZEV
> from CIS_ORGJEDNOTEK co, CIS_BANKY cb
> where co.KODBANKY=cb.KOD and co.NOJEDNOTKA=:XXXX
> JiJe

A jo, ja jsem si nevsimnul, ze ten vlozenej selekt je tak jednoduchej, ze neni vubec potreba.

Mozna bych jeste radsi pouzil "join" - je to citelnejsi a nekteri tvrdi, ze i rychlejsi.

select co.KODBANKY, cb.NAZEV from CIS_ORGJEDNOTEK co
join CIS_BANKY cb on co.KODBANKY=cb.KOD
where co.NOJEDNOTKA=:XXXX

Ale jeste k tem parametrum v ADO a puvodnimu selektu.
a)
Pres TADODataSet.Parameters.Count a TADODataSet.Parameters[i].Name bych si overil, ze se nic automaticky nevytvorilo.
b)
Pridal bych parametr explicitne
TDataDataSet.Parameters.CreateParametr('XXXX',ftInteger,pdInput,0,Value);
nebo
TDataDataSet.Parameters.AddParameter(...)

A jeste:
Jak vidno, radsi pouzivam TADODataSet nez TADOQuery. Pokud se podivas do zdrojaku, uvidis, ze maji spolecnoho predka TCustomADODataSet a prilis se od nej nelisi. Pikantni na tom ale je napriklad to, ze TCustomADODataSet a stejne tak TADODataSet umi "IndexFieldNames", ale u TADOQuery tato property z me neznamych pricin neni vubec zverejnena.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Firebird a Delphi 7

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 05.2.2009 10:52:18

Pro pristup k databazi Firebirdu pouzivame komponenty dbExpress, ktere jsou
soucasti Delphi. Jsou jednoduche, primocare, spolehlive. Nastroj na spravu
databazi jsme pouzivala IBConsoli, postupem casu jsem si napsali vlastni
servisni program, ve kterem mame vsechny potrebne servisni funkce pro praci
s databazi, na nektere volame externi program gbak a gfix.

Marek Dostal
D7Prof, WinXP, FireBird


----- Original Message -----
From: "Jiri Foldyna" <jiri.f(zv)avizo(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, February 04, 2009 6:41 PM
Subject: Firebird a Delphi 7


> Ahoj,
>
> zvazujeme moznost prechodu na SQL server Firebird. Pri te prilezitosti
> bych
> se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
> osvedcily a jake administrativni nastroje doporucujete. Prilis nezalezi na
> tom, jestli jsou free nebo placene, primarni jsou funkcni vlastnosti. U
> komponent pro D7 je nezbytnou podminkou dostupnost zdrojovych textu.
> Dekuji predem za doporuceni.
>
> Jiri Foldyna
>
>
>
>

prechod z BDE na ADO

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 05.2.2009 13:16:28

Odpovidal jsem ti spravne, problem je, ze ma komponenta nastaveny spatne
parametry.

Ta komponenta si to zrejme nastavuje blbe. Pokud uz si nejak nastavila
jednou parametry, tak si je zrejme pri prirazeni jineho dotazu znovu z
dotazu nevygeneruje.


Ladislav Stary


dan napsal(a):
> Ahoj
> Jde o MSSQL2005, ten SQL prikaz je funkcni jak primo v konzoli, tak pri
> pouziti klasickych TDatabase a TQuery komponent. Problem nastava hned pri
> prirazeni textu toho SQL dotazu do ADOQuery.SQL.Text. Konkretne to jde do
> procedure TADOCommand.AssignCommandText a v ni to pada v InitParameters.
>
> Dan

Firebird a Delphi 7

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 05.2.2009 13:22:28

p.s. Omlouvam se za preklepy, psal jsem to v rychlosti... :-)
"jsme pouzivali"
"jsme si napsali"

----- Original Message -----
From: "Marek Dostal" <konf(zv)agnis(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, February 05, 2009 10:52 AM
Subject: Re: Firebird a Delphi 7


> Pro pristup k databazi Firebirdu pouzivame komponenty dbExpress, ktere
> jsou
> soucasti Delphi. Jsou jednoduche, primocare, spolehlive. Nastroj na spravu
> databazi jsme pouzivala IBConsoli, postupem casu jsem si napsali vlastni
> servisni program, ve kterem mame vsechny potrebne servisni funkce pro
> praci
> s databazi, na nektere volame externi program gbak a gfix.
>
> Marek Dostal
> D7Prof, WinXP, FireBird
>
>
> ----- Original Message -----
> From: "Jiri Foldyna" <jiri.f(zv)avizo(tec)cz>
> To: <delphi-l(zv)clexpert(tec)cz>
> Sent: Wednesday, February 04, 2009 6:41 PM
> Subject: Firebird a Delphi 7
>
>
>> Ahoj,
>>
>> zvazujeme moznost prechodu na SQL server Firebird. Pri te prilezitosti
>> bych
>> se rad zeptal zkusenejsich uzivatelu, jake komponenty pro D7 se vam
>> osvedcily a jake administrativni nastroje doporucujete. Prilis nezalezi
>> na
>> tom, jestli jsou free nebo placene, primarni jsou funkcni vlastnosti. U
>> komponent pro D7 je nezbytnou podminkou dostupnost zdrojovych textu.
>> Dekuji predem za doporuceni.
>>
>> Jiri Foldyna
>>
>>
>>
>>
>>
>
>
>

Firebird a Delphi 7

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 06.2.2009 07:27:34

> Pro pristup k databazi Firebirdu pouzivame komponenty dbExpress,
> Marek Dostal

Taky dobre reseni - ale proc to sem jeste pisu, kdyz uz toho bylo tolik receno.

dbExpress ke sve funkcnosti vyzaduje zapojeni Midas, tedy TClientDataSet + TDataSetProvider.
Toto reseni ma mnoho vyhod, mnoho tady o tom uz bylo napsano.

At uz zvolis cokoli z toho, co tady bylo receno (IBX, FIBPlus, IBObjects, ...), prechod na architekturu s TClientDataSet bych velmi doporucoval.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

DBGrid z JVCL - zmeny v nove verzi 3.36

[*] Heinisch Jiri <info(zv)drnholec(tec)cz> - 06.2.2009 07:45:36

Ahoj

Pro pripadne usetreni casu pri zkoumani po instalaci nove verze JVCL
jsem chtel pritomne kolegy upozornit na tuto(pro mne docela
neprijemnou) vec.

V nove verzi (alespon oproti verzi 3.34) se nyni budete implicitne
pohybovat v gridu pri pouziti mysiho kolecka ob jeden radek a ne
po kazdem radku. Pro puvodni chovani musite pouzit Shift+kolecko.
viz prilozeny vypis kodu.
Nevim co k tomu tvurce vedlo a da se to i snadno osetrit, ale urcite
jednodusi by bylo hodnotu "Distance" treba jako property.

Jura


//----- Nova verze ----------------------------------------------------

function TJvDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos:
TPoint): Boolean;
var
Distance: Integer;
begin
Result := False;
if Assigned(OnMouseWheelDown) then
OnMouseWheelDown(Self, Shift, MousePos, Result);
if not Result then
begin
if not AcquireFocus then
Exit;
if ssCtrl in Shift then
Distance := VisibleRowCount - 1
else
if ssShift in Shift then
Distance := 1
else
Distance := 2;
if DataLink.Active then
Result := DataLink.DataSet.MoveBy(Distance) <> 0;
end;
end;//----- Stara verze ----------------------------------------------------
function TJvDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos:
TPoint): Boolean;
var
Distance: Integer;
begin
Result := False;
if Assigned(OnMouseWheelDown) then
OnMouseWheelDown(Self, Shift, MousePos, Result);
if not Result then
begin
if not AcquireFocus then
Exit;
if ssCtrl in Shift then
Distance := VisibleRowCount - 1
else
Distance := 1;
if DataLink.Active then
Result := DataLink.DataSet.MoveBy(Distance) <> 0;
end;
end;

Trigger MSSQL

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 06.2.2009 18:44:15

Ne, ze bych s MSSQL uplne zacinal, lecos uz jsem udelal.
Poprve ale vstupuju do navrhu vetsi databaze, ktera by mela mit svoji aplikacni logiku a vnitrni integritu.

Ve FB jsem byl zvykly bezne pouzivat triggery.
Snadno a krasne.

Vim, ze MSSQL s tim ma urcite problemy (jenom "after" nebo "instead").
Presto jsem neco zkusil:

create table xx(id int, val int);

Chci pri vkladani zdvojnasobit hodnotu "val".
-------------------
create trigger xx_i on xx instead of insert
as
declare (zv)id int;
declare (zv)val int;
begin
select (zv)id=id, (zv)val=(zv)val from inserted;
insert into xx(id,val) values((zv)id,(zv)val*2);
end

insert into xx values(1,3)

Tak tohle funguje,
v xx bude
1 6
-------------------
create table yy(id int, val int);
insert into yy values(1,1);
insert into yy values(2,2);
insert into yy values(3,3);
insert into yy values(4,4);

insert into xx select * from yy
select * from xx

Tak tohle nefunguje,
v xx bude jediny zaznam, asi posledni z vlozenych.

Jak to ???
Copak trigger se nevola na kazdem vkladanem zaznamu?
-------------------
Zjistil jsem, ze opravdu ne.
Funguje to takhle:

alter trigger xx_i on xx instead of insert
as
declare (zv)id int;
declare (zv)val int;
declare k cursor for select * from inserted;
begin
open k;
fetch k into (zv)id, (zv)val;
while (zv)(zv)fetch_status=0 begin
insert into xx(id,val)
values((zv)id,(zv)val*2);
fetch k into (zv)id, (zv)val;
end
close k;
deallocate k;
end

Tak tohle funguje.
V xx bude
1 2
2 4
3 6
4 8
Cili "inserted" obsahuje vsechny 4 vlozene zaznamy a da se s tim pres kurzor pracovat.
-------------------

Jenze to snad neni mysleno vazne ... :-(

TAKHLE SE S TIM PRECI PRACOVAT NEDA !!!
ANEBO JSEM BLBEJ JA?

jo, jo, zlaty FB

create trigger xx_u for xx
before insert or update
as begin
new.val = 2*new.val;
end

Jak snadne a krasne ...

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

SQL dotaz zretezeni

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 07.2.2009 21:50:25

> latka | mozstvi | misto
> -------------------------------------------
> lih | 1l | objekt 1
> benzin | 5l | objekt 2
> toulen | 3l | objekt 3
> lih | 3l | objekt 2
> benzin | 4l | objekt 1
> toulen | 2l | objekt 3
> benzin | 2l | objekt 3
>
> potrebuji SQL dotaz pro ADO, Access MDB, D6, ktery vrati
>
> lih | 4l | objekt 1, objekt 2
> benzin | 11l | objekt 1, objekt 2, objekt 3
> toulen | 5l | objekt 3

Access umi sloupec jako array? Ja se s tim zatim setkal jen u PostgreSql.
Ted ale nemam poruce manual, takze nevim, jak bych to presne zapsal, asi na
2 dotazy, v prvnim (view 'latky') jen

select distinct latka from tabulka;

a k nemu pak dodelal sloupce

select v.latka,
(select sum(t1.mnozstvi) from tabulka t1 where t1.latka=v.latka) as
mnozstvi_celkem.
(select distinct t2.misto from tabulka t2 where t2.latka=v.latka) as
seznam_mist
from latky v

ale ten prvni view asi nebude treba, na ty latky jiz zrejme mate jinde
tabulku, kde uz je kazda latka jedinecna. Pak by hlavni select byl z ni. A
kdyz takovou nemate, tak ji muze nahradit ten view a se hodi i jinde.

Trigger MSSQL

[*] Cajbik Martin <cajbik(zv)sct.sk> - 09.2.2009 14:30:54

MSSQL obsahuje v inserted naozaj vsetky vlozene zaznamy ale osobne v tom nevidim absolutne ziaden problem, budto napisem hromadne spracovanie, s cim som si zatial vzdy vystacil a co je z hladiska vykonu optimalne, alebo kurzor...


Martin CAJBIK


-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Jan Sebelik
Sent: Friday, February 06, 2009 6:44 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Trigger MSSQL

Ne, ze bych s MSSQL uplne zacinal, lecos uz jsem udelal.
Poprve ale vstupuju do navrhu vetsi databaze, ktera by mela mit svoji aplikacni logiku a vnitrni integritu.

Ve FB jsem byl zvykly bezne pouzivat triggery.
Snadno a krasne.

Vim, ze MSSQL s tim ma urcite problemy (jenom "after" nebo "instead").
Presto jsem neco zkusil:

create table xx(id int, val int);

Chci pri vkladani zdvojnasobit hodnotu "val".
-------------------
create trigger xx_i on xx instead of insert as declare (zv)id int; declare (zv)val int; begin
select (zv)id=id, (zv)val=(zv)val from inserted;
insert into xx(id,val) values((zv)id,(zv)val*2); end

insert into xx values(1,3)

Tak tohle funguje,
v xx bude
1 6
-------------------
create table yy(id int, val int);
insert into yy values(1,1);
insert into yy values(2,2);
insert into yy values(3,3);
insert into yy values(4,4);

insert into xx select * from yy
select * from xx

Tak tohle nefunguje,
v xx bude jediny zaznam, asi posledni z vlozenych.

Jak to ???
Copak trigger se nevola na kazdem vkladanem zaznamu?
-------------------
Zjistil jsem, ze opravdu ne.
Funguje to takhle:

alter trigger xx_i on xx instead of insert as declare (zv)id int; declare (zv)val int; declare k cursor for select * from inserted; begin
open k;
fetch k into (zv)id, (zv)val;
while (zv)(zv)fetch_status=0 begin
insert into xx(id,val)
values((zv)id,(zv)val*2);
fetch k into (zv)id, (zv)val;
end
close k;
deallocate k;
end

Tak tohle funguje.
V xx bude
1 2
2 4
3 6
4 8
Cili "inserted" obsahuje vsechny 4 vlozene zaznamy a da se s tim pres kurzor pracovat.
-------------------

Jenze to snad neni mysleno vazne ... :-(

TAKHLE SE S TIM PRECI PRACOVAT NEDA !!!
ANEBO JSEM BLBEJ JA?

jo, jo, zlaty FB

create trigger xx_u for xx
before insert or update
as begin
new.val = 2*new.val;
end

Jak snadne a krasne ...

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW = www.haes(tec)cz = Vojtiskova 321 = 507 81 Lazne Belohrad ====================================

Firebird DB - komponenty - moznost pripojeni k exi

[*] Pavel Tresnak <delphi(zv)haida(tec)cz> - 09.2.2009 15:30:58

Ahoj vsem,

existuje prosim zpusob, jak provest dotaz v existujici nastartovane
transakci v DB serveru Firebird?

Napriklad kdyz v aplikaci vytvorim a nastartuji transakci, tak zda je
mozne nejakym zpusobem predat do DLL transakci handle a provest dotaz v
jiz existujici bezici transakci.

Dik moc, Pavel

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