Archív konference Delphi

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

Chyba pri restore FB database

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 13.3.2008 14:01:55

Tipnu si - v check constraintu domeny je nejaky select z tabulky
MY_TABLE. Je to tak ???
Pokud ano, tak MUSIS tento check odstranit z domeny a presunout ho na
sloupec v tabulce.

S pozdravem

Milan Tomes

Jan Stefec napsal(a):
> provedu backup FB database pomoci IB Expert, nasledne restore do nove
> database. Restore neprobehne a IB Expert zahlasi chybu:
>
> IBE: Invalid token.
> invalid request BLR at offset 271.
> table MY_TABLE is not defined.
>
> FB verzi mam 2.0.1, prihlasen jsem jako SYSDBA.
>

FB - hromadna zmena "not null"

[*] Tomas Krejzek <tomas.krejzek(zv)email(tec)cz> - 13.3.2008 14:47:58

Ovsem ale velice doporucuji zkontrolovat si pravdivost tohoto nastaveni driv, nez ho
provedes, protoze na existujici zaznamy se nevztahuje a potom ti muze server hlasit
zajimave chyby pri praci s jiz drive zapsanymi zaznamy.

Tom

Milan Tomes napsal(a):
> Neni pravda - da se to zmenit prave danym zasahem do systemovych tabulek
> a pak reconnectem k databazi. Odzkouseno na vlastni kuzi (nicmene jen
> jako test, ne v ostrem skriptu) :-)
> Dalsi moznost je vytvorit novy sloupec v tabulce se spravnou deklaraci,
> prekopirovat data, zrusit stary sloupec a prejmenovat ten novy (tohle
> pouzivam bezne).
> Vytvoreni nove tabulky je az krajni moznost, kterou jsem zatim nemusel
> nikdy pouzit... :-)
>
> S pozdravem
>
> Milan Tomes
> ======================================================================
KP-SYS mail server
======================================================================

FB - hromadna zmena "not null"

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 13.3.2008 14:53:59

Ale jiste - to uz jsem psal drive. Celkove ta vlastni zmena metadat
nebude slozita. O to slozitejsi bude prevod dat.

S pozdravem

Milan Tomes


Tomas Krejzek napsal(a):
> Ovsem ale velice doporucuji zkontrolovat si pravdivost tohoto nastaveni driv, nez ho
> provedes, protoze na existujici zaznamy se nevztahuje a potom ti muze server hlasit
> zajimave chyby pri praci s jiz drive zapsanymi zaznamy.
>
> Tom
>
> Milan Tomes napsal(a):
>
>> Neni pravda - da se to zmenit prave danym zasahem do systemovych tabulek
>> a pak reconnectem k databazi. Odzkouseno na vlastni kuzi (nicmene jen
>> jako test, ne v ostrem skriptu) :-)
>>
>

Chyba pri restore FB database

[*] Jan Stefec <stefec(zv)algo-hk(tec)cz> - 13.3.2008 15:04:00

Neni to tak. Jediny check constraint je u boolean domeny a je to tento:
NUMERIC(1,0)
DEFAULT 0
NOT NULL
CHECK (VALUE IN (0,1))

Honza

Milan Tomes wrote:

>Tipnu si - v check constraintu domeny je nejaky select z tabulky
>MY_TABLE. Je to tak ???
>Pokud ano, tak MUSIS tento check odstranit z domeny a presunout ho na
>sloupec v tabulce.
>
>S pozdravem
>
>Milan Tomes
>
>Jan Stefec napsal(a):
>
>
>>provedu backup FB database pomoci IB Expert, nasledne restore do nove
>>database. Restore neprobehne a IB Expert zahlasi chybu:
>>
>>IBE: Invalid token.
>> invalid request BLR at offset 271.
>> table MY_TABLE is not defined.
>>
>>FB verzi mam 2.0.1, prihlasen jsem jako SYSDBA.
>>
>>
>>
>
>
>

Volanie TButton.OnClick na TButton.Enabled := FALS

[*] Roland Turcan <konf(zv)rotursoft.sk> - 13.3.2008 15:06:00

Hello All!

Sice pracujem uz s Delphi vela rokov a tato vec sa mi stala prvy krat.

Mam tlacitko, ktore vo svojom kode vykonava nejaku dlhsie trvajucu
opearaciu (par stovak ms na zapis do tabulky, ...). Tlacitko ako prve
uvediem do stavu Enabled := FALSE; a potom vykonavam operaciu.
Lenze zakaznik reportoval, ze pocas operacie nastali vynimky.

Zistil som totizto pre mna zaujimavu vec. Pokial na tlacitko ktore sa
hned po prvom OnClick deactivuje klika bez prestania, tak sa OnClick
zavola uz tolko krat, kolko krat bol tlacitko stlacene. Ale toto sa
zavola zakazdym ked ten predchajuci OnClick skoncil.

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add ('OnClick event');
IF Button1.Enabled then begin
Button1.Enabled := FALSE;

Memo1.Lines.Add (IntToStr (Random (999)));

Sleep (5000);

Button1.Enabled := TRUE;
END;
end;

Naprv som si myslel, ze je to chyba v CLX ale potom to iste sa mi
deje aj vo VCL D7.

Ako sa tomuto da predist?

Dakujem.

--
Best regards, TRoland

http://exekutor.rotursoft.sk

Volanie TButton.OnClick na TButton.Enabled := FALS

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 13.3.2008 17:18:11

Ahoj,
muzes se toho zbavit treba takhle:

Timer1.Interval := 1;
Timer1.Enabled := false;

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := FALSE;
Memo1.Lines.Add ('OnClick event');
Memo1.Lines.Add (IntToStr (Random (999)));
Sleep (5000);
Timer1.Enabled := true
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Enabled := true;
Timer1.Enabled := false
end;

Taky by asi slo si posloat message pres PostMessage a v jeji obsluze mit
Button1.Enabled := true

Vaclav Sazima

Roland Turcan napsal(a):
> Pokial na tlacitko ktore sa
> hned po prvom OnClick deactivuje klika bez prestania, tak sa OnClick
> zavola uz tolko krat, kolko krat bol tlacitko stlacene. Ale toto sa
> zavola zakazdym ked ten predchajuci OnClick skoncil.
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Memo1.Lines.Add ('OnClick event');
> IF Button1.Enabled then begin
> Button1.Enabled := FALSE;
>
> Memo1.Lines.Add (IntToStr (Random (999)));
>
> Sleep (5000);
>
> Button1.Enabled := TRUE;
> END;
> end;
>
>

Volanie TButton.OnClick na TButton.Enabled := FALS

[*] vt <vt.konference(zv)seznam(tec)cz> - 13.3.2008 16:04:05

Roland Turcan wrote:
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Memo1.Lines.Add ('OnClick event');
> IF Button1.Enabled then begin
> Button1.Enabled := FALSE;
>
> Button1.Enabled := TRUE;
> END;
> end;
>
> Naprv som si myslel, ze je to chyba v CLX ale potom to iste sa mi
> deje aj vo VCL D7.
>
> Ako sa tomuto da predist?

zapamatuj si stav ve svem boolu a mas to.
pripadne akci volej pres win zpravu

--
vt

FB - hromadna zmena "not null"

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 13.3.2008 16:08:06

> Ale jiste - to uz jsem psal drive. Celkove ta vlastni zmena metadat
> nebude slozita. O to slozitejsi bude prevod dat.
> Milan Tomes

Myslim, ze je mi to jasne - ostatne pokracuji prubezne timto smerem.

Jde pouze o zmenu "not null", to se provede snadno v tabulce rdb$relation_fields.
update rdb$relation_fields set rdb$null_flag = 1 where ....

Problem bude ten, ze v nekterych fieldech, definovanych nyni jako "not null", jsou ve starych datech hodnoty NULL. Nelze tedy nyni provest napriklad zadny update atd.

Nezbyde nic jineho, nez
update YYYY set id_XXXX=0 where id_XXXX is null
Tomu se tedy nevyhnu.

Seznam techto update dostanu zase snadno
select rdb$relation_name, rdb$field_name, rdb$fieeld_source, rdb$null_flag
from rdb$relation_fields
where rdb$field_source='D_NULL' and rdb$null_flag is null

A to je vse.
Predtim samozrejme dopolnit "0 - Nespecifikovano" do prislusnych ciselniku.

Honza

Volanie TButton.OnClick na TButton.Enabled := FALS

[*] Rastislav Lazan <slavman(zv)gmail(tec)com> - 13.3.2008 16:02:05

Myslim, ze pred nejakym rokom sme riesili podobnu situaciu.
Ak si dobre spominam, je to dane OS. Tusim 2000 (NT?) sa takto spravaju, XP
(98?) su uz chybuvzdorne...

S pozdravom Ing. Rastislav Lazan

e-mail: lazan(zv)bigfoot.com

icq: 35 70 30 80


2008/3/13 Roland Turcan <konf(zv)rotursoft.sk>:

> Hello All!
>
> Sice pracujem uz s Delphi vela rokov a tato vec sa mi stala prvy krat.
>
> Mam tlacitko, ktore vo svojom kode vykonava nejaku dlhsie trvajucu
> opearaciu (par stovak ms na zapis do tabulky, ...). Tlacitko ako prve
> uvediem do stavu Enabled := FALSE; a potom vykonavam operaciu.
> Lenze zakaznik reportoval, ze pocas operacie nastali vynimky.
>
> Zistil som totizto pre mna zaujimavu vec. Pokial na tlacitko ktore sa
> hned po prvom OnClick deactivuje klika bez prestania, tak sa OnClick
> zavola uz tolko krat, kolko krat bol tlacitko stlacene. Ale toto sa
> zavola zakazdym ked ten predchajuci OnClick skoncil.
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Memo1.Lines.Add ('OnClick event');
> IF Button1.Enabled then begin
> Button1.Enabled := FALSE;
>
> Memo1.Lines.Add (IntToStr (Random (999)));
>
> Sleep (5000);
>
> Button1.Enabled := TRUE;
> END;
> end;
>
> Naprv som si myslel, ze je to chyba v CLX ale potom to iste sa mi
> deje aj vo VCL D7.
>
> Ako sa tomuto da predist?
>
> Dakujem.
>
> --
> Best regards, TRoland
>
> http://exekutor.rotursoft.sk
>
>
>


--
S pozdravom Ing. Rastislav Lazan
e-mail: slavman(zv)gmail.com
icq: 35 70 30 80
tel.: 0907 736 256

Chyba pri restore FB database

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 14.3.2008 06:51:13

V tom pripade je vhodne zkusit spustit obnovu ve verbose modu, abys
zjistil, kde presne ta obnova padne. Pak budes mit zuzeny okruh hledani
teto chyby.

S pozdravem

Milan Tomes


Jan Stefec napsal(a):
> Neni to tak. Jediny check constraint je u boolean domeny a je to tento:
>
> Milan Tomes wrote:
>
>
>> Tipnu si - v check constraintu domeny je nejaky select z tabulky
>> MY_TABLE. Je to tak ???
>> Pokud ano, tak MUSIS tento check odstranit z domeny a presunout ho na
>> sloupec v tabulce.
>>
>> S pozdravem
>>
>> Milan Tomes
>>
>> Jan Stefec napsal(a):
>>
>>
>>
>>> provedu backup FB database pomoci IB Expert, nasledne restore do nove
>>> database. Restore neprobehne a IB Expert zahlasi chybu:
>>>
>>> IBE: Invalid token.
>>> invalid request BLR at offset 271.
>>> table MY_TABLE is not defined.
>>>
>>> FB verzi mam 2.0.1, prihlasen jsem jako SYSDBA.
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
>

FB - hromadna zmena "not null"

[*] kejval.delphi(zv)centrum(tec)cz - 14.3.2008 08:59:22

Ahoj,

nedavno jsme resili neco podobneho. Mame v db pres 1000 proc, 400 tab a 400 udf a potrebovali jsme zmenit definice udf. Takze pekelne zavislosti. Nakonec jsem udelal takovou procedurku do db, ktera umi vyjet do 1 tabulky vsechny zavislosti v danem poradi a pomoci ni pak pustit maly programek, ktery vyjede 2 scripty. 1 zavislosti zrusi a 2. je zase obnovi.

Mam totiz takovy pocit, ze kdyz jsme menili definice domen, napr. velikost varcharu, tak sice script probehl v poradku, ale dokud tam byli nejake zavislosti, tak si db drzela porad tu starou domenu. Nepomohl ani backup/restore.

Kdybys dospel do teto situace a byl nucen, ty fieldy odstranit a vytvorit nove, tak bych to odstraneni zavislosti rozebral podrobneji, treba v soukromem mailu.

S pozdravem
ing. Richard Kejval
mobil: 602477679
http://www.icsoftware(tec)cz

----- Original Message -----
From: "Jan Sebelik" <honza(zv)haes(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, March 13, 2008 4:08 PM
Subject: Re: FB - hromadna zmena "not null">> Ale jiste - to uz jsem psal drive. Celkove ta vlastni zmena metadat
>> nebude slozita. O to slozitejsi bude prevod dat.
>> Milan Tomes
>
> Myslim, ze je mi to jasne - ostatne pokracuji prubezne timto smerem.
>
> Jde pouze o zmenu "not null", to se provede snadno v tabulce rdb$relation_fields.
> update rdb$relation_fields set rdb$null_flag = 1 where ....
>
> Problem bude ten, ze v nekterych fieldech, definovanych nyni jako "not null", jsou ve starych datech hodnoty NULL. Nelze tedy nyni provest napriklad zadny update atd.
>
> Nezbyde nic jineho, nez
> update YYYY set id_XXXX=0 where id_XXXX is null
> Tomu se tedy nevyhnu.
>
> Seznam techto update dostanu zase snadno
> select rdb$relation_name, rdb$field_name, rdb$fieeld_source, rdb$null_flag
> from rdb$relation_fields
> where rdb$field_source='D_NULL' and rdb$null_flag is null
>
> A to je vse.
> Predtim samozrejme dopolnit "0 - Nespecifikovano" do prislusnych ciselniku.
>
> Honza
>
>
>
>

Vyber pripojeni k MSSQL a FB

[*] Martin Matousek <martin.matousek(zv)topspin(tec)cz> - 14.3.2008 09:35:25

Ahoj,
nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
rozhodli podporovat FB a tak hledame vhodne reseni. V tuto chvili si
hrajeme s prevodem sql dialektu a pro toto nam postacuje spojeni ADO a
ODBC driveru pro FB ktery je zdarma k dispozici. Uz ted se nam ale zda,
ze je toto pripojeni pomalejsi a o stabilite nic vedet nemuzem.

Doporucili byste prechod na jinou sadu komponent, tedy jinou technologii
pripojeni, napr. Zeos komponenty, nebo vite o nejakem vhodnem OleDB
providerovi pro FireBird. Nam se zatim nic vhodneho najit nepodarilo.

Diky
Martin Matousek

FB - hromadna zmena "not null"

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 14.3.2008 10:31:29

> zavislosti. Nakonec jsem udelal takovou procedurku do db, ktera umi
> vyjet do 1 tabulky vsechny zavislosti v danem poradi a pomoci ni pak
> pustit maly programek, ktery vyjede 2 scripty. 1 zavislosti zrusi a
> 2. je zase obnovi.

Ahoj, presne toto "umi" reseni http://www.clevercomponents.com. Pouzivam k
naproste spokojenosti, pro jednorazovy prevod dat by mel stacit jejich
Database comparer (mam dojem ze byl dokonce zadarmo pro nekomercni uziti), k
zabudovani do aplikace se daji koupit VCL komponenty, ktere vygeneruji
chytry rozdilovy script porovnanim zdrojove a cilove DB. Mohu jen doporucit.
Pri nekterych zmenach (jako je zminovane dodatecne nasazeni not null) je
pochopitelne potreba compareru pred spustenim rozdiloveho skriptu pomoci,
treba doplnenim hodnot do null sloupcu.

Martin

Vyber pripojeni k MSSQL a FB

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 14.3.2008 10:51:31

> nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
> pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
> rozhodli podporovat FB a tak hledame vhodne reseni.

Moznych reseni je jiste cela rada.

Ja bych se ale jednoznacne rozhodl pro programovani "tenkeho" klienta nad TClientDataSet s alternativni implementaci propojeni aplikacniho serveru pro MSSQL (ADO) a Firebird (IBX).

Aplikacni server muze obsahovat univerzalni interface smerem ke klientovi, muze obsahovat cast aplikacni logiky. Jenom na te nejnizsi urovni se bude lisit pouzitou technologii pripojeni. Nemusi pritom jit o aplikacni server v pravem slova smyslu - jde mi zde pouze o architekturu.

Muze to fungovat treba tak, ze instalace pro MSSQL a FB se lisi v jedine male DLL, ktera implementuje to pripojeni.

Uzivatelske rozhrani (90% prace) nad TClientDataSet se programuje velmi prijemne, velmi produktivne a s velmi dobrymi vysledky smerem k uzivateli. Mam pritom jistotu, ze nenarazim na rozdilne chovani proti MSSQL a FB. Tyto rozdily resi vyhradne "zapouzdrena" implementace pripojeni.

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

Vyber pripojeni k MSSQL a FB

[*] Martin Matousek <martin.matousek(zv)topspin(tec)cz> - 14.3.2008 11:45:35


>> nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
>> pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
>> rozhodli podporovat FB a tak hledame vhodne reseni.
>>
> Ja bych se ale jednoznacne rozhodl pro programovani "tenkeho" klienta nad TClientDataSet s alternativni implementaci propojeni aplikacniho serveru pro MSSQL (ADO) a Firebird (IBX).
>
>
Mozna ze jsem v otazce spatne vyjadril to ze aplikace je jiz vyvinuta a
je plne v provozu u zakazniku. Tzn. ze hledame co jak "nejlevnejsi" reseni.

Vami navrhovane reseni by se mi taky libilo, ale vzhledem k dosavadni
funkcnosti by to znamenalo tak velky zasah do aplikace, ze bych mohl
klidne otevrit otazku, jestli to neprepsat cele, a jestli rovnou nejit
na .NET :-) Takze jeste porad optimisticky verim, ze najdu reseni mene
profesionalni nez je uvedeno vyse, ale ktere nebude znamenat az tak
velky zasah do aplikace.
Vono kazdy jednou zacinal a my jsme kdysi zacali tak ze jsme si
vytvorili "framework" ktery si skvele generuje podle potreby selecty,
inserty a je databazove hodne zavisly. Ted jsme naucili framework
pouzivat dva ruzne sql dialekty, coz byla otazka asi dvou dnu. A pokud
najdem nejaky spolehlivy driver, myslim ze budeme spokojeni, jako
nejslozitejsi variantu mohu povolit zmenu komponent. Ale zmenu
architektury, to si dovolit nemuzem.

Takze pokud byste si mel vybrat z techto dvou variant?

Martin Matousek
D5

Vyber pripojeni k MSSQL a FB

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 14.3.2008 12:11:37

> Takze jeste porad optimisticky verim, ze najdu reseni mene
> profesionalni nez je uvedeno vyse, ale ktere nebude znamenat az tak
> velky zasah do aplikace.

Ono by to zase az tak slozite byt nemuselo - zalezi na tom, jak moc je aplikace "zpatlana". To "zpatlana" nemyslim vubec ve zlem, dozajista kazdy mame zkusenost s vetsi ci mensi "zpatlanosti" vlastnich aplikaci.

Mozna by stacilo odstehovat databazove ADO komponenty nekam do "vedlejsiho modulu", na jejich puvodnim miste je nahradit (hromadne, primo v dfm) za TClientDataSet, nejak to propojit. Vsechno co umi vas framework by se taky odstehovalo do toho vedlejsiho modulu. Rozchodit to nad MSSQL (ADO) a nove vznikly modul pak prepsat do FB (IBX).

Jenze pravda, trivialni by to asi nebylo.

> A pokud
> najdem nejaky spolehlivy driver, myslim ze budeme spokojeni, jako
> nejslozitejsi variantu mohu povolit zmenu komponent. Ale zmenu
> architektury, to si dovolit nemuzem.

V Delphi mame 3 "univerzalisticke" technologie pripojeni, ktere podporuji FB, MSSQL (a zpravidla Oracle).

BDE - je zpousta duvodu, proc BDE nepouzit. Ale asi by to fungovalo.
ADO - podle me dost dobre, problem vidim v tom provideru pro FB
dbExpress - to jsme zase u TClientDataSet

Takze: pokud najdete vhodny ADO (ODBC) provider pro FB, mohli byste byt za vodou.
Ja o tom mam ale pochybnosti - mozna se mylim.

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

Vyber pripojeni k MSSQL a FB

[*] Jaromir Cermak <cermak(zv)procom(tec)cz> - 14.3.2008 12:47:40

Ahoj

Muzu potvrdit. Sam jsem mel aplikacni server napsany pomoci BDE a prepsat ho do verze s ADO nedalo moc prace. Navic clovek snaze obejde problemy spusobene chybami v komponentach.

Jaromir Cermak

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On


> nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
> pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
> rozhodli podporovat FB a tak hledame vhodne reseni.

Moznych reseni je jiste cela rada.

Ja bych se ale jednoznacne rozhodl pro programovani "tenkeho" klienta nad TClientDataSet s alternativni implementaci propojeni aplikacniho serveru pro MSSQL (ADO) a Firebird (IBX).

Vyber pripojeni k MSSQL a FB

[*] Jaromir Cermak <cermak(zv)procom(tec)cz> - 14.3.2008 13:19:43

Tohle reseni se me osobne moc libi, ta trocha prace navic s nahrazenim ADO component za TClientDataSet se ti vrati v okamziku, kdy budes chtit pridat podporu pro dalsi DB stroje. Pridani modulu pro dalsi databazi je opravdu jednoduche. Opravuhes totiz jen komunikaci s SQL serverem. Navic bych rekl, ze tenhle spusob Borland dale podporuje a pokud bych se chtel drzet linie Delphi i v budoucnu, tak ma perspektivu.

Jaromir Cermak

-----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, March 14, 2008 12:12 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Vyber pripojeni k MSSQL a FB


> Takze jeste porad optimisticky verim, ze najdu reseni mene
> profesionalni nez je uvedeno vyse, ale ktere nebude znamenat az tak
> velky zasah do aplikace.

Ono by to zase az tak slozite byt nemuselo - zalezi na tom, jak moc je aplikace "zpatlana". To "zpatlana" nemyslim vubec ve zlem, dozajista kazdy mame zkusenost s vetsi ci mensi "zpatlanosti" vlastnich aplikaci.

Mozna by stacilo odstehovat databazove ADO komponenty nekam do "vedlejsiho modulu", na jejich puvodnim miste je nahradit (hromadne, primo v dfm) za TClientDataSet, nejak to propojit. Vsechno co umi vas framework by se taky odstehovalo do toho vedlejsiho modulu. Rozchodit to nad MSSQL (ADO) a nove vznikly modul pak prepsat do FB (IBX).

Jenze pravda, trivialni by to asi nebylo.

Vyber pripojeni k MSSQL a FB

[*] Petr Vones <conference(zv)petrvones(tec)net> - 14.3.2008 13:31:44

From: "Martin Matousek" <martin.matousek(zv)topspin(tec)cz>
> funkcnosti by to znamenalo tak velky zasah do aplikace, ze bych mohl
> klidne otevrit otazku, jestli to neprepsat cele, a jestli rovnou nejit
> na .NET :-) Takze jeste porad optimisticky verim, ze najdu reseni mene

Coz je velmi dobra otazka. Dle meho nazoru, ma-li se ten produkt dale
vyvijet, dnes nejlepsi volba ze vsech moznych.

Petr Vones

FB - hromadna zmena "not null"

[*] kejval.delphi(zv)centrum(tec)cz - 17.3.2008 09:30:53

----- Original Message -----
From: "Martin Burle"

>> zavislosti. Nakonec jsem udelal takovou procedurku do db, ktera umi
>> vyjet do 1 tabulky vsechny zavislosti v danem poradi a pomoci ni pak
>> pustit maly programek, ktery vyjede 2 scripty. 1 zavislosti zrusi a
>> 2. je zase obnovi.
>
> Ahoj, presne toto "umi" reseni http://www.clevercomponents.com. Pouzivam k
> naproste spokojenosti, pro jednorazovy prevod dat by mel stacit jejich
> Database comparer (mam dojem ze byl dokonce zadarmo pro nekomercni uziti), k
> zabudovani do aplikace se daji koupit VCL komponenty, ktere vygeneruji
> chytry rozdilovy script porovnanim zdrojove a cilove DB. Mohu jen doporucit.
> Pri nekterych zmenach (jako je zminovane dodatecne nasazeni not null) je
> pochopitelne potreba compareru pred spustenim rozdiloveho skriptu pomoci,
> treba doplnenim hodnot do null sloupcu.

No on muze byt nekdy problem vytvorit vubec tu srovnavaci db. Napr. zmena udf, view, zmena vstupnich parametru u vnorenych procedur je problem i v prazdne db, pokud teda nechci vylejt celou db do scriptu a opravovat to v nem, coz u rozsahlejsich db neni zrovna moc pohodlne. Proto je nekdy asi vyhodnejsi odstranit pouze ty zavislosti, ktere me zajimaji a pak je zase zapnout, zvlast kdyz to udela nejaky "automat"..

S pozdravem
ing. Richard Kejval
mobil: 602477679
http://www.icsoftware(tec)cz

Vyber pripojeni k MSSQL a FB

[*] Jaromir Junek <mirek.junek(zv)worldonline(tec)cz> - 17.3.2008 12:21:05

Pouzivame Fib Plus od Devrace, plna spokojenost.

Navic podle Dmitrije Jemanova (Firebird project admin) vyvojari Fib plus
a Firebirdu jsou v uzkem kontaktu,
takze komponenty podporuji i nove vlastnosti novych verzi FB brzy po
jejich evedeni.

Cena za licenci je tusim kolem 6000 Kc.
Mirek
> Ahoj,
> nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
> pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
> rozhodli podporovat FB a tak hledame vhodne reseni. V tuto chvili si
> hrajeme s prevodem sql dialektu a pro toto nam postacuje spojeni ADO a
> ODBC driveru pro FB ktery je zdarma k dispozici. Uz ted se nam ale zda,
> ze je toto pripojeni pomalejsi a o stabilite nic vedet nemuzem.
>
> Doporucili byste prechod na jinou sadu komponent, tedy jinou technologii
> pripojeni, napr. Zeos komponenty, nebo vite o nejakem vhodnem OleDB
> providerovi pro FireBird. Nam se zatim nic vhodneho najit nepodarilo.
>

Cislovani dokladu (FB)

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 19.3.2008 07:18:19

Stavajici reseni:

ID zaznamu jde pres generator, to je v pohode, s cislem dokladu to nesouvisi.

Pozadavek na cislovani dokladu (DOKLAD) je ten, ze uzivatel muze doklady cislovat dle vlastnich zvyklosti v ramci mesice, v ramci roku nebo prubezne. Duplicitu tak hlidam pres slozeny unikatni index DOKLAD+DOKLIX, kde do DOKLIX se dava alternativne obdobi (200803), rok (2008) nebo 0. To je v poradku.

Nove cislo dokladu
DOKLAD = select max(DOKLAD)+1 where ... dle zvoleneho zpusobu

TOHLE JE VE VICEUZIVATELSKEM PRISTUPU SAMOZREJME NEKOREKTNI (+ ruzne hromadne importy)
DNES SE TATO NEKOREKTNOST RESI RUZNYMI VELMI OSKLIVYMI OBEZLICKAMI.

Jedine korektni reseni je podle meho soudu ziskavat cislo dokladu taky pres generator, a to kvuli pozadavku na souvislou radu az PO ULOZENI ZAZNAMU, kdy probehly vsechny kontroly a zaznam by uspesne ulozen:
trigger after insert:
update xxx set doklad=gen_id ...

Je pritom nemyslitelne, abych dle pozadavku pro kazdou tabulku (dodaci list, prijemka, vydejka, ... je jich asi 10), pro kazdy rok, pro kazdy mesic zavadel samostatny generator. Pritom by bylo treba se uvnitr triggeru dle obdobi navic rozhodovat , ktery generator pouzit.

Hledam argumenty, jak zadavateli vysvetlit, ze doklady MUSI byt cislovany vyhradne prubezne.

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

COM a Catastrophic failure

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 19.3.2008 07:28:20

Vicevrstva architektura s aplikacnim serverem.
Server := Create(Remote)COMObject(Class_ID) as IServer;
Vyjimky a chybove hlasky, ktere vzniknou na serveru, dojdou na klienta korektne.

Na zaklade podminene kompilace mohu opustit vicevrstvou architekturu a aplikacni server zakompilovat primo do klienta:
Server := TServer.Create as IServer;
Pokud na serveru dojde k vyjimce, dostanu hlasku "Catastrophic failure".

Kde delam chybu???

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

Cislovani dokladu (FB)

[*] Stanislav Smejkal <smejkal(zv)smejkal(tec)com> - 19.3.2008 07:54:23

> Hledam argumenty, jak zadavateli vysvetlit, ze doklady MUSI byt cislovany vyhradne prubezne.

Myslim, ze zakaznika nepotesi, ze neco tak jednoducheho nelze. Resil bych
to pres lock nebo pres unikatni id v ramci cele dokladove rady a na zaklade
unikatniho ID bych v dalsim kroku dogeneroval cislo dokladu. Tim se sice
vyjimecne muze stat, ze kdyz paralelni transakce dostane rollback, bude v
dokladove rade doklad chybet, ale to je dan, kterou zadavatel pochopi.

Standa

Cislovani dokladu (FB)

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

> Myslim, ze zakaznika nepotesi, ze neco tak jednoducheho nelze. Resil bych
> to pres lock

Ja se omlouvam, mozna neznam dobre posledni verze FB, ale pokud vim, tak FB 1.0, 1.5 zadny lock nema.

doklad = select max+1 ...
insert into DLIST values(..., doklad, ....)
Tohle podle me povede spolehlive k chybam, kdyz to udelaji dva uzivatele najednou. A udelaji, to vim.

> nebo pres unikatni id v ramci cele dokladove rady a
> na zaklade
> unikatniho ID bych v dalsim kroku dogeneroval cislo dokladu.

A to jako jak?
Unikatni ID v primarnim klici mam (generator) - samozrejme nejde o souvislou radu, generator se pri rollback nevraci.

> Tim se sice
> vyjimecne muze stat, ze kdyz paralelni transakce dostane rollback, bude v
> dokladove rade doklad chybet, ale to je dan, kterou zadavatel pochopi.

Nerozumim.
Asi proto, ze nevim, jak bys v predchozim kroku to cislo dokladu generoval.

Honza

Cislovani dokladu (FB)

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

> Myslim, ze zakaznika nepotesi, ze neco tak jednoducheho nelze.

He, jeste dovetek ....
:-)
Uzivatel napr. chtel, aby mu nove cislo dokladu vyskocilo na formular v okamtiku, kdyz zmackne tlacitko "Novy doklad".
Jak jednoduche, ze?

Ze nejde tohle, na to jsem nastesti argumenty nasel.

Ze nejde "select max", na to agrumenty hledam.

Co je to generator, to mu budu vysvetlovat tezko.
Tim hure mu budu vysvetlovat, ze pres generator lze dosahnout pouze prubezneho cislovani.

Honza

Cislovani dokladu (FB)

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 19.3.2008 09:36:32

Dne Wed, 19 Mar 2008 08:58:29 +0100 Jan Sebelik <honza(zv)haes(tec)cz> napsal/-a:

> doklad = select max+1 ...
> insert into DLIST values(..., doklad, ....)
> Tohle podle me povede spolehlive k chybam, kdyz to udelaji dva uzivatele
> najednou. A udelaji, to vim.

A serializable transakce by to nevyresila?

Cislovani dokladu (FB)

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 19.3.2008 10:14:35

> Hledam argumenty, jak zadavateli vysvetlit, ze doklady MUSI byt
> cislovany vyhradne prubezne.

Ahoj, a co zhruba takto:

-existuje tabulka doklady, ktera drzi posledni cislo dokaldu pro ruzne typy
dokladu (faktury, prijemky, ..)
-v samostatne transakci se z ni pri vytvoreni dokladu ziskava PRAVDEPODOBNE
nove cislo dokladu
-pri potvrzeni dokladu se ziska SKUTECNE nove cislo, navysi se cislo
posledniho dokladu. Pokud doslo ke zmene kvuli pozadavku jineho uzivatele,
tak se to oznami uzivateli ktery zapsat tento novy doklad.
-cisla stornovanych dokladu se mohou podle uvazeni uzivatele vracet do
doklady_mezery, kde cekaji na dalsi pozadavek a kdy mohou byt pouzita znovu
-po mesicni uzaverce neni problem pocitadlo dokladu vynulovat, nebo nastavit
jakkoli
-ve vysledku obvykle nejsou zadne diry v rade, coz je presne to, co
uzivatele a jejich ucetni pozaduji ;)

Martin

Cislovani dokladu (FB)

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 19.3.2008 14:24:55

> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Martin Burle

Predevsim bych chtel poznamenat, ze aplikace je vicevrstva s aplikacnim serverem.
Z klienta tedy nelze ridit transakce (viz Petr Fejfar a serializable)
Transakce mohu ovlivnit na aplikacnim serveru, protoze mam vlastni implementaci IAppServer a dalsich metod aplikacniho serveru.
Myslim, ze jsem zvolil jedinou spravnou moznost, kdy vsechny implementacni metody jsou uzavreny do
StartTransacion;
try ...
Commit
except
Rollback
raise
end
Preci nemohu dovolit, aby tenky klient drzel nejake neuzavrene transakce.

Puvodni reseni bylo zhruba takove, jak ho popisuje Martin Burle:
(alespon jak tomu ja rozumim)
uzivatel 1 - Novy doklad - dostane cislo 100
uzivatel 2 - Novy doklad - dostane cislo 100
dalsi uzivatele pracuji
uzivatel 1 - ulozit - OK
uzivatel 2 - ulozit - violation of unique key
uzivatel 2
- dostane nove cislo dokladu
- zpravidla ne 101, ale treba uz 115 protoze dalsi pracuji taky
- upozorneni, ze bylo vygenerovano nove cislo dokladu
uzivatel 2 - ulozit znova - violation of unique key
mezitim zase nekdo neco vlozil
Navic do toho treba probiha nejaky hromadny import objednavek.
Konstatuji, ze behem dopoledne je porizeno treba 1000 objednavek.
NEPOUZITELNE

Dobra, tedy jsem zkusil zmenu cisla dokladu bez potvrzeni uzivatelem:

Pak ta zrudnost vypada zhruba takto:
FieldByName(doklad).asInteger := select max ...
repeat
xdoklad := FieldByName(doklad).asInteger
ApplyUpdates;
{
v OnReconcileError se v pripade "violation of unique key DOKLIX"
znovu dosadi FieldByName(doklad).asInteger = select max ...
}
untill (ChangeCount=0) or (xdoklad = FieldByName(doklad).asInteger)
tedy budto se to podarilo nebo nastala jina chyba (nebylo vygenerovano nove cislo dokladu)

ZRUDNOST, ZE ???
Takhle to dneska funguje.
Zmizela prodleva zpusobena hlaskou uzivateli a jeho potvrzenim zmeny cisla dokladu.

Presto dochazi (pomerne casto) k duplicitam cisla dokladu, a tak k opakovanym pokusum o ulozeni zaznamu (treba pri tech importech, ale i jindy).

JA NECHCI "ZKUS ULOZIT 100, MOZNA TO VYJDE, JINAK ZKUS 101, 115" ATD. DOKUD TO NEVYJDE.

Honza

Cislovani dokladu (FB)

[*] lelicek(zv)volny(tec)cz - 19.3.2008 14:18:54

> Hledam argumenty, jak zadavateli vysvetlit, ze doklady
> MUSI byt
> cislovany vyhradne prubezne.
>

Ahoj,
no a co to zapsat "na dvakrat":
1. Pri insertu vlozit jakesi docasne cislo dokladu
(nebo null, pokud lze nastavit unique klic aby ignoroval null)
2. pokud probehne vsechno OK tak nalezeni vygenerovat nove cislo
(SELECT MAX() a update na "nove seriove cislo" dokladu
a. pokud dojde v update v kroku 2. k chybe,
tak cele 2. zopakovat (nove cislo,....).


Pavel


Cislovani dokladu (FB)

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 19.3.2008 14:30:55

> 1. Pri insertu vlozit jakesi docasne cislo dokladu
> (nebo null, pokud lze nastavit unique klic aby ignoroval null)

Na unique indexu nemuze byt null.
Kdybych tam dal docasne treba -1, stejne dojde k duplicitam, kdyz to vlozi dva uzivatele najednou.

> 2. pokud probehne vsechno OK tak nalezeni vygenerovat nove cislo
> (SELECT MAX() a update na "nove seriove cislo" dokladu
> a. pokud dojde v update v kroku 2. k chybe,
> tak cele 2. zopakovat (nove cislo,....).

Viz muj predchozi mail:
repeat
zkousej to
until uspech
To se mi moc nezda.

Proto hledam ten argument vuci zadavateli, aby doklady byly cislovany prubezne a ja pouziju generator.

trigger after insert: update objednavka set doklad = gen_id

Tady k duplicite nikdy nedojde a rada bude souvisla, tedy pokud uzivatel neco nevymaze, to je ale jeho problem.

Honza

Cislovani dokladu (FB)

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 19.3.2008 14:38:56

Jan Sebelik dne 19 Mar 2008 v 14:24:

> JA NECHCI "ZKUS ULOZIT 100, MOZNA TO VYJDE, JINAK ZKUS 101, 115" ATD.
> DOKUD TO NEVYJDE.

Ahoj,

ja se s timhle pristupem smiril :) Principialne si myslim, ze lze pouzit bud generatory, a pak mas cislo urcite
nekonfliktni, ale kontrola ciselnych rad pramala, a nebo jakykoli jiny mechanismus, ale ten pak nutne musi pocitat s tim, ze
se mohou dva uzivatele rozhodnout doklad vytvorit nebo zapsat ve stejne chvili a jeden ze zapisu proto skonci s violation of
unique key... (v nasi aplikaci napr. proto, ze uzivatel si muze pozadovane cislo dokladu zvolit i rucne). Nicmene jestli
nekdo uvede nejake genialni reseni, rad se priucim :)

Karel Rys

Cislovani dokladu (FB)

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 19.3.2008 14:58:58


> JA NECHCI "ZKUS ULOZIT 100, MOZNA TO VYJDE, JINAK ZKUS 101, 115" ATD.
> DOKUD TO NEVYJDE.

To prece vubec neni nutne. Predpokladem je ale presunout ziskavani cisla
dokladu do te aplikacni vrstvy, ktera muze pracovat s transakcemi. Dalsi
moznosti by bylo nechat to na triggeru a dotahnout si cislo dokladu zpet.
Generator by se mi moc nelibil kvuli moznym mezeram pri stornu
rozpracovaneho dokladu.

1.predpokladane cislo
select cislo+1 from doklady

2.startTr1
insert into faktury....
zapisu doklad do databaze, neukoncim transakci, ale uz mam jistotu ze apply
prosel, ze se databaze "nebrani"

3.reknu si o zarucene unikatni cislo
startTr2
update doklady set cislo=cislo+1
select cislo from doklady
commit Tr2

4.ted mam zarucene nove, svoje cislo.
update faktury set doklad=
commit tr1

Martin

Cislovani dokladu (FB)

[*] Petr Hlozek <petr h(zv)mrp(tec)cz> - 19.3.2008 15:06:58

Jan Sebelik napsal(a):
>> 1. Pri insertu vlozit jakesi docasne cislo dokladu
>> (nebo null, pokud lze nastavit unique klic aby ignoroval null)
>
> Na unique indexu nemuze byt null.
> Kdybych tam dal docasne treba -1, stejne dojde k duplicitam, kdyz to vlozi dva uzivatele najednou.
>
>> 2. pokud probehne vsechno OK tak nalezeni vygenerovat nove cislo
>> (SELECT MAX() a update na "nove seriove cislo" dokladu
>> a. pokud dojde v update v kroku 2. k chybe,
>> tak cele 2. zopakovat (nove cislo,....).
>
> Viz muj predchozi mail:
> repeat
> zkousej to
> until uspech
> To se mi moc nezda.
>
> Proto hledam ten argument vuci zadavateli, aby doklady byly cislovany prubezne a ja pouziju generator.
>
> trigger after insert: update objednavka set doklad = gen_id
>
> Tady k duplicite nikdy nedojde a rada bude souvisla, tedy pokud uzivatel neco nevymaze, to je ale jeho problem.
> Honza

Neslo by to udelat treba takto:

Uzivatel zada fakturu, z ciselnych rad dostane nasledujici cislo a toto
cislo se take ulozi do ciselniku najako posledni pouzite.
Dalsi dostane nove cislo a hned se ulozi do databaze.
Pokud nektery z nich stiskne storno, cislo se ulozi nekam bokem a
dostane jej hned dalsi faktura?
Timto postupem by se dalo predejit diram.

Petr

COM a Catastrophic failure

[*] Petr Nehez <dpn(zv)atlas(tec)cz> - 19.3.2008 18:09:14

Zdravim,

konkretne asi nereknu, co delas spatne, ale "Catastrophic failure" je
chyba 0x8000FFFF, kterou Delphi defaultne vraci pri vyskytu vyjimky. Ja
jsem overridenul TObject::SafeCallException a vsechna mista ktera maji
co docineni s IDispatch::Invoke a pri vyskytu chyby vytvorim vlastni COM
objekt vyjimky (obsahuje dalsi informace - stack list, info k procesu
atd.) a ten nastavim pomoci SetErrorInfo. Dale pak jsem udelal vlastni
obsluhu "Safecall" vyjimek - nastavil jsem vlastni funkci do promenne
System.SafeCallErrorProc. Pak mam ve vsech modulech pristup ke vsem
informacim k vyjimce a da se s tim neco delat.
S obecnymi chybami "Catastrophic failure" se vetsinou nic nezmuze...

Petr

Jan Sebelik wrote:
> Vicevrstva architektura s aplikacnim serverem.
> Server := Create(Remote)COMObject(Class_ID) as IServer;
> Vyjimky a chybove hlasky, ktere vzniknou na serveru, dojdou na klienta korektne.
>
> Na zaklade podminene kompilace mohu opustit vicevrstvou architekturu a aplikacni server zakompilovat primo do klienta:
> Server := TServer.Create as IServer;
> Pokud na serveru dojde k vyjimce, dostanu hlasku "Catastrophic failure".
>
> Kde delam chybu???
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW
> = www.haes(tec)cz
> = Vojtiskova 321
> = 507 81 Lazne Belohrad
> ====================================
>
>
>
>

COM a Catastrophic failure

[*] Jiri Kulisek <jikulich(zv)quick(tec)cz> - 19.3.2008 17:37:11

Jan Sebelik napsal(a):
> Vicevrstva architektura s aplikacnim serverem.
> Server := Create(Remote)COMObject(Class_ID) as IServer;
> Vyjimky a chybove hlasky, ktere vzniknou na serveru, dojdou na klienta korektne.
>
> Na zaklade podminene kompilace mohu opustit vicevrstvou architekturu a aplikacni server zakompilovat primo do klienta:
> Server := TServer.Create as IServer;
> Pokud na serveru dojde k vyjimce, dostanu hlasku "Catastrophic failure".
>
> Kde delam chybu???
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW
> = www.haes(tec)cz
> = Vojtiskova 321
> = 507 81 Lazne Belohrad
> ====================================
>
>
>
>
Mas v implementujicim modulu (dtmServer..?) prepsanou metodu
SafeCallException? Pokud ano - jak? Melo by tam byt alespon volani
ComObj.HandleSafeCallException(...)

Jirka

Cislovani dokladu (FB)

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 19.3.2008 16:19:04

19.3.08, Petr Hlozek <petr_h(zv)mrp(tec)cz>:
> > Viz muj predchozi mail:
> > repeat
> > zkousej to
> > until uspech
> > To se mi moc nezda.
> > Honza
>
> Neslo by to udelat treba takto:
>
> Uzivatel zada fakturu, z ciselnych rad dostane nasledujici cislo a toto
> cislo se take ulozi do ciselniku najako posledni pouzite.
> Dalsi dostane nove cislo a hned se ulozi do databaze.
> Pokud nektery z nich stiskne storno, cislo se ulozi nekam bokem a
> dostane jej hned dalsi faktura?
> Timto postupem by se dalo predejit diram.

Tesne jsi me predbehl - zkusim nastinit reseni, ktere bezne pouzivam
ja a ktere jsem si myslel ze je vseobecne zname a pouzivane:

mam tabulku CITACE (cti obe C s hackem,I s carkou):
CREATE TABLE CITACE (
CIT_ID DINTEGER NOT NULL /* DINTEGER = INTEGER */,
CIT_HODNOTA DINTEGER NOT NULL /* DINTEGER = INTEGER */
); --PRIMARY KEY (CIT_ID, CIT_HODNOTA)
CIT_ID je konstanta pro kazdou radu, napr pro faktury, vydejky...
Zde jsou ulozena ID dokladu, ovsem pouze od posledniho pred kterym
byly commitnuty ID bez mezery v rade.

a proceduru CITAC_NOVA_HODNOTA, ktera se vola misto standardniho
gen_id (umi i read only pristup pro zjisteni posledni ulozene
hodnoty). Te se preda CIT_ID - rada, ktera nas zajima a ona projde
vsechny zaznamy daneho citace, hledajic mezeru v rade. Najde-li ji,
pouzije ji, pokud ne, pokusi se vlozit zaznam na konec ve stylu:
...
aOK = 0;
while (aOK = 0) do
begin
/* inkrementuje citac */
oHodnota = oHodnota+1;
aOK = 1;
...
/* zkusi vlozit novou hodnotu */
insert into citace( cit_id, cit_hodnota)
values( :iCit_id, :oHodnota);

/* kdyz se to nahodou nepovede */
when sqlcode -803, /* Violation of PRIMARY or UNIQUE KEY */
sqlcode -901 do /* Lock conflict on no wait transaction */
aOK = 0; /*..zustane ve smycce - zkusi znovu dalsi cislo */
end

Tato procedura dela pri ziskani noveho ID zaroven i uklid starych ID v
tabulce CITACE, takze pri nekonfliktnim nebo jednouzivatelskem
pristupu v ni zustavaji z kazde rady pouze 2 posledni ID (po commitu
posledni transakce).

Vyuziva se toho, ze jsou videt prave jen commitnuta data, ale diky PK
projde insert jen na dosud nepouzitych ID. Zatezove testy jsem
nedelal, ale diky tomu, ze v tabulce CITACE zustava jen par poslednich
ID a to jeste jen kdyz dojde k rollbacku a vytvori se mezery (nebo pri
soubehu vice neukoncenych transakci), neni duvod, aby se na
vygenerovani noveho ID znatelne cekalo.

Snad jsem to popsal dostatecne pruhledne..
PF


TJVdbtreeview a ADo

[*] Vasek Zaruba <zaruba(zv)elastoform(tec)cz> - 19.3.2008 21:13:28

Ahoj,

Pouzil jsem komponentu tjvdbtreeview (3.33) a narazil jsem na problem. ID,
ktere inkrementuji, vzdy nabyde hodnotu 1...

Tak se chova i sampl, kdyz zadam na root novy zaznam (ve vetvi svindluje a
je na oko vse ok, ale po znovunacteni ..)

Narazil jste negdo na toto?, Delam negde chybu?

D7Pro, XP



Data ukladam do mdb (ado), parent i uni je integer



Dik za radu Vasek

jak v INNO setupu generovat jmeno souboru

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 20.3.2008 09:54:24

Resil jsem stejny problem a nenasel reseni primo v inno setupu, takze
jsem to nakonec vyresil opacnym postupem - malym programkem napsanym v
Delphi, ktery natvrdo prepise zdojak inno setupu a je spousten v ramci
kompletni buildovaci release davky, ktera (mj.):
* dle vypisu z verzovaciho softu (SVN -log) doplni releaseNews.txt,
* zvedne verzi vybranym zpusobem (primarne poznamenanou s casem vydani
v prvnim radku releaseNews.txt),
* zapise pozadovanou verzi do prislusneho .rc souboru, ze ktereho si
to bere kompilace vsech exe a dll,
* zapise verzi do zminovaneho zdrojaku inno setupu
...(upgrade DB demo a init dat apod...)
* a spusti build vsech exe (prip.dll) a instalacniho baliku.

PF.


20.3.08, Petr Vetesnik <vetesnik(zv)gmail.com>:
> Dobry den,
>
> V INNO setup je polozka OutputBaseFilename kam se dava jmeno instalacniho
> souboru.
>
> Lze nejak nastavit, aby pri kompilaci se z hlavniho exe souboru vzala verze
> a pridala se automaticky k tomu jmenu?
>
> Napr. Tedy pokud mam OutputBaseFilename =setup aby z toho lezlo
> setup_1.0.0.0.exe setup_1.0.0.1.exe.
>
> Dekuji
>
> PVe
>
> PS: Obcas zapomenu rucne to zmenit :-(
>
>

jak v INNO setupu generovat jmeno souboru

[*] Petr Vetesnik <vetesnik(zv)gmail(tec)com> - 20.3.2008 09:20:22

Dobry den,

V INNO setup je polozka OutputBaseFilename kam se dava jmeno instalacniho
souboru.

Lze nejak nastavit, aby pri kompilaci se z hlavniho exe souboru vzala verze
a pridala se automaticky k tomu jmenu?

Napr. Tedy pokud mam OutputBaseFilename =setup aby z toho lezlo
setup_1.0.0.0.exe setup_1.0.0.1.exe.

Dekuji

PVe

PS: Obcas zapomenu rucne to zmenit :-(

zjisteni IP adresy

[*] Petr Vetesnik <vetesnik(zv)gmail(tec)com> - 20.3.2008 09:16:21

Preji dobry den,
mozna vam to prijde trivialni, ale opravdu si nevim rady.

Potreboval bych zjistit IP adresu sitovky na mem vlastnim pocitaci.
Ale problem je ten, ze mam dve a pri UDP komunikaci na externi zarizeni
vubec nemam tuseni, pres kterou to jede.

Jeste jsem zvladnul zjisteni vsech adapteru, jejich IP, masky, GW ale prave
tu kterou komunikuji neumim.


Dekuji

PVe

zjisteni IP adresy

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 20.3.2008 10:20:27

DD,

On Thursday, March 20, 2008 9:16 AM ,
Petr Vetesnik <vetesnik(zv)gmail.com> wrote:

> Preji dobry den,
> mozna vam to prijde trivialni, ale opravdu si nevim rady.
>
> Potreboval bych zjistit IP adresu sitovky na mem vlastnim pocitaci.
> Ale problem je ten, ze mam dve a pri UDP komunikaci na externi
> zarizeni vubec nemam tuseni, pres kterou to jede.
>
> Jeste jsem zvladnul zjisteni vsech adapteru, jejich IP, masky, GW
> ale
> prave tu kterou komunikuji neumim.

nejspolehlivejsi a nejjednodussi (ale ne vzdy pouzitelne) je navazat
se zminenym cilem TCP spojeni a odecist lokalni IP z tohoto spojeni.
Jinak je napriklad mozne pomoci iphlpapi.dll vycist routovaci tabulku
a zjistit napriklad IP interface za kterym je vychozi brana ci IP
Vaseho cile...

Zdravi
Dalibor Toman
Fortech s.r.o.

TJVdbtreeview a ADo

[*] Miroslav Kundela <mirus(zv)volny(tec)cz> - 20.3.2008 19:03:05


Ahoj,
take jsem neco podobneho resil. Nevim jestli Ti to pomuze.
Tento priklad je pouzit s komponentou ZeosDB.

Problem spocival v tom prideleni ID cisla natvrdo programove primo do Node.
Tohle mi pomohlo, ze jsem mel v DB to co jsem videl pri vkladani.
v JvDBTreeView a tim padem doslo i ke zpravnemu refreshSQL dle spravneho ID.
Procedury v prikladu jsem navazal na TAction
napr na klavesu INS a kombinaci Shift+INS(pripadne implicitni Alt+INS)
...

//pridani do stejne urovne
procedure TdockTreeForm.ActAddGroupExecute(Sender: TObject);
var
NewNode, SelNode: TJvDBTreeNode;
MV:Variant;
begin
With DTZeosTree1 do
begin
if Focused then
begin
SelNode:=TJvDBTreeNode(Selected);
if SelNode.Parent <> nil then
begin
NewNode := AddChildNode(TJvDBTreeNode(SelNode.Parent),True);

MV:=TZTable(TJvDBTreeView(SelNode.TreeView).DataLink.DataSet).Sequence.GetNe
xtValue;
NewNode.EditText;
NewNode.SetMasterValue(MV);

TZTable(TJvDBTreeView(NewNode.TreeView).DataLink.DataSet).FieldValues['ID']:
=MV;
end;
end;
end;
end;

//pridani potomka
procedure TdockTreeForm.ActSubGroupExecute(Sender: TObject);
var
NewNode, SelNode:TJvDBTreeNode;
MV:Variant;
begin
With DTZeosTree1 do
begin
SelNode:=TJvDBTreeNode(DTZeosTree1.Selected);

MV:=TZTable(TJvDBTreeView(SelNode.TreeView).DataLink.DataSet).Sequence.GetNe
xtValue;
if Focused then
begin
NewNode:= AddChildNode(TJvDBTreeNode(SelNode),True);
NewNode.EditText;
NewNode.SetMasterValue(MV);

TZTable(TJvDBTreeView(NewNode.TreeView).DataLink.DataSet).FieldValues['ID']:
=MV;
end;
end;
end;

S pozdravem M.K.

TJVdbtreeview a ADo

[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 21.3.2008 07:42:00



[mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of
On Wednesday, March 19, 2008 9:13 PM
Vasek Zaruba wrote:
>
> Pouzil jsem komponentu tjvdbtreeview (3.33) a narazil jsem na problem. ID,
> ktere inkrementuji, vzdy nabyde hodnotu 1...
>
> Tak se chova i sampl, kdyz zadam na root novy zaznam (ve vetvi svindluje a
> je na oko vse ok, ale po znovunacteni ..)
>
> Narazil jste negdo na toto?, Delam negde chybu?
>

Ahoj,
s vkladanim, editaci nebo mazanim jsem problem nemel.
Komponentu dbtreeview mam readonly a editace delam v jinem formulari nebo
druhe pulce formu.
Rozlisuji dve akce:
novy item dane urovne (parent si nactu z aktualniho zaznamu, ID se prideluje
automaticky) nebo
novy potomek (pro neho pouziju do hodnoty parent ID aktualniho zaznamu).
Vyplnim dalsi hodnoty zaznamu a ulozim. Po uspesnem ulozeni zavolam metodu
UpdateTree komponenty TJVdbtreeview.
Pouzivam take ADO, ale pro pristup k MS SQL neni problem. U dema jsem take
zjistil, ze jim to nefunguje.

Jako problem jsem videl a vidim v abecednim trideni jednotlivych vetvi
stromu. Zatim se mi na to nepodarilo prijit.

Igor Vodicka

COM a Catastrophic failure

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.3.2008 09:20:10

> > Vicevrstva architektura s aplikacnim serverem.
> > Server := Create(Remote)COMObject(Class_ID) as IServer;
> > Vyjimky a chybove hlasky, ktere vzniknou na serveru, dojdou na
> klienta korektne.
> >
> > Na zaklade podminene kompilace mohu opustit vicevrstvou
> architekturu a aplikacni server zakompilovat primo do klienta:
> > Server := TServer.Create as IServer;
> > Pokud na serveru dojde k vyjimce, dostanu hlasku "Catastrophic failure".

> Mas v implementujicim modulu (dtmServer..?) prepsanou metodu
> SafeCallException? Pokud ano - jak? Melo by tam byt alespon volani
> ComObj.HandleSafeCallException(...)
> Jirka

Diky, diky, diky...
To je vono.

Podminena kompilace rika, ze
kdyz APPSERVER, tak dedim od TAutoObject a pouzivaji se ruzne ty ClassFactory a pod.,
(nemohu dedit jenom od TTypedCOMObject, protoze dale implementuji IAPPServer a ten potrebuje IDIspatch)
kdyz ne APPSERVER, dedim od TInterfacedObject a zadne factory nejsou.

Lip jsem to nevymyslel.

Problem byl ten, ze na rozdil od TAutoObject trida TInterfacedObject nema implementovanu metodu SafeCallException.

Stacilo implemetovat tuto metodu v ramci me odvozene trida

{$IFNDEF APPSERVER}
function TFBConnection.SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult;
begin
HandleSafeCallException(ExceptObject, ExceptAddr, IUnKnown, '', '');
end;
{$ENDIF}

A uz mi to korektne hlasi napr: "Dynamic SQL Error, SQL ErrorCode=104, Token unknown - line 1, char 147, xxxx".

A to jsem potrebovat.

Honza

formular v dll

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 21.3.2008 09:24:11

Zdravim.

Snazim se zavolat formular ulozeny v dll s tim, ze tento formular chci otevrit s nastavenim FormStyle=fsMDIChild. To se mi nedari (dojde vzdy k vyjimce).
Pokud jsem ho oterviral s nastavenim FormStyle=fsNormal, vse probehlo OK.

Pro jistotu jeste uvadim to moje volani:

pri nastaveni fsMDIChild:

TDosPostHlForma.Create(nil)


pri nastaveni fsNormal:

DosPostHlForma := TDosPostHlForma.Create(nil);
DosPostHlForma.Show;

V tom hlavnim programu mam nasledujici deklaraci:
procedure ShowDoslaPosta; external 'DoslaPosta.dll';

Otazka zni: volani formulare z DLL knihovny tak, aby byl MDIChild vubec nejde nebo to volam blbe a nebo to volam dobre, ale asi tam mam jeste nejaky jiny problem, ktery z toho co jsem poslal, neni videt?


Dekuji Milan Dvorak

jak v INNO setupu generovat jmeno souboru

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 21.3.2008 10:28:16

Ahoj,

>V INNO setup je polozka OutputBaseFilename kam se dava jmeno instalacniho
souboru.
>ze nejak nastavit, aby pri kompilaci se z hlavniho exe souboru vzala verze
a pridala se automaticky k tomu jmenu?

pouzil bych Inno Setup PreProcessor. Je soucasti quickstart baliku nebo se
da doinstalovat samostatne (ISPP)

je k nemu help a i sample z ktereho je napr. toto :#define AppVersion GetFileVersion(AddBackslash(SourcePath) + "MyProg.exe")

[Setup]
AppName={#AppName}
AppVerName={#AppName} version {#AppVersion}

coz je podle mne presne to co chces, jede to automaticky/samostatne a
nemusis nic dalsiho resit.


ISPP umi spoustu zajimavych veci a obecne doporucuju se na to aspon mrknout,
preprocesory my delphisti moc
nevyuzivame (protoze prakticky D neumi :-) ) ale v tomdle pripade je to
rozhodne hodne pouzitelna zalezitost.


Cus
Radek
Xacti

aplikace bez formulare

[*] vt <vt.konference(zv)seznam(tec)cz> - 21.3.2008 13:30:29

p.simek(zv)svscr(tec)cz wrote:

> Mam aplikaci, ktera ma jedinou fci - pri spusteni poslat UDP hlasku a zase
> se ukoncit. Chtel bych ji udelat bez formulare. Jak na to?

console application ?

--
vt

aplikace bez formulare

[*] p.simek(zv)svscr(tec)cz <sw68(zv)seznam(tec)cz> - 21.3.2008 13:22:29

Zdravim vsechny..
Mam aplikaci, ktera ma jedinou fci - pri spusteni poslat UDP hlasku a zase
se ukoncit. Chtel bych ji udelat bez formulare. Jak na to?


program PosliUdp;

uses
Forms,
Unit1 in 'Unit1.pas' {Posli_UDP};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TPosli_UDP, Posli_UDP);
Application.Run;
end.

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

unit Unit1;

interface

uses
Windows, Variants, Classes, Graphics, Controls, Forms,
IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
IdBaseComponent;


type
TPosli_UDP = class(TForm)
IdUDPServer: TIdUDPServer;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Posli_UDP: TPosli_UDP;

implementation

{$R *.dfm}

const ciPort = 5000;


procedure TPosli_UDP.FormShow(Sender: TObject);
begin
IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
self.Close;
end;

end.

aplikace bez formulare

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 21.3.2008 13:38:31

heh, v jednoduchosti je sila ;-)
aneb pascal pro zacatenicky ;-)

ps: zapomel jsem vytvorit objekt, psal jsem to z hlavy, takze oprava

TR

program PosliUdp;
{$APPTYPE CONSOLE}

uses IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
IdBaseComponent;

const ciPort = 5000;
var IdUDPServer: TIdUDPServer;
begin
IdUDPServer:=TIdUDPServer.Create(nil);
IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
IdUDPServer.Free;
end.

> Zdravim vsechny..
> Mam aplikaci, ktera ma jedinou fci - pri spusteni poslat UDP hlasku a zase
> se ukoncit. Chtel bych ji udelat bez formulare. Jak na to?
>
>
> program PosliUdp;
>
> uses
> Forms,
> Unit1 in 'Unit1.pas' {Posli_UDP};
>
> {$R *.res}
>
> begin
> Application.Initialize;
> Application.CreateForm(TPosli_UDP, Posli_UDP);
> Application.Run;
> end.
>
> ----------------------------------------------------
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Variants, Classes, Graphics, Controls, Forms,
> IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
> IdBaseComponent;
>
>
> type
> TPosli_UDP = class(TForm)
> IdUDPServer: TIdUDPServer;
> procedure FormShow(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Posli_UDP: TPosli_UDP;
>
> implementation
>
> {$R *.dfm}
>
> const ciPort = 5000;
>
>
> procedure TPosli_UDP.FormShow(Sender: TObject);
> begin
> IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
> self.Close;
> end;
>
> end.
>
>
>
>
>

COM versus ne-COM

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.3.2008 13:36:30

Problem tady byl okrajove otevren v tematu "Catastrophic failure".
Odpoved jsem dostal, reseni jsem predtavil s tim, ze "Lip jsem to nevymyslel".

Dovoluji si proto problem otevrit jeste jednou, abych se ujistil, zda lepsi reseni existuje nebo ne.

Mam plnohodnotnou funkcni aplikaci s aplikacnim serverem (COM/DCOM).
Aplikacni server ma asi nasledujici strukturu:
(uvedene interface jsou navzajem oddedene stejne jako implementacni tridy)

THSAppServer = class(TAutoObject, IHSAppServer)
metoda Login, evidence pripojenych Klientu, prace se sdilenymi daty, kriticke sekce
TFBConnection = class(THSAppServer, IFBConnection)
resi zakladni ulohy komunikace s databazi (Connect atd, obsahuje TIBDatabase)
TFBProvider = class(TFBConnection, IAppServer)
Implementuje navic metody IAppServer
THSAppServer musi byt odvozen od TAutoObject, nestaci TTypedComObject, protoze IAppServer vyzaduje implementaci IDispatch.
TMyApplication = class(TFBProvider, IMyApplication)
Implementuje specificke metody potrebne pro danou aplikaci

Na klientovi pak
MyApplication := CoMyApplication.CreateRemote
FBCon := MyApplication as IFBConnection
FBPrv := MyApplication as IFBProvider;
FBSrv := MyApplication as IHSAppServer;
do TClientDataSet pak
cds.AppServer := FBPrv

Tohle spolehlive funguje, akorat rozchodit ten DCOM byva alchymie.
Navic mam otevrenou cestu k implementaci do jine databaze (MSSQL, Oracle, ...) tak, ze jednoduse prepisu par metod (kazda tak 15 radku) do ADO a pod., jak se to tady nedavno diskutovalo v subj. "Alternativy pripojeni na MSSQL a FB".

-----------------
Otazka cislo 1

Vadi mi, ze ty interface (a tridy) jsou navzajem oddedene, tedy navzajem zavisle.
Vadi mi, ze TMyApplication diky dedicnosti implementuje vsechny interface misto toho, aby jenom zavolala hotove COM objekty, ktere danou problematiku resi.
Zdalo by se mi prirozenejsi, kdyby ty implementacni tridy byly jaksi samostatne s tim, ze IMyApplication (oddedeny od IHSAppServer) by vracel jednotlive autonomni interface, ktere by si predem vytvoril, jako svoje metody.

Klient
FBCon := MyApplication.FBConnection;
FBPrv := MyApplication.FBProvider;

Problem je v tom, ze uvedene implementacni tridy sdili TIBDataBase a predavat si mezi temito interface v parametru komponentu TIBDatabase je dosti divne. Leda tak jako Pointer, ale to by byla asi taky cunarna. Moje reseni ma diky dedicnosti "protected dtb: TIBDatabase" ve vsech implementacnich tridach.

Proto jsem zustal zatim u reseni, ktere jsem predstavil.
Ma nekdo lepsi?

-----------------
Uvedenou funkcni architekturu hodlame instalovat jenom u vetsich zakazniku, kteri potrebuji vzdalene pristupy, kteri zaplati systemaka, aby u nich rozchodil DCOM.
U ostatnich malych bychom se radi omezili na Klient/Server pristup s tim, ze tridy aplikacniho serveru budou primo zakompilovany do Klient.exe.

Reseni mam v podminene kompilaci

{$IFDEF APPSERVER}
THSAppServer = class(TAutoObject, IHSAppServer)
{$ELSE}
THSAppServer = class(TInterfacedObject, IHSAppServer)
{$ENDIF}
Klient totiz nema a ani nechce mit zadne ClassFactory, ktere TAutoObject ke svoji existenci potrebuje.

Dale je treba v ne-APPSERVER verzi implementovat SafeCallException, jak mi poradil Jirka Kulisek, protoze TInterfacedObject ho sam neimplementure, dale je treba rozlisit, zda inicializacni casti kodu umistime do konstructoru nebo do metody Initialize (TInterfacedObject metodu nema), dale je treba v ne-APPSERVER verzi implementovat metody IDispatch alespon jako prazdne (RESULT = E_NOTIMPL)

Na Klientovi pak misto
MyApplication := CoMyApplication.CreateRemote
bude
MyApllication := TMyApplication.Create as IMyApplication;

Podminene kompilace mi vadi obecne.
Na Klientovi se jim pochopitelne nevyhneme, kdyz musime nejak zajistit, aby se kompiloval "tenky klient" nebo "tlusty klient" s implementacemi vsech interface.

-----------------
Otazka cislo 2

Muze to takto vubec spolehlive fungovat?
Nemohli bychom se nejakym zpusobem vyhnout podminene kompilaci alespon na AppServeru nebo ji co nejvice zjednodusit?
$IFDEF je na dvanacti mistech ve zdrojaku aplikacniho serveru.

Honza
P.S.
Omluuvam se, ja preci vlastne funkcni reseni mam.
Jenze to mi nejak nestaci.
Ja jsem proste typek, ktery navic trva na tom, aby reseni melo dostatecne "esteticke" hodnoty.
:-)
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

aplikace bez formulare

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 21.3.2008 13:44:31

>Mam aplikaci, ktera ma jedinou fci - pri spusteni poslat UDP hlasku a zase
se ukoncit. Chtel bych ji udelat bez formulare. Jak na to?

myslim ze takto :

program PosliUdp;

uses
Windows, Variants, Classes, Graphics, Controls, Forms,
IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
IdBaseComponent;

var
IdUDPServer: TIdUDPServer;

const ciPort = 5000;

begin
IdUDPServer:=
.......
....... tady je potreba vytvorit objekt a nastavit vsechny props co
mas nastavene v komponente
....... IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
IdUDPServer.Free;

end.

unity asi nepotrebujes vsechny, melo by tam byt zpracovani vyjimek atd....
ale princip je snad jasny.

Otazkou je zda IdUDPServer nepotrebuje messages, to netusim, nepouzivam ho.
Osobne bych pouzil
synapsi, ta podporuje blocking bez oken v pohode


Cus
Radek
Xacti

ADMIN: aplikace bez formulare

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 21.3.2008 14:04:33

Puvodni zprava ze dne 21.3.2008 od Tomas Rosa:

> heh, v jednoduchosti je sila ;-) aneb pascal pro zacatenicky ;-)

A pravidla konference pro zacatecniky jsou tady:

http://www.clexpert(tec)cz/konference/pravidla.asp

Zvlaste doporucuji informace o quotovani.

Petr Zahradnik, pocitacovy expert

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


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

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


aplikace bez formulare

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 21.3.2008 13:36:30

heh, v jednoduchosti je sila ;-)
aneb pascal pro zacatenicky ;-)

TR

program PosliUdp;
{$APPTYPE CONSOLE}

uses IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
IdBaseComponent;

const ciPort = 5000;
var IdUDPServer: TIdUDPServer;
begin
IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
end.

> Zdravim vsechny..
> Mam aplikaci, ktera ma jedinou fci - pri spusteni poslat UDP hlasku a zase
> se ukoncit. Chtel bych ji udelat bez formulare. Jak na to?
>
>
> program PosliUdp;
>
> uses
> Forms,
> Unit1 in 'Unit1.pas' {Posli_UDP};
>
> {$R *.res}
>
> begin
> Application.Initialize;
> Application.CreateForm(TPosli_UDP, Posli_UDP);
> Application.Run;
> end.
>
> ----------------------------------------------------
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Variants, Classes, Graphics, Controls, Forms,
> IdUDPServer, IdSocketHandle, IdComponent, StdCtrls, IdUDPBase,
> IdBaseComponent;
>
>
> type
> TPosli_UDP = class(TForm)
> IdUDPServer: TIdUDPServer;
> procedure FormShow(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Posli_UDP: TPosli_UDP;
>
> implementation
>
> {$R *.dfm}
>
> const ciPort = 5000;
>
>
> procedure TPosli_UDP.FormShow(Sender: TObject);
> begin
> IdUDPServer.Send('192.168.1.255',ciPort,'ZMENA IO');
> self.Close;
> end;
>
> end.
>
>
>
>
>

pouziti DLL knihoven

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 21.3.2008 17:24:49

Nevim co si pak pocit s tim GetProcAddress, kdyz tu adresu ziskam. Chapu, ze ji asi nejak vyuziju k volani te procedury nebo funkce, ale ani z helpu jsem nepochopil, jak ji pouziji.

Milan Dvorak

>>> p.langer(zv)nexnet(tec)cz 21.3.2008 16:26:44 >>>
Ahoj,
resenim je nedeklarovat to staticky, ale pouzit
LoadLibrary/LoadLibraryEx a GetProcAddress.

pl

aplikace bez formulare

[*] Pavel Simek <p.simek(zv)svscr(tec)cz> - 21.3.2008 17:02:47

OK, mam to:
program Posli_UDP;
{$APPTYPE CONSOLE}

uses
IdUDPServer,
IdComponent;

const ciPort = 5000;
var IdUDPServer1: TIdUDPServer;
begin
IdUDPServer1:=TIdUDPServer.Create(nil);
IdUDPServer1.Send('192.168.1.255',ciPort,'ZMENA_IO');
IdUDPServer1.Free;
end.

Presto se ale na plose objevi na chvili okno - bez nej to nejde?

P.

pouziti DLL knihoven

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 21.3.2008 16:26:44

Ahoj,
resenim je nedeklarovat to staticky, ale pouzit
LoadLibrary/LoadLibraryEx a GetProcAddress.

pl

Milan Dvorak wrote:
> V programu chci zpristupnit jiste funkce podle toho, jestli po instalaci budou ci nebudou nainstalovany urcite DLL knihovny.

pouziti DLL knihoven

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.3.2008 15:58:42

> jakmile ale nebyla, program hned pri
> spousteni kricel, ze mu chybi.

nikoli jako
external 'mydll.dll'
ale pomoci
Windows.LoadLibrary a GetProcAddress

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

pouziti DLL knihoven

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 21.3.2008 15:50:41

V programu chci zpristupnit jiste funkce podle toho, jestli po instalaci budou ci nebudou nainstalovany urcite DLL knihovny.

Mam uzivatele, kteri (a pouze oni, ne jini) pouzivaji urcite specificke funkce. Tyto funkce chci zpristupnit pouze temto uzivatelum. Rikal jsem si, ze bych tyto funkce dal do samostatnych DLL (nebo mam pouzit BPL?) knihoven a pokud po instalaci bude tato knihovna pristupna, bude pristupna i tato funkce.
Zkusil jsem to pomoci DLL. Funkce z DLL jsem ve vlastnim programu deklaroval pomoci STDCALL. Pokud byla DLL knihovna dostupna, fungovalo to, jakmile ale nebyla, program hned pri spousteni kricel, ze mu chybi. Da se nejak zajistit, ze kdyz knihovna neni, ze jde program spustit ? Pokud by sel spustit, pak bych uz si jeji neexistenci dokazal osetrit (jen bych testoval existenci DLL souboru).

Dalo by se to asi vyresit direktivou pri kompilaci, ale nechci na to porad myslet, protoze aktualizuji pomerne casto.

Milan Dvorak


pouziti DLL knihoven

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 21.3.2008 20:51:04

http://www.google.com/search?hl=en&q=Delphi+GetProcAddress

pl


Milan Dvorak wrote:
> Nevim co si pak pocit s tim GetProcAddress, kdyz tu adresu ziskam.

Cislovani dokladu (FB)

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 23.3.2008 17:00:16

On 3/19/08, Jan Sebelik <honza(zv)haes(tec)cz> wrote:
> Na unique indexu nemuze byt null.
> Kdybych tam dal docasne treba -1, stejne dojde k duplicitam, kdyz to vlozi dva uzivatele najednou.

Nevim presne o jake verzi mluvis, ale od 1.5:

create table u (x int);
create unique index neco on u(x);

insert into u values (null);
insert into u values (null);
insert into u values (null);
insert into u values (null);
insert into u values (null);
insert into u values (10);
insert into u values (10);
Statement failed, SQLCODE = -803
attempt to store duplicate value (visible to active transactions) in
unique index "NECO"

commit;

drop table u;

Tedy null tam dat muzes (dokonce nekolik).

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

aplikace bez formulare

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 22.3.2008 18:40:40

DD,

On Friday, March 21, 2008 5:02 PM ,
Pavel Simek <p.simek(zv)svscr(tec)cz> wrote:

> OK, mam to:
> program Posli_UDP;
> {$APPTYPE CONSOLE}
>
> uses
> IdUDPServer,
> IdComponent;
>
> const ciPort = 5000;
> var IdUDPServer1: TIdUDPServer;
> begin
> IdUDPServer1:=TIdUDPServer.Create(nil);
> IdUDPServer1.Send('192.168.1.255',ciPort,'ZMENA_IO');
> IdUDPServer1.Free;
> end.
>
> Presto se ale na plose objevi na chvili okno - bez nej to nejde?

to bude nejspis tou
{$APPTYPE CONSOLE}

, ktera zpusobi, ze programu bude prirazeno konzolove okno.

A radeji bych videl pouziti WinAPI a nikoliv zvytecne pouzivani
komponent .... Program bude mozna o par radku delsi (ale binarka
kratsi a programator se neco uzitecneho nauci...)

D. Toman

pouziti DLL knihoven

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 22.3.2008 14:46:23

Predchozi rada na Googleni mi pomohla. Nasel jsem, jak vyuzit to GetProcAddress.

Ale mam dalsi (snad posledni) problem. Chtel bych z DLL knihovny dostat do MDI aplikace nove Child okno. Zkousel jsem to dvema zpusoby:
1. Formular v DLL mam nastaven jako MDIChild, ale vzdy kdyz se mel pripojit k te volajici aplikaci, tak to zakrici, ze zadna MDI neni aktualne aktivni.
2. Tak jsem ten formulat v DLL knihovne jen creatnul s tim, ze to bylo pomoci funkce, ktera mela navratovou hodnotu typu TForm. Teprve pak jsem v te volajici aplikaci priradil tu vlastnost fsMDIChild a nasledne dal Show, ale ani toto nepomohlo.

Nema s timhle nekdo zkusenost?

Milan Dvorak
>Treba nejak takhle (schematicky)
>unit uMinMax;
>interface

pouziti DLL knihoven

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 22.3.2008 08:49:55

> Nevim co si pak pocit s tim GetProcAddress, kdyz tu adresu
> ziskam. Chapu, ze ji asi nejak vyuziju k volani te procedury nebo
> funkce, ale ani z helpu jsem nepochopil, jak ji pouziji.
> Milan Dvorak

Treba nejak takhle (schematicky)

unit uMinMax;

interface

var
Max: function (const x,y:Integer):Integer; stdcall;

procedure LoadLib(LibName:string);
procedure FreeLib;

implementation

var
Hnd : THandle;

procedure LoadLib(LibName:string);
begin
if Hnd<>0 then exit;
Hnd := LoadLibrary(PChar(LibName));
if Hnd=0 then begin
MessageBox(0,'Knihovna nenalezena','Chyba',MB_OK);
exit;
end;
Max := GetProcAddress(Hnd,'Max');
end;

procedure FreeLib;
begin
if Hnd=0 then exit;
FreeLibrary(Hnd);
Hnd:=0;
end;

end.

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

pouziti DLL knihoven

[*] koukal(zv)petrkoukal(tec)cz <koukal(zv)petrkoukal(tec)cz> - 25.3.2008 07:45:05

Dobry den

> Ale mam dalsi (snad posledni) problem. Chtel bych z DLL knihovnydostat do MDI aplikace nove Child okno. Zkousel jsem to dvema zpusoby:
> 1. Formular v DLL mam nastaven jako MDIChild, ale vzdy kdyz se melpripojit k te volajici aplikaci, tak to zakrici, ze zadna MDI neniaktualne aktivni.
>


Jedno mozne reseni je popsano zde.

http://delphi.about.com/library/weekly/aa020805a.htm

Petr Koukal

pouziti DLL knihoven

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 25.3.2008 06:57:02

Mohlo by pomoci prirazeni Application.Handle v dll na hodnotu z
Application.Handle toho exe souboru.

S pozdravem

Milan Tomes


Milan Dvorak napsal(a):
> Predchozi rada na Googleni mi pomohla. Nasel jsem, jak vyuzit to GetProcAddress.
>
> Ale mam dalsi (snad posledni) problem. Chtel bych z DLL knihovny dostat do MDI aplikace nove Child okno. Zkousel jsem to dvema zpusoby:
> 1. Formular v DLL mam nastaven jako MDIChild, ale vzdy kdyz se mel pripojit k te volajici aplikaci, tak to zakrici, ze zadna MDI neni aktualne aktivni.
>

COM versus ne-COM

[*] Jiri Kulisek <jikulich(zv)quick(tec)cz> - 25.3.2008 13:51:34


> Muze to takto vubec spolehlive fungovat?
> Nemohli bychom se nejakym zpusobem vyhnout podminene kompilaci alespon na AppServeru nebo ji co nejvice zjednodusit?
> $IFDEF je na dvanacti mistech ve zdrojaku aplikacniho serveru.
>
Ahoj,

neco podobneho jsem resil ve svem aplikacnim serveru - rezim BEZ COM pro
ciste lokalni pouziti, prace s COM pro vzdalene pouziti pomoci DCOM /
COM+ / Borland Socket Server..vse pokud mozno v jednom zdrojaku bez
podminene kompilace.. Myslim, ze neni moudre a ani technicky mozne resit
tohle rozdeleni primo v kodu tenkeho klienta..ja jsem to nakonec vyresil
vytvorenim DLL, ktera je konstruovana jako standardni COM library, ale
navic ma jeden dalsi vstupni bod pro lokalni pouziti, ktery na pozadani
vrati interface IAppServer. Funguje to docela dobre, pokud potrebuji
COM, knihovnu zaregistruji pomoci regsvr32, pokud ne - pouzivam "rucni"
rezim LoadLibrary/GetProcAddress..

Jirka Kulisek

Sinea a Vista

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 25.3.2008 17:01:48

V Event Logu neco neni?

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

Sinea a Vista

[*] Ludan <konference(zv)sales(tec)cz> - 25.3.2008 16:21:45

Zdravim,
Mam tento problem. Zakaznik presel z W95 na Windows Vista 64b. Ma ode mne
kdysi na zakazku napsany programek pouzivajici generator sestav Sinea.
Program po nekolika dnech prestal tisknout. Tisk jakoby probehne zadna
hlaska a na tiskarne se proste neobjevi. Je jedno na jakou tiskarnu to je.
Proste jakoby se prikaz tisknout vubec nedal. Nahled funguje normalne.
Pritom normalne tisknul a najednou prestal. Zkousel jsem kouzlit s
kompatibilitou, spoustet jako spravce a pod. ale nic nevede ke kyzenemu
vysledku. Ostatni aplikace na tom konkretnim PC bez problemu tisknou. U mne
program na XPprof take tiskne. Instalace tam zadna neni (nastaveni to ma v
ini souboru). Tak vubec nevim co s tim. Od ceho se odpichnout.

Prdem dik za nakopnuti.

Ludek

DLL, thready a Form

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 27.3.2008 11:56:04

Ahoj,

chtel bych si overit nasledujici. Mam v programu cinnost, rekneme
komunikaci pres internet, ktera nyni probiha na vyzadani uzivatele. Behem
cinnosti je zobrazeno modalni okno, ktere zobrazuje prubeh cinnosti.

Nyni se objevil pozadavek, umoznit tuto cinnost delat i na pozadi,
automaticky, bez zobrazovani. K tomu ucelu ji oddelit do DLL a umoznit
spoustet i jako thread.

Chci se zeptat - bude stacit provest upravy spocivajici v tom, ze
stavajici formular, s nimz je cinnost svazana, bude normalne zachovan, jen
nebude nikdy zobrazen? Tj. bude mit thread nebo DLL problem s tim, ze bude
creatovat nejaky TForm, ktery ovsem nebude nidky zobrazen?

David Lebeda

FastReport 4 a heslo

[*] DH-Soft <spravce(zv)dh-soft(tec)cz> - 27.3.2008 11:55:57

Dobry den.

Vite nekdo (pouziva nekdo) heslovane Fast report dokumenty *.fr3 ?



Chci udelat heslovany "fr" dokument - to umim (heslo treba "123" ale nevim,
jak mam z programoveho

kodu predat heslo dokumentu pri otevreni tak, aby se neotevrel FR dialog s
heslem.



Pr. Mam 2 dokumenty 2 ruznych spolecnosti (loga, apod). Program podle
nastaveni otevre vzdy jen jeden jemu pridruzeny FR.

To umim, ale uz nevim jak zajistit aby uzivatel "rucne neprohodil" oba
dokumenty a tim nespoustel ten co nema.



Napadlo me je zaheslovat a podle nastaveni je otevrit sam s "nejakym"
parametrem heslo .



Delphi 2005, FR 4



Dik za jakoukoliv radu Daniel

Sinea a Vista

[*] Petr Gregor <pgregor(zv)orsia(tec)cz> - 27.3.2008 11:55:59


Dobry den

mel jsem problemy s nalezenim cesty k sablone s predlohou sestavy
bylo to pri prechodu z Win95 na Win XP.
Pak mi to tisklo prazdnou stranku, bez jakekoliv hlasky. Ale jen u nekterych
zakazniku. Nemel jsem moznost je objizdet, tak jsem zkousel a prisel na
toto:
Pred tiskem jsem si nastavil celou cestu k sablone
a v komponente TSestava nastavil property
ReportDirIgnore
ReportDir

Mozna vam to pomuze.

Petr Gregor

_____________________________________
PS: Krasna hlaska: "Prdem dik za nakopnuti."


_____________________________________________________________
Ludek Napsal:

>Zdravim,
>Mam tento problem. Zakaznik presel z W95 na Windows Vista 64b.
>Ma ode mne kdysi na zakazku napsany programek pouzivajici generator sestav
Sinea.
>Program po nekolika dnech prestal tisknout.
>Tisk jakoby probehne zadna hlaska a na tiskarne se proste neobjevi. Je
jedno na jakou tiskarnu to je.
>Proste jakoby se prikaz tisknout vubec nedal. Nahled funguje normalne.
>Pritom normalne tisknul a najednou prestal.
>Zkousel jsem kouzlit s kompatibilitou, spoustet jako spravce a pod.
> ale nic nevede ke kyzenemu vysledku. Ostatni aplikace na tom
>konkretnim PC bez problemu tisknou.
> U mne program na XPprof take tiskne. Instalace tam zadna neni
> (nastaveni to ma v ini souboru). Tak vubec nevim co s tim. Od ceho se
odpichnout.

> Prdem dik za nakopnuti.

>Ludek


2975 (20080326)
__________

Sinea a Vista

[*] Ludan <konference(zv)sales(tec)cz> - 27.3.2008 11:56:03

----- Original Message -----
From: "Jiri Cincura" <diskuze(zv)cincura.net>>V Event Logu neco neni?

Ahoj,
Ne vubec nic. Zaznamenavaji si o programech Visty nekde neco. Pripadne kde a
jak to "zresetovat".

Ludek

Zkusenosti s FastCube ?

[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 27.3.2008 11:56:02

Zdravim.

Mate nekdo dobre nebo spatne zkusenosti s produktem FastCube od tvurcu
FastReportu?
Nebo vite o nejake alternative?

FastCube je generator kontingencnich tabulek neboli Pivot Tables a tady je
na nej odkaz: http://fast-report.com/en/products/fast-cube.html

Jiri Sladek

Zkusenosti s FastCube ?

[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 27.3.2008 11:55:58

Mate nekdo dobre nebo spatne zkusenosti s produktem FastCube od tvurcu
FastReportu?
Nebo vite o nejake alternative?

http://fast-report.com/en/products/fast-cube.html
Je to generator kontingencnich tabulek neboli Pivot Tables.

Jiri Sladek

Zkusenosti s FastCube ?

[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 27.3.2008 11:55:59

Mate nekdo dobre nebo spatne zkusenosti s produktem FastCube od tvurcu
FastReportu?
Nebo vite o nejake alternative?

FastCube je generator kontingencnich tabulek neboli Pivot Tables a tady je
na nej odkaz:
http://fast-report.com/en/products/fast-cube.html

Jiri Sladek

Sinea a Vista

[*] Ludan <konference(zv)sales(tec)cz> - 27.3.2008 11:55:59

>V Event Logu neco neni?

Ne nic jsem tam nenasel. Schvalne jsem zkusil zkompilovat sineademo a dat na
ten pocitac. Ted normalne tiskne stejne jako tisknul ten program drive.
Jeste mne napada jedna vec. Sbiraji Visty nejake info o aplikacich podle
jmena EXE souboru ? Kdyz ano tak kam a jak je "zresetovat".

Ludek

ADMIN: Zkusenosti s FastCube ?

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 27.3.2008 14:52:18

Puvodni zprava ze dne 27.3.2008 od Jiri Sladek:

> Mate nekdo dobre nebo spatne zkusenosti s produktem FastCube

Tak prece kdyz zdechne listserver, neposilaji se prispevky opakovane
porad dokolecka, protoze potom, az zavadu odstranim, vsechny
odejdou...

Petr Zahradnik, pocitacovy expert

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


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

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


Sinea a Vista

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 27.3.2008 15:30:21

From: "Petr Gregor" <pgregor(zv)orsia(tec)cz>
> mel jsem problemy s nalezenim cesty k sablone s predlohou sestavy
> bylo to pri prechodu z Win95 na Win XP.

Moje doporuceni:

ReportDirIgnore nechat vychozi hodnotu true, pak se do ReportDir automaticky
plni adresat aplikace
Predlohy davam do podadresare Pts v adresari aplikace a odkazuji se na ne
relativni cestou Pts\predloha.pts
Je to jednoduche a neni zadny problem s umistenim aplikace do libovolneho
jineho adresare.

Pokud se nastavi ReportDirIgnore na false, pak se musi programator postarat
o spravne naplneni ReportDir v zavislosti na adresari aplikace a predloh.

Vaclav Krmela

Sinea a Vista

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 27.3.2008 15:42:22

Vaclav Krmela napsal(a):
> Je to jednoduche a neni zadny problem s umistenim aplikace do libovolneho
> jineho adresare.

Problem to je, pokud se za chodu aplikace z nejakeho duvodu zmeni
aktualni slozka (treba pri otevirani nejake souboru pomoci TOpenDialog).
Resim to tak, ze pred volanim tisku nastavim nejprve cestu podle EXE:
SetCurrentDir(ExtractFileDir(Application.ExeName));

Pak jiz volani sestav pomoci relativni cesty necini zadne potize.

Peca

Zjisteni e-mail adres

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 28.3.2008 08:17:49

K odesilani e-mailu pouzivam Synapsi/D7. Muzu se nejak dostat k seznamu adres evidovanych v Outlooku nebo obecne v instalovanem e-mail klientskem programu aniz bych explicitne vedel jaky klient tam je?

Z.Kalhous
ToWare s.r.o.

FB server classic/super

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 28.3.2008 08:15:48

Setkal jsem se s nazorem, ze jestlize je v siti vice pripojenych uzivatelu a jeden z nich spusti neco s velkymi naroky na SQL server (treba davkove zpracovani), pak classic server "spravedlive" rozdeli zatez a obsluhuje i ostatni uzivatele zatimco superserver slouzi jen tomuto jednomu a ostatni se prakticky zaseknou. Zda se mi to protismyslne ale vite nekdo jak je to doopravdy?

Z.Kalhous
ToWare s.r.o.

FB server classic/super

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 29.3.2008 14:47:56

Nebylo tim mysleno spis, ze Classic vyuzije i vic CPU, kdezto SS
vyuzije jen jeden - tedy ze kdyz se udela zatez, muze to vypadat, ze
se ostatni zasekli, ale je to jen tim problemem skalovani na SMP.

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

Zkusenosti s FastCube ?

[*] Josef Zvonicek <prosoft(zv)prosoft(tec)cz> - 28.3.2008 17:20:28

> Mate nekdo dobre nebo spatne zkusenosti s produktem FastCube od tvurcu
> FastReportu?
> Nebo vite o nejake alternative?

Pouzivam pivotcube a jsem spokojen. Nic jineho jsem ale nikdy nepoznal.

www.pivotcube.com

Zvo.

Zkusenosti s FastCube ?

[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 30.3.2008 18:41:50

Diky za prvni ohlas, doufam ze ne posledni.

Ja testuju FastCube a vypada to na dobry produkt s dost neohrabanym
ovladanim.
Napriklad bych ocekaval, ze prohozeni sloupcu se udela jednim drag-and-drop.
Ale ouha, musim otevrit nabidku, najit nazev sloupce a kliknout na sipce
nahoru/dolu.
J.S.

> Pouzivam pivotcube a jsem spokojen. Nic jineho jsem ale nikdy nepoznal.
> www.pivotcube.com
> Zvo.

FB server classic/super

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 31.3.2008 06:52:39

Tak ted uz jsem z toho uplne zmatenej. Totiz alespon podle dokumentace se mi to jevi tak, ze parametr CpuAffinityMask se nastavuje pro SuperServer a kdyz dam CpuAffinityMask=15, mel by jet v pohode na ctyrech procesorech.

Z.Kalhous

From: Jiri Cincura
Nebylo tim mysleno spis, ze Classic vyuzije i vic CPU, kdezto SS
vyuzije jen jeden - tedy ze kdyz se udela zatez, muze to vypadat, ze
se ostatni zasekli, ale je to jen tim problemem skalovani na SMP.

Setkal jsem se s nazorem, ze jestlize je v siti vice pripojenych uzivatelu a jeden z nich spusti neco s velkymi naroky na SQL server (treba davkove zpracovani), pak classic server "spravedlive" rozdeli zatez a obsluhuje i ostatni uzivatele zatimco superserver slouzi jen tomuto jednomu a ostatni se prakticky zaseknou. Zda se mi to protismyslne ale vite nekdo jak je to doopravdy?
Z.Kalhous


Vhodna verze Delphi

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 31.3.2008 10:55:02

Zdravim vsechny, rad bych se zeptal, s jakou verzi Delphi mate zatim nejlepsi zkusenosti? Kdysi jsem tu zaznamenal nazor, ze posledni dobra verze byla ver. 7. Jde mi o to, jestli koupit posledni verzi, nebo radeji nejakou starsi.


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

FB server classic/super

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 31.3.2008 11:15:03

Zdenek Kalhous dne 31 Mar 2008 v 6:52:

> Tak ted uz jsem z toho uplne zmatenej. Totiz alespon podle dokumentace
> se mi to jevi tak, ze parametr CpuAffinityMask se nastavuje pro
> SuperServer a kdyz dam CpuAffinityMask=15, mel by jet v pohode na
> ctyrech procesorech.

Jenze kdyz SuperServer (zatim) neni naprogramovany tak, aby vyuzil vice vlaken, rekl bych, ze vysledek toho nastaveni je
spis takovy, ze SuperServer pojede v pohode na kteremkoli z tech 4 procesoru :). Tzn. vytizi jeden procesor na 100 % a ty
ostatni bud vubec, nebo jen zanedbatelne necim okrajovym.

Karel Rys

FB server classic/super

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 31.3.2008 11:23:04

Tak nevim, ale ziju v domneni, ze Classic server spousti pro kazdeho
pripojeneho klienta novy proces, zatimco Super server spousti pro
kazdeho pripojeneho klienta nove vlakno. A tim padem by nemel byt na
viceprocesorovych strojich problem ani v jednom pripade. Chtelo by to P.
Cisare - ten nam vsem da rozuzleni :)

S pozdravem

Milan Tomes


Karel Rys napsal(a):
> Zdenek Kalhous dne 31 Mar 2008 v 6:52:
>
>
>> Tak ted uz jsem z toho uplne zmatenej. Totiz alespon podle dokumentace
>> se mi to jevi tak, ze parametr CpuAffinityMask se nastavuje pro
>> SuperServer a kdyz dam CpuAffinityMask=15, mel by jet v pohode na
>> ctyrech procesorech.
>>
>
> Jenze kdyz SuperServer (zatim) neni naprogramovany tak, aby vyuzil vice vlaken, rekl bych, ze vysledek toho nastaveni je
> spis takovy, ze SuperServer pojede v pohode na kteremkoli z tech 4 procesoru :). Tzn. vytizi jeden procesor na 100 % a ty
> ostatni bud vubec, nebo jen zanedbatelne necim okrajovym.
>

FB server classic/super

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 31.3.2008 11:33:05

Ano, je to presne tak. Classic pousti pro klienta novy proces,
superserver vyuziva vlakna.

V QuickStart guide pisou, ze classic podporuje vice procesorovy provoz,
superserver ne. Problem je pry v prehazovani vlakna mezi jednotlivymi
procesory (jadry), coz muze server vyrazne brzdit.

Ladislav Stary


Milan Tomes napsal(a):
> Tak nevim, ale ziju v domneni, ze Classic server spousti pro kazdeho
> pripojeneho klienta novy proces, zatimco Super server spousti pro
> kazdeho pripojeneho klienta nove vlakno. A tim padem by nemel byt na
> viceprocesorovych strojich problem ani v jednom pripade. Chtelo by to P..
> Cisare - ten nam vsem da rozuzleni :)
>
> S pozdravem
>
> Milan Tomes

FB server classic/super

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 31.3.2008 11:43:06

Hm. A jak ma uzivatel poznat, jestli FB je nebo neni "uz" naprogramovany tak, aby definovani parametru konfigurace podle dokumentace melo nejaky efekt a smysl?
Z.Kalhous

From: Karel Rys
> Tak ted uz jsem z toho uplne zmatenej. Totiz alespon podle dokumentace
> se mi to jevi tak, ze parametr CpuAffinityMask se nastavuje pro
> SuperServer a kdyz dam CpuAffinityMask=15, mel by jet v pohode na
> ctyrech procesorech.
Jenze kdyz SuperServer (zatim) neni naprogramovany tak, aby vyuzil vice vlaken, rekl bych, ze vysledek toho nastaveni je
spis takovy, ze SuperServer pojede v pohode na kteremkoli z tech 4 procesoru :). Tzn. vytizi jeden procesor na 100 % a ty
ostatni bud vubec, nebo jen zanedbatelne necim okrajovym.

FB server classic/super

[*] Tomas Krejzek <tomas.krejzek(zv)email(tec)cz> - 31.3.2008 11:35:05

No vec se podle mych informaci ma tak, ze neni vhodne poustet SS na vic procesoru, protoze
manager ve windows se snazi vyuzit vsechny, ale v pripade FB to ma negativni vliv na
vykon(to prehazovani jednoho procesu mezi procesory).

S osobnich zkusenosti vim (mame i >60 online uzivatelu najednou) ze jeden dotaz
nezablokuje, ale vyrazne zpomali provadeni dalsich operaci.

Tom

Milan Tomes napsal(a):
> Tak nevim, ale ziju v domneni, ze Classic server spousti pro kazdeho
> pripojeneho klienta novy proces, zatimco Super server spousti pro
> kazdeho pripojeneho klienta nove vlakno. A tim padem by nemel byt na
> viceprocesorovych strojich problem ani v jednom pripade. Chtelo by to P.
> Cisare - ten nam vsem da rozuzleni :)
>
> S pozdravem
>
> Milan Tomes
> ======================================================================
KP-SYS mail server
======================================================================

FB server classic/super

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 31.3.2008 12:21:09

Jen doplnim, ze problem prehazovani vlaken mezi procesory by snad melo
resit nastaveni parametru CpuAffinityMask v firebird.conf.

Ladislav Stary

Tomas Krejzek napsal(a):
> No vec se podle mych informaci ma tak, ze neni vhodne poustet SS na vic procesoru, protoze
> manager ve windows se snazi vyuzit vsechny, ale v pripade FB to ma negativni vliv na
> vykon(to prehazovani jednoho procesu mezi procesory).
>
> S osobnich zkusenosti vim (mame i >60 online uzivatelu najednou) ze jeden dotaz
> nezablokuje, ale vyrazne zpomali provadeni dalsich operaci.
>
> Tom

FB server classic/super

[*] dphi_forum(zv)proces.sk - 31.3.2008 12:47:11



> From : <kalhous(zv)eu(tec)cz>
> A jak ma uzivatel poznat, jestli FB je nebo neni "uz" naprogramovany tak,
aby definovani parametru konfigurace podle dokumentace melo nejaky efekt a
smysl?

Napr. : Firebird-1.5.5-ReleaseNotes.pdf : CpuAffinityMask
(was cpu_affinity in isc_config/ibconfig). With Firebird SuperServer on
Windows, there is a problem with
the operating system continually swapping the entire SuperServer process
back and forth between processors
on SMP machines. This ruins performance. This parameter can be used on SMP
systems on Windows to set
Firebird SuperServer's processor affinity to a single CPU.

SuperServer naozaj nevie efektivne vyuzit SMP HW na obsluhu viacerych
uzivatelov/dotazov.
Classic funguje dobre (hlavne na Linuxe, na Win32 nemam skusenost)

Planovane je :
Release 2.5.0
* Scalable multi-threading with per-connection caches
Release 3.0.0
* Unified architecture
* Effective multi-threading with the shared cache

Rudo

FB server classic/super

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 01.4.2008 11:18:50

Od Slavka Skopalika:

---------- Forwarded message ----------
SS: Pro kazde spojeni vytvari jedno vlakno. Ovsem cely SQL engine
je uzamknut kritickou sekci, takze se vzdy vykonava prave jedno vlakno.
S timto modelem maji velke problemy systemy pred windows XP (NT,2000),
kdy detekuji pretizeny procesor (a bohuzel nevi, ze jede jen jedno vlakno)
a toto vlakno prenesou na jiny procesor, coz znamena, kompletni "vyliti"
cache CPU a "naliti" do druheho CPU.
Mimo kritickou sekci SQL enginu se vykonavaji IO operace (disk + sit)
a take UDF. Tj. jestlize mate vypocetne narocne UDF (korelace, OCR, ...),
tak se vyplati priradit FB na dva CPU i vice.
Jako default nastavuji FB na druhy fyzicky CPU (pokud je pritomen),
jelikoz
prvni vetsinou resi kernel veci OS. Pokud mate NUMA architekturu
(Opteron),
tak je treba FB priradit k CPU, kde je vice RAM.
SS v mnoha aplikacich podava lepsi vykon, nez CS a doporucuji jej pro
zacatecniky.

CS: Jeden klient, jeden proces. Velmi narocne na zdroje OS, ale do cca 50
klientu
na SMP (4 jadra a vice) lepsi nez SS. Nastaveni vyzaduje hlubsi znalosti
FB
a neznalost se tresta celkem hrube (problemy s restartem, problemy s
cache, ...).


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

FB server classic/super

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

On 3/31/08, Zdenek Kalhous <kalhous(zv)eu(tec)cz> wrote:
> Hm. A jak ma uzivatel poznat, jestli FB je nebo neni "uz" naprogramovany tak, aby definovani parametru konfigurace podle dokumentace melo nejaky efekt a smysl?
> Z.Kalhous

Jen doplnim informace nize. Plne vyuzit SMP umi Vulcan (fork FB
vytvoreny J.Starkeym na zakazku, dostupny i pro FB), se kterym se bude
mergeovat aktualni FB. Cast se planuje na 2.5, takze SMP jiz bude
mozne okusit. Plny merge (vcetne veci okolo) je planovan na 3.0(+).
Hovorilo se o tom na Firebird Developers' Day 2007
(http://www.dbsvet(tec)cz/view.php?cisloclanku=2007100903).

Codebase Vulcanu je na SF ke stazeni, takze pro hrani je mozne se
podivat, "jak to slape" (do FB to sice nepujde 1:1 (takze se muez nco
pokazit i zlepsit), ale aspon pro predstavu).

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

FB server classic/super

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 01.4.2008 00:24:01

On 3/31/08, Ladislav Stary <stary(zv)ekodat(tec)cz> wrote:
> Jen doplnim, ze problem prehazovani vlaken mezi procesory by snad melo
> resit nastaveni parametru CpuAffinityMask v firebird.conf.

Ano, staci jej uzamknout na jeden a je to. Nicmene to prehazovani se
projevi jen pri zatezi systemu + zatezi FB. V normalnim provozu se
neni treba obavat - zatim se mi to nejak masivne nestalo.

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

FB server classic/super

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 01.4.2008 00:22:00

On 3/31/08, Milan Tomes <delphi(zv)haida(tec)cz> wrote:
> Tak nevim, ale ziju v domneni, ze Classic server spousti pro kazdeho
> pripojeneho klienta novy proces, zatimco Super server spousti pro
> kazdeho pripojeneho klienta nove vlakno. A tim padem by nemel byt na
> viceprocesorovych strojich problem ani v jednom pripade. Chtelo by to P.
> Cisare - ten nam vsem da rozuzleni :)

SS spousti nove vlakno. Ale SS si scheduluje vlakna sam a vice klientu
zaraz nepusti. Proto na SMP nedokaze vyuzit vse co ma.

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

Firebird a ODS pro 1.5

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 04.4.2008 18:57:00

http://blog.vyvojar(tec)cz/jirka/archive/2006/10/31/Z_E100_loha-na-nov_E900_m_2C00_-obnova-na-star_E900_m.aspx

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

Build datum, D7

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 04.4.2008 16:32:50

Jojo, to presne potrebuji, zaradit to do buildovaci .cmd davky. Jenom
jsem si z prvniho proletnuti toho zdrojaku nejak spatne myslel, ze je
to navazano na ten projekt pres Delphi linker a ono se tam pristupuje
primo pres API, takze je to v poho. Dik. PF.

> Najjednoduchsie asi bude napisat si konzolovu aplikaciu, ktora prijme cestu k vyslednemu exe (dll, bpl, ...) suboru cez command line a vykona na nom UpdateLinkerTimeStamp. Potom mozes pouzit .cmd subor, ktory bude volat dcc32 a hned za tym tuto konzolovu aplikaciu.
>
> To za predpokladu, ze cesta a meno vysledneho exe suboru je vopred znama a nemusi byt odvodena zo zdrojakov a nastaveni dcc32, to by uz bolo o nieco zlozitejsie.

Build datum, D7

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 04.4.2008 16:08:48

> Moc hezke !-)
> A je nejaka sance, jak to tam dostat pri buildeni pres DCC32.EXE?

:-) Dik.

Najjednoduchsie asi bude napisat si konzolovu aplikaciu, ktora prijme cestu k vyslednemu exe (dll, bpl, ...) suboru cez command line a vykona na nom UpdateLinkerTimeStamp. Potom mozes pouzit .cmd subor, ktory bude volat dcc32 a hned za tym tuto konzolovu aplikaciu.

To za predpokladu, ze cesta a meno vysledneho exe suboru je vopred znama a nemusi byt odvodena zo zdrojakov a nastaveni dcc32, to by uz bolo o nieco zlozitejsie.

HTH
TOndrej

Build datum, D7

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 04.4.2008 15:14:44

Moc hezke !-)
A je nejaka sance, jak to tam dostat pri buildeni pres DCC32.EXE?

PF

2008/4/4, Ondrej Kelle <o.kelle(zv)digitalpublishing.de>:
> > Jak lze zjistit datum sestaveni beziciho programu D7? Dik.
>
> PE format ma na to urcene pole s nazvom TimeDateStamp, ale zial, Delphi linker ho nevyplna spravnou hodnotou.
> Tu je jedno rozsirenie IDE, ktore to robi:
> http://cc.borland.com/Item/19823
>
> Kod na nacitanie a zapis tejto hodnoty najdes v procedurach LinkerTimeStamp a UpdateLinkerTimeStamp.
>
> HTH
> TOndrej
>
>
>

Quick Report a Velke fonty

[*] Jaromir Cermak <cermak(zv)procom(tec)cz> - 04.4.2008 12:28:32

Ahoj vsichni

Mam D7 ent. QR3.5.0. Kdyz tisknu sestavu se standardne nastavenymi fonty ve Windows je vse OK. kdyz ale nastavim velke fonty nektere texty se uriznou, zmeni se font pisma a vse je zmrsene. Na sestave je pouzit Currier New, Property Scaled formulare je False.

Da se s tim neco delat?

Je to moje chyba nebo je to problem Quick reportu? Co bych mel hledat?

Jak se s tim vyrovnavaji nove verze QuickReporu (i placene)?

Dekuji za kazde postrceni spravnym smerem.

QR nechci opoustet, tech sestav je v nem prilis moc.

Dekuji Jaromir Cermak

Build datum, D7

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 04.4.2008 13:02:34

> Jak lze zjistit datum sestaveni beziciho programu D7? Dik.

PE format ma na to urcene pole s nazvom TimeDateStamp, ale zial, Delphi linker ho nevyplna spravnou hodnotou.
Tu je jedno rozsirenie IDE, ktore to robi:
http://cc.borland.com/Item/19823

Kod na nacitanie a zapis tejto hodnoty najdes v procedurach LinkerTimeStamp a UpdateLinkerTimeStamp.

HTH
TOndrej

Firebird a ODS pro 1.5

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 04.4.2008 13:36:37

> FB 2 AFAIK nelze prinutit aby obnovoval DB do ODS verze 10.1.
> Jedina moznost (nezkousel jsem) by byla provest zalohu na FB 2 a
> obnovu teto zalohy na FB 1.5, nicmene je jasne, ze dana DB nesmi
> pouzivat nove features FB 2.

FB 2.0 v pohode rozlouskne zalohu z 1.5, opacne to nejde.
Vec se ma tak, ze nekteri uzivatele maji FB 1.5, nekteri uz 2.0. Ja pouzivam
2.0, ale zalohy a vzory pro zakazniky musim proto posilat ve formatu 1.5,
alespon dokud se nepodari vsude zvednout verzi.
Zkusim si pohrat s podstrcenim gbak ze starsi verze, jak navrhoval Marek
Dostal, nebo se pokusim rozbehat obe verze zaroven. Diky.

Martin

FB computed by

[*] delphinpp(zv)atlas(tec)cz - 04.4.2008 12:58:34

Zdravim,

urobil som si take univerzalne "udelatko", ktore mi presuva data z
jednotlivych stlpcov tabulky do tabulky s takou istou strukturou, ale v
inej FB databaze.. Problemom je, ze v niektorych tabulkach sa vyskytuju
"COMPUTED BY" stlpce, na nich to potom spadne s chybou "attempted update
of read-only column". Ako pri vytvarani univerzalneho insert statementu
vynechat tie stlpce, ktore su "COMPUTED BY" ?

mam nieco ako :
ibsql.sql.add('insert into ' + tblname + ' (' + fieldlist + ') values ('
+ paramlist + ')');
.
.

Aky priznak, resp. aka property z TField identifikuje "COMPUTED BY" stlpec ?

dik,

Miso

Firebird a ODS pro 1.5

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 04.4.2008 12:42:33

> Firebird 2.0 pouziva ODS verze 11. Netusite nekdo, zda je mozne prinutit
> FB, aby zalohoval/obnovoval do ODS citelne starsi verzi 1.5?

Zaloha: je spusteny FB 2.0, databaze byla vytvorena pod FB 2.0 a vytvorim
zalohu pomoci gbak.exe od FB 1.5., tak vznikly soubor potom mohu na janem PC
pod FB 1.5 obnovit.
Obracene to asi nepujde, ale nezkousel jsem to.

Marek Dostal
D7Prof, WinXP, FireBird 1.5, 2.0

Firebird a ODS pro 1.5

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 04.4.2008 12:26:31

FB 2 AFAIK nelze prinutit aby obnovoval DB do ODS verze 10.1.
Jedina moznost (nezkousel jsem) by byla provest zalohu na FB 2 a obnovu
teto zalohy na FB 1.5, nicmene je jasne, ze dana DB nesmi pouzivat nove
features FB 2.

S pozdravem

Milan Tomes


Martin Burle napsal(a):
> Firebird 2.0 pouziva ODS verze 11. Netusite nekdo, zda je mozne prinutit
> FB, aby zalohoval/obnovoval do ODS citelne starsi verzi 1.5?
>
>

Build datum, D7

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 04.4.2008 11:52:27

Jak lze zjistit datum sestaveni beziciho programu D7? Dik.
Z.Kalhous

Firebird a ODS pro 1.5

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 04.4.2008 11:52:29

Ahoj,

Firebird 2.0 pouziva ODS verze 11. Netusite nekdo, zda je mozne prinutit
FB, aby zalohoval/obnovoval do ODS citelne starsi verzi 1.5?

Diky,

Martin

Firebird a ODS pro 1.5

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 04.4.2008 21:41:12

Ahoj,

Martin Burle napsal(a):
> Vec se ma tak, ze nekteri uzivatele maji FB 1.5, nekteri uz 2.0.
> Ja pouzivam 2.0, ale zalohy a vzory pro zakazniky musim proto
> posilat ve formatu 1.5, alespon dokud se nepodari vsude zvednout verzi.

No a co ti brani vytvaret databaze a jejich zalohy pod FB 1.5? Ja mam
na svem pocitaci jak FB 1.5, ve kterem vytvarim zalohy pro distribuce
(uplne stejny duvod jako mas ty), tak FB 2.0, na kterem ladim (a na 1.5
obcas otestuji, jestli mi to funguje i na starsi verzi), tak FB 2.1 na
kterem jsem si delal par testu (a zrejme zkusim i novou 2.5 verzi). Vse
bezi soucasne na ruznych portech. Podrobny navod tu IMHO probehl konferenci.

> Zkusim si pohrat s podstrcenim gbak ze starsi verze, jak navrhoval Marek

To bych radeji neriskoval. Pokud nevis, co presne GBAK dela, jestli
takto nemuze vzniknout nejaka chyba v databazi, tak bych to radeji nedelal.
I kdyz Jirka Cincura pise, ze to je bez problemu, tak treba opravdu
nic nehrozi. Zalezi, jakym zpusobem GBAK uklada a obnovuje metadata.

> Martin

Peca

DSPack - DVDPlayer

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 05.4.2008 13:14:30

Ahoj,
pokousim se vytvorit DVD Player, u ktereho potrebuji, aby dokazal
zastavit na libovolnem snimku, umel po snimcich krokovat dopredu dozadu
apod.
Dokud jsem pracoval s videosouborem, nebyl to problem, pouzival jsem na
to interface IMediaSeeking. Jenze to mi na DVD formatu nefunguje.
Nakonec pouzivam krkolomnou seqvenci prikazu ( z pauzy}
FilterGraph.Play,DVDControl2.PlayAtTime,FilterGraph.Pause a
IVideoFrameStep.FrameStep, ale porad to neni
ono, casto je to o par snimku vedle. Existuje cesta, jak dosahnout
pozadovaneho vysledku?

Vaclav Sazima


DSPack - DVDPlayer - DSVideWindowEx

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 05.4.2008 16:18:43

Ahoj,
nevite nekdo, prosim, jak vysvetlit TDSVideWindowEx aby zobrazene video
sledovalu zmenu polohy a rozneru TDSVideWindowEx?
Dik
Vaclav Sazima

Vyber pripojeni k MSSQL a FB

[*] Martin Matousek <martin.matousek(zv)topspin(tec)cz> - 06.4.2008 12:18:30

Omlouvam se ze na Vase namety reaguji takto pozde, ale dovolena a
financni urady si vzaly sve. S resenim jsme daleko nepokrocili, takze
alespon tato trocha poznatku ...
> nami vyvijena aplikace v D5 slozitosti "ucetnictvi" doposavad vyuzivala
> pouze MSSQL pripojene pres ADO a OleDB provider pro MSSQL. Nove jsme se
> rozhodli podporovat FB a tak hledame vhodne reseni. V tuto chvili si
> hrajeme s prevodem sql dialektu a pro toto nam postacuje spojeni ADO a
> ODBC driveru pro FB ktery je zdarma k dispozici. Uz ted se nam ale zda,
> ze je toto pripojeni pomalejsi a o stabilite nic vedet nemuzem.
>
> Doporucili byste prechod na jinou sadu komponent, tedy jinou technologii
> pripojeni, napr. Zeos komponenty, nebo vite o nejakem vhodnem OleDB
> providerovi pro FireBird. Nam se zatim nic vhodneho najit nepodarilo.
>
BDE - k tomu uz se vracet nema smysl

ADO - nasli jsme provider a nechapu proc nam to tak dlouho trvalo, na
strance http://www.firebirdnews.org/docs/fb2min_cz.html je odkaz primo
na http://www.ibprovider.com/eng/download.html je tam free i placena
verze, zkouseli jsme oboji. Bohuzel jsem zatim nepochopil odlisnost
fungovani transakci. Na coz se jeste zeptat v samostatnem vlakne.

ODBC - rozchodili pod tim cely IS, ale rychlost je skutecne mizerna, pro
uzivatele nedostacujici.

Zeos - Prepis na tyto konponenty jsme pozastavili ve chvili kdy jsme
nasli vyse zmineny ADO provider. Jinak zacatky prepisu nejsou az tak
hrozne jelikoz mame ve frameworku vytvoreny vlastni komponenty podedene
od TAdoConnection a TAdoQuery. Problemy nastavaji hloubeji, jelikoz
nektere vlastosti komponent a jejich chovani jsou trosicku odlisne.

Prepsani aplikace s pouzitim jinych vymakanych technologii - To se skoro
neda ani komentovat, citim se jako pred svatbou, zamilovanost je vzdy
pouze docasna, idealne si vybrat nejde a zavazek je to na "cely" zivot. :-)

---

Jinak pri prechodu z MSSQL na FB jsem pouzil skvely nastroj Database
Workbench 3 ktery mi prevedl db strukturu, vytvoril zakladaci skripty a
prevedl data. Je k dispozici i v trial a umi nejenom tyto dve databaze.
A neni to jenom hracka, db kterou jsme prevadeli mela pres 200tabulek a
200MB.

Martin Matousek
D5


Vyber pripojeni k MSSQL a FB

[*] Tomas Krejzek <tomas.krejzek(zv)email(tec)cz> - 07.4.2008 08:39:58

Ahoj, zkus trebas - http://www.sqldirect-soft.com/index.html

SQL Direct, mas tam pripojeni k cca 10 serverum a to nativni.

Tom


======================================================================
KP-SYS mail server
http://www.kpsys(tec)cz
+420 466 655 055
======================================================================

Firebird vulnerable

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 07.4.2008 17:48:38

DD,

http://www.heise-online.co.uk/security/Vulnerability-in-Firebird-database--/news/102612


Firebirda zrejme hodne Delphistu pouziva - tak si prosim do svych
instalacnich baliku doplnte server v opravene verzi.
Do jednoho serveru se nam diky tomu nejakej trojan dostal (nechapu
proc software, ktery si sebou pro svou vlastni sokromou potrebu tahne
DB engine, ktery posloucha na TCP, jej neinstaluje tak aby naslouchal
jen na localhostu ale na vsech interfacech...)


D. Toman
Fortech s.r.o.

Zkusenosti s Delphi 2007

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 08.4.2008 23:10:38

>Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007? Stoji za to je
koupit, nebo radeji poridit starsi verzi?

Zdarec,

je to docela dobre ale nepovedlo se nam presvedcit IDE aby nepremapovavalo
interfaces ze stdcall na safecall. I kdyz
to mame vyplne/preple a v dpr jsou vyhozene commenty co to propojovali v D7
tak to furt chce menit.

Takze jedine co zbejva je aktivovat dotaz pred zmenou a kdyz to nahodou IDE
chce tak to vsechno odcancelovat :-(


Cus
Radek Voltr
Xacti

Zkusenosti s Delphi 2007

[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 08.4.2008 18:22:41

Zdravim

> Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007? Stoji za to je
> koupit, nebo radeji poridit starsi verzi?
Ked uz sa bavime o Delphi 2007.
Ja som prechadzal s Delphi 7 Ent na Delphi 2007 Ent. Pouzivam JVCL, JCL,
ExpresMasterView a ODAC komponenty + nejake drobnosti.
Vsetko islo nainstalovat aj rozbehat bez problemov.

Jedna vec mi vsak neuveritelne lezie na nervy :-(

Mam na priklad na ploche Label1, Label2 .... kliknem na Label1 a
v object inspektore na vlastnost Caption .... zacnem pisat
caption daneho labelu. Naraz sa mi z nicoho v Object Inspektore zmeni
vlastnost Caption na vlastnost Align, pisem teda caption do align, co
logicky
po "odentrovani" vyvola chybu.

Slak ma s toho ide trafit :-)
Mam Win XP prof. Nie je na to nahodou nejaka zaplata?
Nove Delphi mam nainstalovane cca 6 tyzdnov, ale len pred dvomi
tyzdnami som na tom zacal intenzivne robit, takze tuto "haluz" , som objavil
len nedavno.

S pozdravom

Ivan Dulgerov


Zkusenosti s Delphi 2007

[*] pavel zidek <delphi(zv)kopr(tec)cz> - 08.4.2008 16:48:35

zdravim,
funguje v Delphi 2007 taky FF2 (verze 2.11) ?
diky pavel zidek

> Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007?
>

LDAP a setpassword

[*] Venca Ask Zaruba <zaruba(zv)elastoform(tec)cz> - 08.4.2008 16:04:31

Hi *,
Vytvarim si udelatko nad AD (logovani zmen...).
Pouzil jsem knihovnicku ADSI (agnisoft) vcelku to smeruje k cili, ale:
1. setpassword nejde

2. Nedari se mi vycist paramerty ( naplnit mi jdou!)
Seznam dostanu dle prikladu

......
s := obj.Get_Schema;
AdsGetObject(s, IADsClass, cls );
for i := VarArrayLowBound(cls.OptionalProperties,1) to
VarArrayHighBound(cls.OptionalProperties,1) do
...............
s := cls.OptionalProperties[i];

Ale, kdyz chci ziskat hodnotu tak havaruje, neni-li tato vyplnena
cls.get(s)
Diky za kazdou radu
Vasek

D7 pro XP

Zkusenosti s Delphi 2007

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 08.4.2008 15:44:29

Ahoj,

> Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007?
> Stoji za to je koupit, nebo radeji poridit starsi verzi?

Prechod z D7 na D2007 for win32 naprosto bez problemu na prvni naslapnuti
(relativne velky projekt).

Pouzivam:

IBO, Developer Express VCL (v plnem rozsahu), FastReport, ODAC, DBComparer,
Eurekalog, JCL, Synapse, XLSReadWriteII

Sel bych do toho znova :)

PMal


Zkusenosti s Delphi 2007

[*] Novy Lubos <lnovy(zv)unileasing(tec)cz> - 08.4.2008 15:26:28

Ja mel Dephi 5, Delphi 7 a ted mam Delphi 2007 a muzu tuto verzi jenom doporucit. Rozhodne je z nich nejlepsi.

Lubos Novy

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Miloslav Pojsl
Sent: Tuesday, April 08, 2008 3:18 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Zkusenosti s Delphi 2007

>Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007? Stoji za to je koupit, nebo radeji poridit starsi verzi?
>
>
>Mgr. Miloslav Pojsl
>Meopta optika s.r.o.
>Kabelikova 1
>Prerov


Zkusenosti s Delphi 2007

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 08.4.2008 15:22:27

Puvodni zprava ze dne 8.4.2008 od Miloslav Pojsl:

> Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007? Stoji za
> to je koupit, nebo radeji poridit starsi verzi?

Ja mel posledni Delphi 5 a ted mam Delphi 2007 a urcite to za to
stoji. Jdi do toho.

Petr Zahradnik, pocitacovy expert

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


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

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


Zkusenosti s Delphi 2007

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 08.4.2008 15:18:27

Zdravim vsechny, prosim jake mate zkusenosti s Delphi 2007? Stoji za to je koupit, nebo radeji poridit starsi verzi?


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Sifrovanie Soap

[*] Richard Suran <suran3(zv)post.sk> - 08.4.2008 14:16:22

Zdravim,
komunikujem so serverom prostrednictvom web services. Na to pouzivam nastroj Soap Toolkit 3.0 (lebo musim, nie preto ze by som chcel).

Pouzivam low level metodu nastroja Soap Toolkit, cize si komponujem SOAP spravu sam (pomocou serializeru). Serializeru sa odovzdava handle streamu (pointer na stream), do ktoreho sa SOAP sprava plni. Je to handle connectora (connector.inputstream), ktory sa pouziva na komunikaciu so serverom.
Ja sa ale potrebujem k SOAP sprave dostat, podpisat ju, zasifrovat a znova predat connectoru na odoslanie. Na toto som ale ziadnu metodu nenasiel.
Tak som namiesto handle connector.inputstream serializeru odovzdal vlastny lokalny Wstream (typu IStream - interface) a ten som podpisal a zasifroval. Nasledne som tymto lokalnym Wstream - om naplnil connector.inputstream a tym som zabezpecil predanie zasifrovanej SOAP spravy connectoru.
Problem je v tom, ze sprava nie je cela odoslana. Server vrati nasledovnu chybu: Premature end of file encountered.

cast kodu (vynatok):

Connector := CreateOleObject(\'MSSOAP.HttpConnector30\');
Connector.Property(\'EndPointURL\') := \'https://www.webservices.com/WS\'; // vymyslene
Connector.Property(\'RequestHTTPHeader\') := \'Content-Type: text/xml;\';
Connector.Connect;
Connector.Property(\'SoapAction\') := \'\';
Connector.BeginMessage;

WMemoryStream := TMemoryStream.Create;
WStream := TStreamAdapter.Create(WMemoryStream, soReference) as IStream;
try
Serializer := CreateOleObject (\'MSSOAP.SoapSerializer30\');
Serializer.Init(WStream); //Namiesto connector.inputstream pouzity vlastny interface WStream pre sifrovanie
Serializer.StartEnvelope;
Serializer.StartBody;
Serializer.StartElement(\'Element\', \'\',,\'m\');
Serializer.WriteString(\'Hodnota elementu\');
Serializer.EndElement;
Serializer.EndBody;
Serializer.EndEnvelope;
Serializer.Finished;

- - - - - - - - - - - - - - - - - - -
Tu soap spravu zasifrujem ? cize zasifrujem obsah WMemoryStream
- - - - - - - - - - - - - - - - - - -

WMemoryStream.Position := 0;
OleCheck((IUnknown(Connector.InputStream) as IStream).Write(WMemoryStream.memory, WMemoryStream.size, PLongint(WDummy1)));
finally
WMemoryStream.Free;
WStream:= nil;
end;

Connector.EndMessage;

Reader := CreateOleObject (\'MSSOAP.SoapReader30\');
If Reader.Load(Connector.OutputStream) Then
begin
RichEdit.Lines.add(Reader.Body.xml); //vystup vypisany do Richedit vrati chybu: Premature end of file encountered
end;

Reader := unassigned;


Neviete niekto poradit s tymto problemom. Pripadne navrhnut ine riesenie.
__________
http://sport.sme.sk - Najkomplexnej?ie informacie zo ?portu


divne chovanie FB

[*] Michal Simsaj <delphinpp(zv)atlas(tec)cz> - 08.4.2008 12:42:16

Jasne, ok skusim zalogovat a pozriet priamo ten vyskladany select.. Mna
len zmiatlo, ze sa to objavuje cisto nahodne.. aj na tych istych
vstupnych datach..

Dik vsetkym,

M.

Zdenek Kalhous wrote / napisal(a):
> No, "komu neni rady az se ucho utrhne". Hledat takovouhle chybu premerovanim kabelu a piganim po siti je podle mne ztrata casu.
> Z.Kalhous
>
> ----- Original Message -----
> From: Michal Simsaj
> Dik, za odpoved.. Avsak, pokial by to bola chyba takehoto charakteru,
> tak pri opatovnom spusteni app na rovnakom mieste by sa tento problem
> opakoval. Lenze neopakuje sa.. Uz som myslel,
> ci to nahodou nie je problem s infrastrukturou, zmeral som kabel - je
> ok.. dlhodobym PING-om som nezistil ziadne vypadky v sieti.. neviem aky
> iny problem by tam este mohol byt..
> Miso
>
> Zdenek Kalhous wrote / napisal(a):
>
>> Na to je asi nejlepsi chybu zachytit a do hlaseni si krome message SQL serveru opsat take ten SQL prikaz ktery se mel provest.
>> Pricina byva u techto chyb vetsinou dost komicka - sloupec ktery se jmenuje stejne jako klicove slovo a neni v uvozovkach, neuvedena hodnota za rovnitkem ap.
>> Z.Kalhous
>>
>> From: Michal Simsaj
>> pred par tyzdnami zacal zakaznik oznamovat nahodne chyby pocas prace s
>> aplikaciou. Popis, ktory zaznamenal bol priblizne asi takyto :
>> DYNAMIC SQL ERROR
>> SQL ERROR CODE -104 TOKEN UNKNOWN-LINE 1, CHAR 68 ASC
>>
>>

divne chovanie FB

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

No, "komu neni rady az se ucho utrhne". Hledat takovouhle chybu premerovanim kabelu a piganim po siti je podle mne ztrata casu.
Z.Kalhous

----- Original Message -----
From: Michal Simsaj
Dik, za odpoved.. Avsak, pokial by to bola chyba takehoto charakteru,
tak pri opatovnom spusteni app na rovnakom mieste by sa tento problem
opakoval. Lenze neopakuje sa.. Uz som myslel,
ci to nahodou nie je problem s infrastrukturou, zmeral som kabel - je
ok.. dlhodobym PING-om som nezistil ziadne vypadky v sieti.. neviem aky
iny problem by tam este mohol byt..
Miso

Zdenek Kalhous wrote / napisal(a):
> Na to je asi nejlepsi chybu zachytit a do hlaseni si krome message SQL serveru opsat take ten SQL prikaz ktery se mel provest.
> Pricina byva u techto chyb vetsinou dost komicka - sloupec ktery se jmenuje stejne jako klicove slovo a neni v uvozovkach, neuvedena hodnota za rovnitkem ap.
> Z.Kalhous
>
> From: Michal Simsaj
> pred par tyzdnami zacal zakaznik oznamovat nahodne chyby pocas prace s
> aplikaciou. Popis, ktory zaznamenal bol priblizne asi takyto :
> DYNAMIC SQL ERROR
> SQL ERROR CODE -104 TOKEN UNKNOWN-LINE 1, CHAR 68 ASC
>
>
>
>
>

divne chovanie FB

[*] Rostislav Lekes <rlekes(zv)atlas(tec)cz> - 08.4.2008 11:54:12

Zadny jiny nastrel neni potreba, Zdenek Kalhous Ti to napsal dobre,
chybu hledej ve svem dotazu a ne v dratech k serveru :).
Konkretne podle te chyby nemas spravne poskladany dotaz, za ORDER BY
chybi pole, podle ktereho se ma tridit a je tam rovnou ASC.
To vysvetluje i 'nahodnost' tohoto jevu, protoze nekdy tu promenou,
ktera se dosazuje pro skladani toho dotazu, mas naplnenou, nekdy ne.
Je to na 99,99% timto, hledej.
Rosta


Michal Simsaj napsal(a):
> skusi este niekto nejaky nastrel ?
>
>

divne chovanie FB

[*] Tomas Krejzek <tomas.krejzek(zv)email(tec)cz> - 08.4.2008 11:32:09

No kazdopadne, bez toho SQL prikazu nikdo nic nevymysli, evidentne tam vytvaris nejaky sql
select dynamicky (skladanim) a podle meho tam vlozis ASC na nespravnou pozici, naprosto
nechapu proc to proste neudelas jak ti radil, misto toho sem psat tohle, takhle se nikam
nedostanes.

Tom

Michal Simsaj napsal(a):
> Dik, za odpoved.. Avsak, pokial by to bola chyba takehoto charakteru,
> tak pri opatovnom spusteni app na rovnakom mieste by sa tento problem
> opakoval. Lenze neopakuje sa.. Oni proste pracuju s app, zrazu sa objavi
> takato chybova hlaska, potvrdia ju, restartuju app, vratia sa na povodne
> miesto v applikacii a uz sa ta chyba neobjavi. Potom po case (celkovo
> asi 10-15 krat za den, cisto nahodne) sa znovu takato chyba objavi,
> niekedy na tom istom mieste v app, niekedy v inej casti.. Uz som myslel,
> ci to nahodou nie je problem s infrastrukturou, zmeral som kabel - je
> ok.. dlhodobym PING-om som nezistil ziadne vypadky v sieti.. neviem aky
> iny problem by tam este mohol byt..
> skusi este niekto nejaky nastrel ?
>
> dik,
>
> Miso
> ======================================================================
KP-SYS mail server
http://www.kpsys(tec)cz
+420 466 655 055
======================================================================

divne chovanie FB

[*] Michal Simsaj <delphinpp(zv)atlas(tec)cz> - 08.4.2008 11:08:08

Dik, za odpoved.. Avsak, pokial by to bola chyba takehoto charakteru,
tak pri opatovnom spusteni app na rovnakom mieste by sa tento problem
opakoval. Lenze neopakuje sa.. Oni proste pracuju s app, zrazu sa objavi
takato chybova hlaska, potvrdia ju, restartuju app, vratia sa na povodne
miesto v applikacii a uz sa ta chyba neobjavi. Potom po case (celkovo
asi 10-15 krat za den, cisto nahodne) sa znovu takato chyba objavi,
niekedy na tom istom mieste v app, niekedy v inej casti.. Uz som myslel,
ci to nahodou nie je problem s infrastrukturou, zmeral som kabel - je
ok.. dlhodobym PING-om som nezistil ziadne vypadky v sieti.. neviem aky
iny problem by tam este mohol byt..
skusi este niekto nejaky nastrel ?

dik,

Miso

Zdenek Kalhous wrote / napisal(a):
> Na to je asi nejlepsi chybu zachytit a do hlaseni si krome message SQL serveru opsat take ten SQL prikaz ktery se mel provest.
> Pricina byva u techto chyb vetsinou dost komicka - sloupec ktery se jmenuje stejne jako klicove slovo a neni v uvozovkach, neuvedena hodnota za rovnitkem ap.
> Z.Kalhous
>
> From: Michal Simsaj
> pred par tyzdnami zacal zakaznik oznamovat nahodne chyby pocas prace s
> aplikaciou. Popis, ktory zaznamenal bol priblizne asi takyto :
> DYNAMIC SQL ERROR
> SQL ERROR CODE -104 TOKEN UNKNOWN-LINE 1, CHAR 68 ASC
>
>
>
>
>

divne chovanie FB

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 08.4.2008 10:50:06

Na to je asi nejlepsi chybu zachytit a do hlaseni si krome message SQL serveru opsat take ten SQL prikaz ktery se mel provest.
Pricina byva u techto chyb vetsinou dost komicka - sloupec ktery se jmenuje stejne jako klicove slovo a neni v uvozovkach, neuvedena hodnota za rovnitkem ap.
Z.Kalhous

From: Michal Simsaj
pred par tyzdnami zacal zakaznik oznamovat nahodne chyby pocas prace s
aplikaciou. Popis, ktory zaznamenal bol priblizne asi takyto :
DYNAMIC SQL ERROR
SQL ERROR CODE -104 TOKEN UNKNOWN-LINE 1, CHAR 68 ASC

divne chovanie FB

[*] Michal Simsaj <delphinpp(zv)atlas(tec)cz> - 08.4.2008 10:16:03

Zdravim,

pred par tyzdnami zacal zakaznik oznamovat nahodne chyby pocas prace s
aplikaciou. Popis, ktory zaznamenal bol priblizne asi takyto :

DYNAMIC SQL ERROR
SQL ERROR CODE -104 TOKEN UNKNOWN-LINE 1, CHAR 68 ASC

Myslel som si, ze by chyba mohla byt v nejakom konkretnom selecte, avsak
zaujimave je, ze tato chyba sa neda reprodukovat, pretoze po restarte
aplikacie zopakuju rovnaku postupnost krokov aj s rovnakymi vstupnymi
datami a chyba sa nevyvola.. Po chvili ci uz v rovnakej casti aplikacii
alebo v inej s rovnakymi alebo roznymi vstupnymi datami sa obdobny
DYNAMIC ERROR objavi znova.
Blbe je, ze tieto problemy sa im objavuju v priebehu dna, ked je vyssia
zataz. Podvecer, ked sa na to pridem pozriet a je tam uz menej ludi, sa
mi tuto chybu este nikdy nepodarilo zopakovat.

Nenapada vas niekoho, kde by mohol byt problem, alebo co by som mohol
skusit pre dalsiu identifikaciu problemu ?

dik,
Miso

FB 1.5.5, D5

Prosba o pomoc - RUN AS s admin pravama v XP

[*] Jiri Toman <toman(zv)plbohnice(tec)cz> - 10.4.2008 12:45:15

Zdravim vsechny,

omlouvam se , jsem jen prilezitostny programator v Delphi a tak nejsem moc zkusenej. Mam nasledujici prosbu:

V praci potrebujeme provest uzvatelum zapis v registrech do HKLM a do souboru hosts . Program mi funguje bez problemu u uzivatelu kde nemaj omezenej ucet. Nevim jak mam programu sdelit, ze se ma spustit pod admin uctem. Heslo znam i uzivatele s admin pravama.
Bude vdecny za kazdou radu. Vzhledem k tomu, ze nejsem moc zkusenej prosim - podrobneji, jako pro blbce.

Dik Jirka T.

Tisk paragonu v terminal serveru

[*] Radek KALA <kala(zv)betacontrol(tec)cz> - 11.4.2008 09:16:42

Muzes to pomoci savetofile ulozit nejen do souboru `LPT1` ale napr do
souboru `\\muj_PC\LPT1`

delphi(zv)mjsoft(tec)cz napsal(a):
> Zdravim,
> Neresil nekdo tisk na ?paragonovou tiskarnu v?terminal serveru. Klient
> s?paragon.tiskarnou se pripoji k?terminal serveru a programy normalne
> funguji. Kdyz ale chce tisknout na svoji tiskarnu, tak to nejde. Nevim co
> kde nastavit. Z?delphi tisknu bezne na lokalni paragon tak, ze textovy
> soubor ulozim primo do portu. Tedy nejak takto: sl.SaveToFile(,LPT1'). Lze
> ten port nejak presmerovat?
>
>

Tisk paragonu v terminal serveru

[*] delphi(zv)mjsoft(tec)cz - 10.4.2008 18:17:38

Zdravim,
Neresil nekdo tisk na ?paragonovou tiskarnu v?terminal serveru. Klient
s?paragon.tiskarnou se pripoji k?terminal serveru a programy normalne
funguji. Kdyz ale chce tisknout na svoji tiskarnu, tak to nejde. Nevim co
kde nastavit. Z?delphi tisknu bezne na lokalni paragon tak, ze textovy
soubor ulozim primo do portu. Tedy nejak takto: sl.SaveToFile(,LPT1'). Lze
ten port nejak presmerovat?

Diky




3016 (20080410)
__________



TToolButton - s caption pod ikonkou a drop down

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 10.4.2008 16:53:32

Zdravim,

ve VCL se posledni dobu moc nepohybuju takze zatim marne hledam jak nastavit

TToolbar/TToolButton tak aby se caption zobrazovalo pod ikonkou (nikoliv v
pravo
jako u tbsTextButton) a zaroven to byl drop down ?

+ jeste nahanim jak nastavit dropdown aby byl deleny tj. aby tam bylo
tlacitko
a k nemu drop down

Jo a jde o vcl v D2007


Diky
Radek

Prosba o pomoc - RUN AS s admin pravama v XP

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 10.4.2008 13:41:19

> V praci potrebujeme provest uzvatelum zapis v registrech do
> HKLM a do souboru hosts . Program mi funguje bez problemu u
> uzivatelu kde nemaj omezenej ucet. Nevim jak mam programu
> sdelit, ze se ma spustit pod admin uctem. Heslo znam i
> uzivatele s admin pravama.
> Bude vdecny za kazdou radu. Vzhledem k tomu, ze nejsem moc
> zkusenej prosim - podrobneji, jako pro blbce.

const
LOGON32_LOGON_NEW_CREDENTIALS = 9;

var
UserName, Domain, Password: WideString;
Token: THandle;
begin
try
Domain := ...
UserName := ...
Password := ...

Win32Check(LogonUserW(PWideChar(UserName), PWideChar(Domain), PWideChar(Password), LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, Token));
finally
SecureZeroMemory(PWideChar(Password), Length(Password) * SizeOf(WideChar));
end;

Win32Check(ImpersonateLoggedOnUser(Token));
try
... kod v kontexte daneho uzivatela
finally
Win32Check(RevertToSelf);
end;
end;

Podla toho, co dany program vykonava, mozno nepotrebujes prave LOGON32_LOGON_NEW_CREDENTIALS a postaci Ti napriklad LOGON32_LOGON_BATCH alebo LOGON32_LOGON_INTERACTIVE, atd. Popis je v dokumentacii k API LogonUser.

Pokial nechces natvrdo kodovat meno/heslo uzivatela do programu, od Windows XP a vyssie mozes pouzit CredUIPromptForCredentials, ktora Ti zobrazi systemovy dialog na zadanie tychto udajov uzivatelom.

HTH
TOndrej

Poloha mysi nad richeditem

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 11.4.2008 13:35:02

Ahoj,

resim takovy problem. Mam text v richeditu, pricemz je garantovano, ze
cely obsah richeditu je videt. Tj. neni treba resit posuvniky, zobrazeni
jen vyseku textu apod. Otazka zni - jak v OnMouseMove prevest aktualni
polohu mysi na polohu textoveho kurzoru - resp. potrebuji zjistit, nad
kterym znakem v textu je mys.

Pokud je text jednoradkovy, tak neni problem - da se to vyresit pomoci
TextWidth viz Tipy a triky pro Delphi, ale u zalomeneho textu se mi
nedari. Nepotrebuji X a Y znaku, ale poradi - kolikaty znak od zacatku
textu to je.

David Lebeda

Vista a registre

[*] Martin Kasman <mdelphi(zv)centrum.sk> - 11.4.2008 15:23:10

Prepisujem registre tymto sposobom:

.
.
var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SOFTWARE\ORACLE', True);
Reg.WriteString('FORMS45_PATH', Adresar+Kod+'\FORMS');
.
.

Pod Windows XP mi to este slo no pod Vistou uz nie.
Da sa nejako nastavit Windows Vista aby umoznil programom prepis registrov?
Da sa nejako zmenit tento kod, aby som tie udaje prepisal?

Ja Windows Vista nemam - to mi hlasil len zakaznik, ze to nefunguje - dokonca vraj aj ked prepise udaje rucne cez regedit, tak sa zmena prejavi az po restarte pocitaca a to nie je bohvieake riesenie.

Vista a registre

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 11.4.2008 15:59:12

Puvodni zprava ze dne 11.4.2008 od Martin Kasman:

> var Reg: TRegistry;
> begin
> Reg:=TRegistry.Create;
> Reg.RootKey := HKEY_LOCAL_MACHINE;
> Reg.OpenKey('\SOFTWARE\ORACLE', True);
> Reg.WriteString('FORMS45_PATH', Adresar+Kod+'\FORMS');

Bezna aplikace nema co zapisovat do klice Local Machine. Potrebujes na
to prava administratora.

Petr Zahradnik, pocitacovy expert

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


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

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


vytvoreni PDF

[*] Novy Lubos <lnovy(zv)unileasing(tec)cz> - 14.4.2008 15:28:25

Napriklad Fastreport, ktery ma vlastni PDF export, ale ten mozna neni free.
Nebo pomoci EkRTF, ktere je Free to dostat do RTF a tim padem do Wordu a z nej to tisknout do PDF creatoru.

Lubos Novy

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
> Behalf Of Kamil Pavel SkA?la
> Sent: Monday, April 14, 2008 3:20 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: vytvoreni PDF
>
> Zdravim,
>
> je nejaka free moznost, jak v delphach vytvorit a ulozit pdf soubor?
>
> Respektive jedna se mi o export textu do pdf.
>
> Diky
>
> Kamil Sk+AOE-la
>
>

vytvoreni PDF

[*] Kamil Pavel SkA?la <zzr600(zv)centrum(tec)cz> - 14.4.2008 15:20:24

Zdravim,

je nejaka free moznost, jak v delphach vytvorit a ulozit pdf soubor?

Respektive jedna se mi o export textu do pdf.

Diky

Kamil Sk+AOE-la

vytvoreni PDF

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 14.4.2008 15:32:25

To lze pomoci virtualni tiskarny napr. PDFCreator.

M. Dvorak

>>> zzr600(zv)centrum(tec)cz 14.4.2008 15:20:24 >>>
Zdravim,

je nejaka free moznost, jak v delphach vytvorit a ulozit pdf soubor?

Respektive jedna se mi o export textu do pdf.

vytvoreni PDF

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 14.4.2008 15:44:27


> je nejaka free moznost, jak v delphach vytvorit a ulozit pdf soubor?
>
> Respektive jedna se mi o export textu do pdf.
>
>

kdosi mi doporucoval http://sourceforge.net/projects/libharu/

vytvoreni PDF

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 14.4.2008 15:42:26

Novy Lubos napsal(a):
> Nebo pomoci EkRTF, ktere je Free to dostat do RTF a tim padem do Wordu a z nej to tisknout do PDF creatoru.

Takze vlastne staci libovolny tiskovy vystup a nasmerovat do nejake
free PDF tiskarny (treba PDFCreator).

> Lubos Novy

Peca

Delphi for PHP 2.0

[*] rkubat(zv)email(tec)cz - 14.4.2008 17:32:34

Zdravim vsechny vyvojare a uzivatele Delphi,

dnes jsme vydali tiskovou zpravu o uvedeni Delphi for PHP 2.0 na trh. Detailni informace najdete na adrese http://www.codegear.com/products/delphi/php, tiskovou zpravu v cestine najdete na webu Borland s.r.o. behem nekolika dnu, produkt je mozno objednavat na http://shop.codegear(tec)cz, kde se najde i popis zakladnich funkci a novinek v cestine.

Hlavni novinky: HTML designer s dynamickym PHP, podpora rady databazovych serveru, 75+ komponent v PHP, AJAX/Web 2.0, debugger, profiler, podpora vice knihoven, predevsim Zend Framework a podstatne rozsirena dokumentace.

-- Richard Kubat, Borland s.r.o.

vytvoreni PDF

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 14.4.2008 16:32:30

Ja to treba delam tak, ze si data nactu z databaze, postupne je vykreslim
na canvas tiskarny a poslu to na PDFCreator.

>
> Takze vlastne staci libovolny tiskovy vystup a nasmerovat do nejake
> free PDF tiskarny (treba PDFCreator).
>

FB a hodne klientu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 15.4.2008 13:30:05

> Default nema xinetd zadny limit na soubezny pocet spojeni (instances) ale
> ma limit na maximalni pocet spojeni za sekundu (50) - viz cps (connections
> per second). Samozrejme pokud DB muze nainstalovat konfoguracni soubor s
> nedefaultnimi limity...
>
> Pri prekroceni limitu by se IMHO mel ve /var/log/messages obevit
> prislusny zaznam...
>

V logu FB se opakovane vyskytuje:

Fatal lock manager error: semaphores are exhousted, errno: 4

David Lebeda

FB a hodne klientu

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 15.4.2008 13:04:03

DD,

On Tuesday, April 15, 2008 12:48 PM ,
Radek KALA <kala(zv)betacontrol(tec)cz> wrote:

> Podivej se na nastaveni xinetu. Byva tam strop na max. pocet
> soucasne
> pripojenych klientu, taky mne to pekne potrapilo, nez jsem to nasel.
>> Potrebuji zjistit. Jedna se o nejaky technologicky strop, nebo se
>> da
>> nejakym nastavovanim tento limit zvysit?


zatizeny server, ktery obsluhuje vetsi mnozstvi pripojeni za jednotku
casu by nemel pouzivat (x)inet ale naslouchat na socketech sam.

Default nema xinetd zadny limit na soubezny pocet spojeni (instances)
ale ma limit na maximalni pocet spojeni za sekundu (50) - viz cps
(connections per second). Samozrejme pokud DB muze nainstalovat
konfoguracni soubor s nedefaultnimi limity...

Pri prekroceni limitu by se IMHO mel ve /var/log/messages obevit
prislusny zaznam...


Zdravi
D. Toman

FB a hodne klientu

[*] Radek KALA <kala(zv)betacontrol(tec)cz> - 15.4.2008 12:48:02

Podivej se na nastaveni xinetu. Byva tam strop na max. pocet soucasne
pripojenych klientu, taky mne to pekne potrapilo, nez jsem to nasel.
> Potrebuji zjistit. Jedna se o nejaky technologicky strop, nebo se da
> nejakym nastavovanim tento limit zvysit?
>
>

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