Archív konference Delphi

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

Richedit do databze

[*] Vaclav Riha - Soft Consult <vaclav_riha(zv)softconsult(tec)cz> - 19.9.2002 07:08:54

Pouzivam nasledujici kod. Ten je bez problemu. Pouziti BLOBStreamu nekdy
zp�sobuje hlasku "Invalid typecast" pri praci s obrazky, takze radeji
takto.

pro ulozeni:
MS1:=TMemoryStream.Create;
RichEdit.Lines.SaveToStream(MS1);
MS1.Position:=0;
DBTable.Append; nebo Edit
TBLOBField(DBTable.FieldByName('Text')).LoadFromStream(MS1);
MS1.Free;
DBTable.Post;
RichEdit.Modified:=False;

pro nacteni:
MS1:=TMemoryStream.Create;
TBLOBField(DBTable.FieldByName('Text')).SaveToStream(MS1);
MS1.Position:=0;
RichEdit.Lines.LoadFromStream(MS1);
MS1.Free;


S pozdravem V�clav ��ha

-----P�vodn� zpr�va-----
Od: MUDr. Patrik VALENTA [SMTP:valentapat(zv)volny(tec)cz]
Odesl�no: 18. z��� 2002 22:09
Komu: delphi konference
P�edm�t: Richedit do databze

Zdravim a mam otazecku ...
Jak ulozim richedit do BLOB fildu v databazi - konkretne FireBird ?
Jde mi o zachovani formatovani, kdyz pouziju text=' richedit1.text' tak
stratim formatovani.


valik
ICQ 54152896


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.345 / Virov� b�ze: 193 - datum vyd�n�: 9.4.2002

Richedit do databze

[*] campulka <campulka(zv)czas(tec)cz> - 19.9.2002 07:16:01

Asi takto:

1) Z rich editu ulozit do streamu Richedit.Lines.SaveToStream()

2) v Datasetu je funkce CreateBlobStream() pomoci ktere se vytvori stream
pro BLOB field v tabulce.

3) Zkopirovat rich stream do blobu.

PS: V napovede k CreateBlobStream() je nejaky priklad.

Jirka.

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
>
> Zdravim a mam otazecku ...
> Jak ulozim richedit do BLOB fildu v databazi - konkretne FireBird ?
> Jde mi o zachovani formatovani, kdyz pouziju text='
> richedit1.text' tak
> stratim formatovani.
>
> valik
> ICQ 54152896

Dotaz na hodnotu generaotru

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 19.9.2002 07:18:42

> From: "Jan Sebel�k" <honza(zv)haes(tec)cz>
>
> > Ja bych z Delphi spise zavolal ulozenou proceduru,
> > ktera mi hodnotu generatoru vrati.
>
> Jaky v tom spatrujes prinos?
>
> Me napada jen urcita nezavislost Delphi kodu
> na DB stroji, ale tak je specialne u SQL serveru problematicka...

No neco jako:
procedure VlozZaznam
( pole1...,pole2...,pole3...)
returns
(id...)
as
begin
id=gen_id(generator,1)
insert into values (:id,:pole1,...)
end

Spravne ID ziskas hned.
Nejsou nahodou generatory mimo transakcni kontrolu? Co kdyz nez das ten
"select gen_id()" nekdo dalsi provede insert...

Roman
==============================
http://kouzelne.misto(tec)cz

www formular - vyplnit a odeslat - TWebBrowser

[*] Ales Bolha <lastminute(zv)seznam(tec)cz> - 19.9.2002 07:43:32

Ahoj,
reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
14.11.2000, kde
popisuje Petr Vones automaticke vlozeni
emailove adresy do prihlasovaciho dialogu konference na web strankach,
za vyuziti komponenty TWebBrowser.
Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
zverejnim.

Diky Ales Bolha



Ahoj,

pokud ti jde o predvyplneni textoveho pole na strance tak to lze
udelat primo
upravou atributu jednotlivych HTML elementu v TWebBrowser.

Priklad, v prihlasovacim formulari do konference najdes:

<TD><input type="text" name="Email"></TD>

V aplikace lze pak pole Email vyplnit takto:

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.delphi(tec)cz/prihlas.asp');
end;

procedure TForm1.FillForm;
var
Doc: IHTMLDocument2;
I: Integer;
Element: OleVariant;
Elements: IHTMLElementCollection;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
Elements := Doc.all;
for I := 0 to Elements.length - 1 do
begin
Element := Elements.item(I, varEmpty);
if (Element.tagName = 'INPUT') and (Element.type = 'text') and
(Element.name = 'Email') then
Element.value := 'email(zv)aaa.aaa';
end;
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if pDisp = WebBrowser1.DefaultInterface then
FillForm;
end;

Petr Vones, amatersky programator

Ach ten lidsky pojem casu, aneb jak scitat hodiny?

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 19.9.2002 07:54:44

Blazek Jaroslav dne 18 Sep 2002 v 19:33:

> >select sum
> > (cast(extract (hour from odeslano) as float)+
> > cast(extract (minute from odeslano) as float)/60) as Pokus
> >from imptisk
>
> nechapu jak ti tohle muze chodit....

Proc by nemohlo? ;-)

Na FireBird, "Odeslano" je TimeStamp.

Prvni radek vezme pocet hodin a prevede je na float.
Druhy radek vezme pocet minut, prevede je na float, a abychom to mohli rozumne poscitat, deli to
60 a pricte k tem hodinam.
No a na to se pusti SUM... Takze vysledek je napr. 1065,564 hodiny, coz si uz v aplikaci snadno
zobrazi jako hodiny a minuty v takovem tvaru, v jakem potrebuje; tedy alespon jsem nepredpokladal,
ze je nutne, aby to uz z Interbase padalo ve formatu "123:45"...

Proc se ti to nepozdava?

Karel Rys

TClientDataset misto BDE

[*] Petr Hlo�ek <petr h(zv)mrp(tec)cz> - 19.9.2002 08:00:06


----- Original Message -----
From: "ing. Jan Fiala" <jan.fiala(zv)iol(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, September 18, 2002 3:11 PM
Subject: Re: TClientDataset misto BDE


> Pri takovem objemu dat zapomen na memory tabulky (i ClientDataset)
>
Pro kolik zaznamu se jeste da ClientDataset pouzit?

Petr

Dotaz na hodnotu generaotru

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 08:12:38

From: "Roman" <sw.maurice(zv)seznam(tec)cz>

> Nejsou nahodou generatory mimo transakcni kontrolu?
> Co kdyz nez das ten
> "select gen_id()" nekdo dalsi provede insert...

No a?

Dulezite je, aby funkce gen_id() byla implementovana jako thread safe tj.
jako neprerusitelna tj. aby inkrement hodnoty byl v kriticke sekci a to
doufam je, i kdyz u tech databazistu jeden nikdy nevi ;-)

Pak zadne dva procesy nemohou ziskat stejnou hodnotu (samozrejme neuvazu
pripad gen_id(xxxx,0))


Bye, pf

TClientDataset misto BDE

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 19.9.2002 08:13:41

>> Pri takovem objemu dat zapomen na memory tabulky (i ClientDataset)
>>
> Pro kolik zaznamu se jeste da ClientDataset pouzit?

Uvedom si, jak takove memory tabulky pracuji. Proste nacitaji vsechny
zaznamy do pameti a pak se s nimi pracuje.
Klidne jej muzes pouzit pro 500000 zaznamu, pokud se smiris s tim, ze
to na zacatku bude trvat, nez se zaznamy nactou a to same pri
ukladani.
Pri jakemkoliv vypadku pak prichazis o vsechny zmeny od posledniho
ulozeni.

--
Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz


Vyber SQL Serveru

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 08:32:29

Na FireBird (alternativa InterBase) se muzes spolehnout.
Vice na www.ibphoenix(tec)cz

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================
----------
Odes�latel: Jindrich Nikodem <nikodem(zv)kh-kinetic(tec)cz>
Komu: delphi-l(zv)clexpert(tec)cz
P�edm�t: Vyber SQL Serveru
Datum: 18. z��� 2002 15:49

Hi,

pro jednoho z�kaznika mam vytvorit databazovou aplikaci.
Rozhoduji se pouzit nejaky SQL Server, protoze do budoucna se uvazuje o architekture Client/Server.
Chci tedy pozadat o zkusenosti s nejakymi SQL servery.
Zatim se rozhoduji mezi Interbase a WinBase602.

Ale neznam zpusob licencovani a ani nemam zkusennosti se servery.

Od serveru chci nasledujici:

- prijatelna cena (nejlepe zdarna, ale to prehanim)
- slusna podpora konekce (Pouzivam Delphi 5 Prof.)
- stabilita


Nemate nekdo zkusennosti s Interbase a Winbase602 pro srovnani, nebo s jinymi SQL Servery ? Predem diky
Jindrich Nikodem

TClientDataset misto BDE

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 08:36:22

> Odes�latel: Petr Hlo�ek <petr_h(zv)mrp(tec)cz>
> 1) Exustuje nejaky nastroj na vytvareni CDS souboru? Neco jako byl Databaze
> desktop na DBF.
Ne. Strukturu je treba si vytvorit v Delphi.

> 2) Pokud mam databazi, kde bude asi 100 000 zaznamu bude refresh po ulozeni
> noveho zaznamu trvat stejne dlouho jako kdyz dam Active:=True?

> 3) Kolik zaznamu se takto vejde do pameti? Predpokladam ze databaze bude mit
> max. 300 000 zaznamu.Lze na toto jeste TClinetDataset pouzit?
Jakkoli se mi TClientDataSet libi, myslim, ze stotisice zaznamu je trochu moc.
Na takova data bys mel pouzit opravdickou databazi.
(Ne, ze by to teoreticky neslo.)
TClientDataSet by podle meho soudu mel z databaze nacitat urcitou mnozinu zaznamu (dobre specifikovane "where"), rekneme stovky az tisice zaznamu.

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

Services a DCOM

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 08:39:09

Ahoj Zbysku,
dotaz posilam v kopii V.Bodeckovi (kurz COM/DCOM).
Podle meho soudu to je otazka security.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================
----------
> Odes�latel: Zbysek Hlinka <hlinka(zv)hlinka(tec)cz>
> Komu: delphi-l(zv)clexpert(tec)cz
> P�edm�t: Services a DCOM
> Datum: 18. z��� 2002 16:27
>
> Ahoj,
>
> mate nekdo zkusenost s provozovanim DCOM a services?
>
> Jaky je stav: exac, ktery ma COM interface a bezi na jednom pocitaci.
> Dalsi program na jinem pocitaci se k tomuto programu pripojuje a
> komunikuje s mim pres interface. Pokud je prvni program spusten
> normalne, vse beha OK. Nedari ze vsak pripojeni, pokud je prvni
> program spusten jako service, druhy program ho neumi najit. Nevi
> nekdo, kde by mohl byt problem?
>
> S pozdravem
>
> Zbysek Hlinka
>
>

FreeReport & presna tlac

[*] Pavol Svorc <svorcp(zv)pp.internet.sk> - 19.9.2002 07:44:07

Zdravim,
vo FreeReport 2.32 vytvorim nejaku zostavu pomocou designera.
Potreboval by som vsak, aby si uzivatel mohol nastavit presnu polohu
jednotlivych poli niekde v konfiguracii tak, aby nemusel otvarat
designera. Jedna sa o to, ze sa potrebujem presne trafit do
formulara, ktory sa cas od casu jemne meni podla toho, ktora fabrika
to tlaci. Da sa to vobec nejako jednoducho spravit?
P.Svorc

OnMouseDown pre ComboBox

[*] Robert Suska <delphi(zv)korak.sk> - 19.9.2002 08:48:38

Ahojte !

> Chcel by som pre comboBox funktionalitu
> popisovanu v
http://www.zive(tec)cz/H/Developerdaily/Ar.asp?ARI=107570&CAI=2091
> ale na to je nutne mat funkcne
> OnMouseDown, OnMouseUp a OnMouseMove.
> Nevie mi niekto poradit ako na to.


Tak to by zaujimalo aj mna.

Robo

BDE - vytvoreni aliasu

[*] Libor Filip <filip(zv)agrokonzulta(tec)cz> - 19.9.2002 09:01:51

Diky za radu. Vzal jsem to podle registru.
Spravne zapsane do TDatabase to je takto:
LANGDRIVER=czech

Libor

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Lasevic, Martin
Sent: Wednesday, September 18, 2002 3:48 PM
To: 'delphi-l(zv)clexpert(tec)cz'
Subject: RE: BDE - vytvoreni aliasu


Nevim, nevim, zkus se kouknout do registru, jakou zkratkou je prezentovana
ta cestina a zadej tu zkratku.

Martin

Vyber SQL Serveru

[*] Richard Kejval <kejval.delphi(zv)centrum(tec)cz> - 19.9.2002 09:03:21

Toto je zpr�va ve form�tu MIME obsahuj�c� v�ce ��st�.
Doporucoval bych Firebird. Je to Open source, ktery vznikl z Interbase 6.0 a krome toho, ze je zadarmo, myslim, ze ma na bezne projekty i dostacujici kvalitu.
Najdes ho na www.ibphoenix.com
Console je na www.ibexpert.com je tam trial verze, ale i trosku orizla personal verze, ktera je zadarmo.

S pozdravem
Richard Kejval

----- Original Message -----
From: Jindrich Nikodem
To: delphi-l(zv)clexpert(tec)cz
Sent: Wednesday, September 18, 2002 3:49 PM
Subject: Vyber SQL Serveru


Hi,

pro jednoho z�kaznika mam vytvorit databazovou aplikaci.
Rozhoduji se pouzit nejaky SQL Server, protoze do budoucna se uvazuje o architekture Client/Server.
Chci tedy pozadat o zkusenosti s nejakymi SQL servery.
Zatim se rozhoduji mezi Interbase a WinBase602.

Ale neznam zpusob licencovani a ani nemam zkusennosti se servery.

Od serveru chci nasledujici:

- prijatelna cena (nejlepe zdarna, ale to prehanim)
- slusna podpora konekce (Pouzivam Delphi 5 Prof.)
- stabilita


Nemate nekdo zkusennosti s Interbase a Winbase602 pro srovnani, nebo s jinymi SQL Servery ?


Predem diky
Jindrich Nikodem

TClientDataset misto BDE

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 19.9.2002 09:06:17

> > Pri takovem objemu dat zapomen na memory tabulky (i ClientDataset)
> >
> Pro kolik zaznamu se jeste da ClientDataset pouzit?

To nebude ani tak poctem zaznamu, jako spis velikosti. Ty data jsou v
pameti, takze podle techn. vybaveni klienta /jestli mas stanice PIV,512MB
RAM, tak klidne i tech 100MB :-)/

Roman
==============================
http://kouzelne.misto(tec)cz

Divne vysledky funkci ANSICompareXXXX (W2K CZ SP2,

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 09:27:53

Hi all,

narazil jsem na divne chovani funkci ANSICompareXXX(). Zde je priklad
vysledku, ktere produkuji:

'Praha 1-A' > 'Praha 10A'
'Praha 1-A' > 'Praha 10B'
'Praha 1-' < 'Praha 10' // :-OOOOO
'Praha 1' = 'Praha 1'

Umi to nekdo vysvetlit?


Thx, pf

DecimalSeparator was OLE Excel a formatovani

[*] Ing. Jan Dvorak <dvorak(zv)szu(tec)cz> - 19.9.2002 09:27:16

[P��loha v souboru: winmail.dat]
Zdravim ucastniky konference.
Stara dobra procedura Str pouziva standardne oddelovac
desetinnych mist tecku i tehdy, kdy je DecimalSeparator
carka. Naproti tomu, funkce format pouziva aktualni hodnotu
DecimalSeparator. Snad to vzniklo pouhym prevzetim procedury
Str z DOS knihoven, kde byl oddelovac desetinnych mist vzdy
tecka. Davam toto poznani k dobru pro ty, kteri to, stejne
jako ja doposud, nevedi.
Ing. Jan Dvorak

>
> Take je mozne zjistit aktualni oddelovac desetinne casti
> zavolanim promenne
> DecimalSeparator
>
>
> R.K.

> Subject: RE: OLE Excel a formatovani
>
>
> Narodni prostredi lze nakonfigurovat tak, ze i v Cesku
muze
> byt desetinnym
> oddelovacem tecka. Neporadil by nekdo zpusob programoveho
zjisteni
> desetinneho oddelovace?
>
> Ing. Jan Dvorak

www formular - vyplnit a odeslat - TWebBrowser

[*] Petr Slaby <petr.slaby(zv)i(tec)cz> - 19.9.2002 09:31:48

Ahoj,

myslim, ze mi kdysi fungovalo toto:

Element := Elements.item(I, varEmpty);
if (Element.type = 'submit') and (Element.name = [jmeno]) then
Element.Click;

Petr

Thursday, September 19, 2002, 7:43:32 AM, you wrote:

AB> Ahoj,
AB> reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
AB> 14.11.2000, kde
AB> popisuje Petr Vones automaticke vlozeni
AB> emailove adresy do prihlasovaciho dialogu konference na web strankach,
AB> za vyuziti komponenty TWebBrowser.
AB> Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
AB> Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
AB> jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
AB> TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
AB> zverejnim.

AB> Diky Ales Bolha



AB> Ahoj,

AB> pokud ti jde o predvyplneni textoveho pole na strance tak to lze
AB> udelat primo
AB> upravou atributu jednotlivych HTML elementu v TWebBrowser.

AB> Priklad, v prihlasovacim formulari do konference najdes:

AB> <TD><input type="text" name="Email"></TD>

AB> V aplikace lze pak pole Email vyplnit takto:

AB> procedure TForm1.Button1Click(Sender: TObject);
AB> begin
AB> WebBrowser1.Navigate('http://www.delphi(tec)cz/prihlas.asp');
AB> end;

AB> procedure TForm1.FillForm;
AB> var
AB> Doc: IHTMLDocument2;
AB> I: Integer;
AB> Element: OleVariant;
AB> Elements: IHTMLElementCollection;
AB> begin
AB> Doc := WebBrowser1.Document as IHTMLDocument2;
AB> Elements := Doc.all;
AB> for I := 0 to Elements.length - 1 do
AB> begin
AB> Element := Elements.item(I, varEmpty);
AB> if (Element.tagName = 'INPUT') and (Element.type = 'text') and
AB> (Element.name = 'Email') then
AB> Element.value := 'email(zv)aaa.aaa';
AB> end;
AB> end;

AB> procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
AB> const pDisp: IDispatch; var URL: OleVariant);
AB> begin
AB> if pDisp = WebBrowser1.DefaultInterface then
AB> FillForm;
AB> end;

AB> Petr Vones, amatersky programator

Dotaz na hodnotu generaotru

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 09:44:17

> Odes�latel: Roman <sw.maurice(zv)seznam(tec)cz>
> > Ja bych z Delphi spise zavolal ulozenou proceduru,
> > ktera mi hodnotu generatoru vrati.
> Jaky v tom spatrujes prinos?

Nepotrebuju vedet, co to je rdb$database (nebo co).

Nejsou nahodou generatory mimo transakcni kontrolu? Co kdyz nez das ten
"select gen_id()" nekdo dalsi provede insert...

Generatory jsou mimo transakcni kontrolu.
Jinymi slovy, rollback nevrati hodnotu generatoru zpet.
Jakkoli jsem vyse psal, ze bych preferoval ulozenou proceduru, domnivam se, ze i "soucasne" zavolany select gen_id(...) vrati ruzne hodnoty ID.

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

DataSnap & Midas

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 09:55:00

Odes�latel: Jirka Virt <virt(zv)volny(tec)cz>
nevite nekdo, zda pouziti DataSnap snizije trafic po siti?
tzn: pokud v podnikove siti budu pristupovat pres DataSnap(Midas)
snizim pocet prenesenych bytu?? Nebo je to ekvivalenti s klasickym napojenim na DB??

Domnivam se, ze se "trafic" urcite snizi.
DataSnap funguje jako:
nacti data, (klidne se "odstrihni" od databaze), pracuj s daty, az se ti bude chtit, uloz zmeny (pokud ses "odstrihnul", mel by ses predtim zase pripojit).

Naopak treba BDE kontaktuje databazi pri kazdem "edit", pri kazdem "post", navic pri "post" se vola dalsi "select", ktery "overi" hodnoty ulozeneho zaznamu.

Druha vec je, ze TClientDataSet (obvykle) nacita veskera data (select), zatimco treba TTable nacita jenom ty zaznamy, ktere nutne potrebuje (napr. TDBGrid).

Jak uz jsem nekolikrat psal, popisovane zalezitosti jsou vlastnosti TClientDataSet + TDatasetProvider.
DataSnap (D6Ent) nutne nepotrebuji, staci D6Pro.

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

Kniha

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 19.9.2002 10:01:40


Ahoj,

muj navrh je koupit knihu od CPressu, vzit CD, precist si original k
Delphi 5 a pak poridit knihy od Grady.

Slavek

On 18 Sep 2002 at 16:11, Jiri Lev wrote:
> Ahoj, a tvuj navrh ?
>
> Jirka
> > [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Slavek Rydval
> > Sent: Wednesday, September 18, 2002 3:11 PM

--------------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
Pozor, nyni pouze http://195.113.18.111/~rk/index.shtml
--------------------------------------------------------
Udelejte to blbuvzdorne a zitra nekdo vymysli jeste vetsiho blba.

Re[2]: Dotaz na hodnotu generaotru

[*] Roland Turcan <rolo(zv)sedas.sk> - 19.9.2002 10:02:12

<<< 19. 9. 2002 10:01 - "Jan Sebel�k" "honza(zv)haes(tec)cz" >>>
>> Odes�latel: Petr Fejfar <development(zv)callnet(tec)cz>
>> > select gen_id(mygenerator, 1) from rdb$database

JS> Ja bych z Delphi spise zavolal ulozenou proceduru, ktera mi hodnotu generatoru vrati.

Ale aby som si na kazdy generator vytvaral SP to predsa nie je to
prave orechove. Ale som nepochopil co tym myslis.
--
Best regards, TRoland

Kniha

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 19.9.2002 10:06:26


> > z CPressu. Obe knihy nejsou pro zacatecniky a rychlokvasky, ale pro
> > pokrocile uzivatele. Obe placaji nejake veci i o BDE. Obe mi
> > pripadnou velmi spatne.
> Uvedene knihy jsem nevidel, ale na druhou stranu ty jsi videl nejake
> dobre nebo snad velmi dobre knihy o Delphi?
*****Dobra az velmi dobra mi pripadla bichle o Delphi 1 vydana UNISem
(autori Steve Teixeira a Xavier Pacheco). Jak pak pribyvaly
vlastnosti do Delphi, v knihach se psalo o vsem, ale cimdaltimmene
(tedy siroka problematika s malou hloubkou vysvetlovani). Knihy k D6
jsou v tomto nejhorsi, protoze se clovek dozvi, ze neco existuje a
jde se dal (prikladem budiz popis rozhrani v knihy od Marca Cantu pro
D4 a pro D6).

> Petr Vones

Slavek
--------------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
Pozor, nyni pouze http://195.113.18.111/~rk/index.shtml
--------------------------------------------------------
Udelejte to blbuvzdorne a zitra nekdo vymysli jeste vetsiho blba.

Dotaz na hodnotu generaotru

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 10:14:06

From: "Jan Sebel�k" <honza(zv)haes(tec)cz>> Nepotrebuju vedet, co to je rdb$database (nebo co).

Je pravda, ze aby to vygenerovalo jedinou hodnotu,
tak se u toho selectu musi zajistit, aby tabulka obsahovala prave jeden
zaznam. A u IB je takovou tabulkou RDB$DATABASE - teda pokud do ni nekdo
nevlozi neco dalsiho :-)

***

Me se to taky moc nelibi, ale IMHO se to v bordelu,
ktery ve svete SQL serveru panuje, docela ztrati ;-)


pf


Ach ten lidsky pojem casu, aneb jak scitat hodiny?

[*] Blazek Jaroslav <Jaroslav.Blazek(zv)access-it(tec)cz> - 19.9.2002 10:24:16

Ahoj,

>> delphi(zv)zas-me(tec)cz 19.9.02 7:54 >>>
>select sum
> (cast(extract (hour from odeslano) as float)+
> cast(extract (minute from odeslano) as float)/60) as Pokus
>from imptisk

>Proc by nemohlo? ;-)
>Na FireBird, "Odeslano" je TimeStamp.

>> david.michal(zv)www-bv.com 18.9.02 16:00 >>>
>V databazi (MSSQL) mam v tabulce field Hours(datetime)

asi proto....

S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek(zv)access-it(tec)cz
http://www.access-it(tec)cz
ICQ# : 133673990
+420605/813644

TClientDataset misto BDE

[*] Petr Hlozek <petr h(zv)mrp(tec)cz> - 19.9.2002 10:36:09

From: "ing. Jan Fiala" <jan.fiala(zv)iol(tec)cz>
Subject: Re: TClientDataset misto BDE
> Uvedom si, jak takove memory tabulky pracuji. Proste nacitaji vsechny
> zaznamy do pameti a pak se s nimi pracuje.
> Klidne jej muzes pouzit pro 500000 zaznamu, pokud se smiris s tim, ze
> to na zacatku bude trvat, nez se zaznamy nactou a to same pri
> ukladani.
> Pri jakemkoliv vypadku pak prichazis o vsechny zmeny od posledniho
> ulozeni.

Existuje neco co bych mohl pouzit na lokalni databaze s timto poctem zaznamu
abych se vyhnul BDE?

TClientDataset misto BDE

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 19.9.2002 10:49:53

Treba dBase tabulky a pristup pres ODBC (nativni ODBCe komponenty,
nepotrebuji BDE). A mas k dispozici slusny engine vcetne indexu.
Pak jsou dalsi alternativy jako FlashFiller, ale uz za penize.

--
Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

19.9.2002 Petr Hlozek:
> Existuje neco co bych mohl pouzit na lokalni databaze s timto poctem zaznamu
> abych se vyhnul BDE?

TClientDataset misto BDE

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 11:08:46

From: "Petr Hlozek" <petr_h(zv)mrp(tec)cz>

> Existuje neco co bych mohl pouzit na lokalni databaze s timto poctem
> zaznamu abych se vyhnul BDE?

Zkus SQLite http://www.hwaci.com/sw/sqlite/index.html.
Umi toho dost a tento pocet zaznamu by mohl zvladnout.

Psal jsem pro nej interface do Delphi vcetne tSQLiteQuery v R/O rezimu.
Je to sice jen studie/prototyp, ale nejak to pracuje. Muzu poskytnout,
pripadne v tom neco fixnout ci doplnit.


HTH, pf


TJCLCounter - VYSOKA nepresnost hodnot

[*] Delphin <delphin(zv)post(tec)cz> - 19.9.2002 11:20:15

QueryPerformanceFrequency a QueryPerformanceCounter pouziva specialni hw
prostredky, ktere mohou byt ruzne na kazdem typu procesoru a zrejme ne pro
vsechny to funguje spravne. Na Celeronu 1 GHz je vysledek po sleep(5000)
4.98... .

Divne vysledky funkci ANSICompareXXXX (W2K CZ SP2,

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 19.9.2002 11:39:40


Ahoj,

umi. Ord ('-') < Ord ('0'). Tohle se netyka lokalniho nastaveni.

Slavek

On 19 Sep 2002 at 9:27, Petr Fejfar wrote:
> 'Praha 1-' < 'Praha 10' // :-OOOOO
> Umi to nekdo vysvetlit?

--------------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
Pozor, nyni pouze http://195.113.18.111/~rk/index.shtml
--------------------------------------------------------
Udelejte to blbuvzdorne a zitra nekdo vymysli jeste vetsiho blba.

Divne vysledky funkci ANSICompareXXXX (W2K CZ SP2,

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 11:47:14

From: "Slavek Rydval" <rk(zv)atrey.karlin.mff.cuni(tec)cz>

> umi. Ord ('-') < Ord ('0'). Tohle se netyka lokalniho nastaveni.

Hm... ono to tak jednoduche nebude ;-)

***

Tak tedy jeste jednou a snad srozumitelneji: umi nekdo vysvetlit, proc pri
porovnani

ANSICompareXXX('Praha 1-', 'Praha 10') < 0

zatimco pri porovnani (pouze pridan znak 'A' na konec obou retezcu) je

ANSICompareXXX('Praha 1-A', 'Praha 10A') > 0

prestoze by se dalo predpokladat, ze nadale plati

ord(S1[8]<ord(S2[8]):-OOOOOOOO, pf

funkcia swap

[*] Peter Surovy <psurovy(zv)uevora.pt> - 19.9.2002 12:00:47

Ahoj
mam DelphiV Ent a tam je funkcia
swap ktora prevadza high-order bytes value
na low-order-bytes value.
ale funguje len pre 16 bitove hodnoty
ja by som potreboval pre 32 bitove konkr
longword.
Existuje to niekde alebo si to treba napisat?
Dik
Peter

TJCLCounter - VYSOKA nepresnost hodnot

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 19.9.2002 13:04:22

Ja bych cekal spis nepresnost toho Sleepu, uz z toho, co vlastne dela.
Vaclav Sazima

Delphin wrote:
>
> QueryPerformanceFrequency a QueryPerformanceCounter pouziva specialni hw
> prostredky, ktere mohou byt ruzne na kazdem typu procesoru a zrejme ne pro
> vsechny to funguje spravne. Na Celeronu 1 GHz je vysledek po sleep(5000)
> 4.98... .

Spravy ComboBoxu

[*] Roland Turcan <rolo(zv)sedas.sk> - 19.9.2002 13:43:27

<<< 19. 9. 2002 13:33 - Robert Suska "delphi(zv)korak.sk" >>>
RS> Ahojte!

RS> Chcel by som Vas poprosit o jednu radu tyka sa komponenty TComboBox
RS> potrebujem urobit taku vec ze ked sa vyroluje ComboBox list pre vyber jednej
RS> hodnoty tak potrebujem sa zavesit na spravu ktora by mi predala informaciu o
RS> texte ktory sa nachadza priamo pod kurzorom mysi a ten text potrebujem
RS> vlozit do Hint. Jedna sa mi o to ze mam viac komponent ComboBox na jednom
RS> forme a su dost kratke a text co je v nich tak ho nieje vidiet cely a preto
RS> ten text chcem strcit do toho Hintu aby sa dal cely pekne citat.

a keby si si dal spocitat dlzku v pixloch kolko by zabral maximalny
string z items a nastavil DropDownWidth ?
--
Best regards, TRoland

Komunikacia PC-> EURO200M

[*] Robert Fujak <robof(zv)inmail.sk> - 19.9.2002 13:45:20

Zdravim Vas,
moze mi prosim niekto poslat kratky priklad on-line komunikacie (v PC sa
blokuju polozky a posielaju do pokladne az po uzavreti uctu) s registracnou
pokladnou EURO-2000M (3100PLU). Mam popis packetu, ale moc tomu nerozumiem
(este som take nieco nerobil).
Ak to budete vediet spravit, popis packetu vam poslem. Priklad mozete poslat
na sukr.mail. mailto:robof(zv)inmail.sk

Dakujem.

na komunikaciu pouzivam TVaComm.


----------
Teraz si uz KAZDY moze registrovat svoju domenu .SK
Viac info na: http://www.SlovakNET.sk/predregistracia.asp

Divne vysledky funkci ANSICompareXXXX (W2K CZ SP2,

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 19.9.2002 13:53:54

> ANSICompareXXX('Praha 1-', 'Praha 10') < 0
>
> zatimco pri porovnani (pouze pridan znak 'A' na konec obou retezcu) je
>
> ANSICompareXXX('Praha 1-A', 'Praha 10A') > 0
>
> prestoze by se dalo predpokladat, ze nadale plati

Zkus to jeste proverit, ale mam pocit, ze u te porovnavaci fce (ne v Delphi, ale az v
urovni Windows) se da pomoci flagu nastavit, ze pomlcky a jine znaky ma ignorovat.
Kolegove na neco podobneho kdysi narazili u FlashFileru a bylo to v tom, bohuzel
blizsi info o tom nemam. Z letmeho kouknuti do SysUtils a Windows jsem to nezjistil,
ale treba se to potvrdi.

David Lebeda

ClientDataSource

[*] LUKES V�clav <lukes(zv)ans(tec)cz> - 19.9.2002 14:04:27


Ahoj,

prosim vas o radu. Mam D6 a Win2000.
Mam toto spojeni:

SQLConnection
SQLDataSet
DataSetProvider
ClientDataSet
DataSource

Vse je pospojovano a vraci mi to data. Kdyz ale chci treba neco mazat a napisu tohle:

ClientDataSource.Delete;
ClientDataSource.Post;
dostanu pri spusteni tuto hlasku:

...'ClientDataSource: dataset not in edit or insert mode.'


Kde nastavim onen EDIT ? V TQuery jsem nastavoval RequestLive, ale tady ???

Diky

V.

CoMarshalInterface vraci E_INVALIDARG

[*] Karel Kimes <kkonf(zv)email(tec)cz> - 19.9.2002 15:00:49

ahoj,
prosim projdete si nize uvedeny kod metody COM komponenty.
procedure TKCH_DCOM_03.Go(delay: Integer);
var
_IStream : IStream;
_IStream_h : THandle;
res : HRESULT;
begin
res := CreateStreamOnHGlobal(0, false, _IStream);
if res <> S_OK then
raise Exception.Create('CreateStreamOnHGlobal error: ' + IntToStr(res));

res := GetHGlobalFromStream(_IStream, _IStream_h);
if res <> S_OK then
raise Exception.Create('GetHGlobalFromStream error: ' + IntToStr(res)); res := CoMarshalInterface(_IStream, DIID_IKCH_DCOM_03Events, FEvents,
MSHCTX_DIFFERENTMACHINE, nil, MSHLFLAGS_NORMAL);
// ***** pri pouziti komponenty na jednom PC je vse OK, ALE pokud se snazim
volat komponentu na jinem PC (DCOM je nastaveno dobre, vcetne
opravneni!!!), tak mne to vraci E_INVALIDARG. O co gou???
if res <> S_OK then
raise Exception.Create('CoMarshalInterface error: ' + IntToStr(res));

_IStream := nil;
// **** uvolnim timto _IStream??? nebo musim volat _Release??? TTestThread.Create(delay, _IStream_h); // ve vlakne provadim
CoUnmarshallInterface

CreateLOG('d:\dcom\_GoEnd.txt');
end;


kchodl

WinXP, D6PRO UPDATE PACK 2


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.381 / Virov� b�ze: 214 - datum vyd�n�: 2.8.2002

DBNavigator nasvislo

[*] <context.katalog(zv)centrum(tec)cz> - 19.9.2002 15:19:24

Diky za radu. Funguje to, az na jednu vec.
Do vlastnosti Caption se mi neustale dotahuje nazev te
prislusne actions, treba Prior. I kdy� to odmazu, zase
se to tam mrska natahne. A zobrazuje se to na tlacitku i po
spusteni aplikace.
Da se to odstranit jednine tak, ze tam vlozim znak "mezera".
Tim se mi ale zase posune obrazek, ktery mam na Glyphu, takze
neni uprostred.
Da se to nejak vydusit?

Diky,

J. Altmann
-----------------------------------------------
> Od: "Ludek ZITA" <konference(zv)sales(tec)cz>
> Komu: <delphi-l(zv)clexpert(tec)cz>
> CC:
> Datum: Mon, 16 Sep 2002 21:46:14 +0200
> P�edm�t: Re: DBNavigator nasvislo
>
>
> ----- Original Message -----
> From: <context.katalog(zv)centrum(tec)cz>
>
> > Lze nejakym jednoduchym zpusobem otocit DBNavigator nasvislo
>
> Ahoj.
> Pou�ij Toolbar (ten se data dat svisle) a preddefinovane
Action. Ikonky
> muzes pouzit defaultni nebo si je namalujes sam.
>
> Ludek



--------------------
�ena v centru pozornosti na http://zena.centrum(tec)cz

DBNavigator nasvislo

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 19.9.2002 15:31:20

From: <context.katalog(zv)centrum(tec)cz>
> Diky za radu. Funguje to, az na jednu vec.
> Do vlastnosti Caption se mi neustale dotahuje nazev te
> prislusne actions, treba Prior. I kdy� to odmazu, zase

Nastav TToolBar.ShowCaptions na False

Petr Vones

zmena rozliseni obrazovky

[*] J�n Kuch�r - 19.9.2002 15:35:44

caute

v programu napsanem pres D5 a urcenem pro W2000 pouzivam kod pro
automatickou zmenu rozliseni obrazovky na 800x600 a po ukonceni programu
prepinam rozliseni zpet na puvodni hodnotu, problem je ale v tom, ze kdyz
kodem ktery jsem prilozil prepnu rozliseni obrazovky tak se mi strati lista
windowsu s tlacitkem start a objevy se az po restartu pocitace, tak pokud
nekdo vite co delam spatne tak mi prosim pomozte.
DIK


>procedure NewScreen(stav:boolean);
>var lpDevMode : TDeviceMode;
> Frequency,aResult : integer;
> DC: HDC;
>begin schovej_listu(stav);
> DC := GetDC(0);
> Frequency := GetDeviceCaps(DC, VREFRESH);
> if (Frequency=0) or (Frequency=1) then Frequency:=85;
> ReleaseDC(0, DC);
> EnumDisplaySettings( nil, 0, lpDevMode );
> if stav then begin with lpDevMode do begin dmBitsPerPel := 16;
>
OldFrequencysc:=Frequency;
>
dmPelsWidth := Newwidthsc;
>
dmPelsHeight := Newheightsc;
>
dmDisplayFrequency:=Frequency;
>
dmFields := DM_BITSPERPEL or DM_PELSWIDTH or
>
DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
> end
> end
> else begin with lpDevMode do begin dmBitsPerPel := 16;
>
dmPelsWidth := Oldwidthsc;
>
dmPelsHeight := Oldheightsc;
>
dmDisplayFrequency:=OldFrequencysc;
>
dmFields := DM_BITSPERPEL or DM_PELSWIDTH or
>
DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
> end
> end;
> aResult := ChangeDisplaySettings( lpDevMode, 0 );
>end;

CoMarshalInterface vraci E_INVALIDARG

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 19.9.2002 15:36:44

Kde se vzalo FEvents ve volani CoMarshalInterface ??? Takhle z toho nejde
nic moc vykoukat :-)

O :-))

> -----P�vodn� zpr�va-----
> ahoj,
> prosim projdete si nize uvedeny kod metody COM komponenty.
>
>
> procedure TKCH_DCOM_03.Go(delay: Integer);
> var
> _IStream : IStream;
> _IStream_h : THandle;
> res : HRESULT;
> begin
> res := CreateStreamOnHGlobal(0, false, _IStream);
> if res <> S_OK then
> raise Exception.Create('CreateStreamOnHGlobal error: ' +
> IntToStr(res));
>
> res := GetHGlobalFromStream(_IStream, _IStream_h);
> if res <> S_OK then
> raise Exception.Create('GetHGlobalFromStream error: ' +
> IntToStr(res));
>
> res := CoMarshalInterface(_IStream, DIID_IKCH_DCOM_03Events, FEvents,
> MSHCTX_DIFFERENTMACHINE, nil, MSHLFLAGS_NORMAL);
> // ***** pri pouziti komponenty na jednom PC je vse OK, ALE pokud
> se snazim
> volat komponentu na jinem PC (DCOM je nastaveno dobre, vcetne
> opravneni!!!), tak mne to vraci E_INVALIDARG. O co gou???
>
>
> if res <> S_OK then
> raise Exception.Create('CoMarshalInterface error: ' + IntToStr(res));
>
> _IStream := nil;
> // **** uvolnim timto _IStream??? nebo musim volat _Release???
>
> TTestThread.Create(delay, _IStream_h); // ve vlakne provadim
> CoUnmarshallInterface
>
> CreateLOG('d:\dcom\_GoEnd.txt');
> end;
>
> kchodl
>
> WinXP, D6PRO UPDATE PACK 2
>

Services a DCOM

[*] Alexandr Stefek <alex(zv)scova.vabo(tec)cz> - 19.9.2002 15:49:21

Krome Nastaveni security je potreba do registru nastavit jeste nejake
klice (napr. LocalService pod, tusim CLSID).
Ja osobne pridavam do .dpr napr. nasledujici kod (samozrejme lze
optimalizovat):

begin
ComServer.UIInteractive := False;

if FindSwitch('INSTALL') then begin
CreateRegKey('CLSID\' + GUIDToString(CLASS_TransferOBJ), 'AppID',
GUIDToString(CLASS_TransferOBJ));
CreateRegKey('AppID\' + GUIDToString(CLASS_TransferOBJ), '',
'TransferOBJ');
CreateRegKey('AppID\' + GUIDToString(CLASS_TransferOBJ), 'LocalService',
'TransferLayer');
end else
if FindSwitch('UNINSTALL') then begin
DeleteRegKey('CLSID\' + GUIDToString(CLASS_TransferOBJ));
DeleteRegKey('AppID\' + GUIDToString(CLASS_TransferOBJ));
end;

Pritom CLASS_TransferOBJ je GUID tridy,
TransferLayer je nazev sluzby, ktera DCOM obsluhuje.

Dale je potreba do implementacni unity pridat

initialization
if not (FindSwitch('INSTALL') or FindSwitch('UNINSTALL')) then begin
TAutoObjectFactory.Create(ComServer, TTransferOBJ, Class_TransferOBJ,
ciMultiInstance, tmApartment);
end;

V opacne pripade to pri instalaci dela problemy (pokud si vzpominam).

Snad to pro zacatek staci.

Alexandr STEFEK
----- Original Message -----
From: "Zbysek Hlinka" <hlinka(zv)hlinka(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, September 18, 2002 4:27 PM
Subject: Services a DCOM


> Ahoj,
>
> mate nekdo zkusenost s provozovanim DCOM a services?
>
> Jaky je stav: exac, ktery ma COM interface a bezi na jednom pocitaci.
> Dalsi program na jinem pocitaci se k tomuto programu pripojuje a
> komunikuje s mim pres interface. Pokud je prvni program spusten
> normalne, vse beha OK. Nedari ze vsak pripojeni, pokud je prvni
> program spusten jako service, druhy program ho neumi najit. Nevi
> nekdo, kde by mohl byt problem?
>
> S pozdravem
>
> Zbysek Hlinka
>
>
>

Cislo stranky u QuickReportu

[*] Lstiburek Pavel <Lstiburek(zv)ceb(tec)cz> - 19.9.2002 15:54:15

Nevite jak nastavit "na tvrdo" cislo strany pri tisku v QuickReportu ?
Potrebuji po odstrankovani na grupe zacit znovu od 1.


Pavel

ClientDataSource

[*] Lstiburek Pavel <Lstiburek(zv)ceb(tec)cz> - 19.9.2002 16:04:14

K Delete neni Post.

Pavel

> Od: LUKES V�clav [mailto:lukes(zv)ans(tec)cz]
> Ahoj,
>
> prosim vas o radu. Mam D6 a Win2000.
> Mam toto spojeni:
>
> SQLConnection
> SQLDataSet
> DataSetProvider
> ClientDataSet
> DataSource
>
> Vse je pospojovano a vraci mi to data. Kdyz ale chci treba
> neco mazat a napisu tohle:
>
> ClientDataSource.Delete;
> ClientDataSource.Post;
>
>
>
> dostanu pri spusteni tuto hlasku:
>
> ...'ClientDataSource: dataset not in edit or insert mode.'
>
>
> Kde nastavim onen EDIT ? V TQuery jsem nastavoval
> RequestLive, ale tady ???
>
> Diky
>
> V.
>

Rychlost ODBC pristupu do DB Progress

[*] Franti�ek Ml�och <frantisek.mlcoch(zv)vsb(tec)cz> - 19.9.2002 16:08:06

Zdrav�m.

Pracuji s DB Progress a provadim nad ni SQL dotazy z Delphi 6. Velmi me
zklamala rychlost odezvy. Pri testovani jsem na DB posilal opakovane (20
krat) dotaz (Select * FROM table WHERE ...) s promennym vyhledvacim
kriteriem, abych zabranil vyuzivani cache. Zkousel jsem pouzit jak ADO, tak
BDE. Pokud jsem v BDE pouzil permanentni spojeni bylo BDE o 30% rychlejsi
nez ADO se stejnym nastavenim. Ale i tak provedeni 20 dotazu trvalo 20 - 24
sek u ADO a 13 - 21 sek u BDE, coz je dost pomale.

Abych mel moznost srovnani provedl jsem stejny test i vuci DB MySQL 4.1 se
stejnymi daty, za pouziti ODBC pristupu (MySQL bezel na jinem stroji) a
rozdil byl sokujici. Uvedenych 20 dotazu se provedlo za 0.8 - 1.5 sek.

Ten samy pristup pres ODBC pouzivam u WWW serveru, kde z PHP generuji nejake
stranky a tam je odezva podstatne lepsi. Cas na jeden dotaz se pohybuje
kolem 0.1 sek.

Nevite cim to muze byt? Mate nekdo zkusenosti s DB Progress?

Franta.

funkcia swap

[*] Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz> - 19.9.2002 16:43:21

> swap ktora prevadza high-order bytes value
> na low-order-bytes value.
> ale funguje len pre 16 bitove hodnoty
> ja by som potreboval pre 32 bitove konkr
> longword.

Asi nejak takle:

function Swap32(x:longword):longword;
var y:array [1..4] of byte absolute x;
z:byte;
begin
z:=y[1]; y[1]:=y[4]; y[4]:=z;
z:=y[3]; y[3]:=y[2]; y[2]:=z;
result:=x;
end;

ClientDataSource

[*] Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz> - 19.9.2002 16:46:21

> Mam toto spojeni:
>
> SQLConnection
> SQLDataSet
> DataSetProvider
> ClientDataSet
> DataSource
>
> Vse je pospojovano a vraci mi to data. Kdyz ale chci treba neco mazat a napisu tohle:
>
> ClientDataSource.Delete;
> ClientDataSource.Post;
>
> dostanu pri spusteni tuto hlasku:
>
> ...'ClientDataSource: dataset not in edit or insert mode.'
>
> Kde nastavim onen EDIT ? V TQuery jsem nastavoval RequestLive, ale tady ???

Zkus pouzit ClientDataSet.Edit;

Jirka

Jak v SQL dotazu ignorovat Case Sensitive ?

[*] PETR KOREC <pkorec(zv)ic-energo(tec)cz> - 19.9.2002 16:02:33



Ahoj, poradi mi prosim nekdo jak v nasledujicim dotazu z Delphi do Oracle
dosahnout toho, aby pri porovnavani nezalezelo na velikosti pismen ?
Dik, Petr

SQL.Add('SELECT sablona FROM tism_objekty_implic WHERE (sablona= ' + #39
+EditImSablona.text + #39 + ')');

Problem s TIBClientDataSet

[*] Roman Pagac <PagacR(zv)servonic.de> - 19.9.2002 17:06:36

Zdravim!

Mam takyto problem: Potreboval by som aby sa mi data z tabulky JOBS
(Interbase
databaza) fetchovali do datasetu inkrementalne. Preto som v TIBClientDataSet

(property CommandText="select * from JOBS") nastavil property FetchOnDemand
na True. Ale aj napriek tomu sa mi vzdy do DataSetu fetchnu vsetky data z
tabulky.
Potom som nastavil aj PackedRecords na hodnotu > 0 ale aj tak sa fetchli do
datasetu vsetky data z tabulky.
Neviete mi prosim poradit v com je problem?

Vdaka.

S pozdravom Roman Pagac.

Divne vysledky funkci ANSICompareXXXX (W2K CZ SP2,

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 17:35:20

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

> Zkus to jeste proverit, ale mam pocit, ze u te porovnavaci fce
> (ne v Delphi, ale az v urovni Windows) se da pomoci flagu nastavit,
> ze pomlcky a jine znaky ma ignorovat.

Clovece, vis ze mas pravdu?

SysUtils vola API funkci CompareString s dwCmpFlags=0, takze defaultne se
interpunkcni znamenka ignoruji !!!

Musi se tp zavolat s flagem SORT_STRINGSORT

***

To je teda ze strany Borlandu dobrej vejmrd ... :-((((((
- jeste ze se u trid tStringList aj, da overridnout metoda CompareString().


Diky za ucinne nakopnuti, pf

TForm a jeho nastavenie

[*] Robert Suska <delphi(zv)korak.sk> - 19.9.2002 17:40:33

Ahojte!

Ako sa da definovat alebo nastavit formular tak aby sa v nom zobrazovali
scrollbari podla potreby cize ak je nejaky object vacsi ako plocha formu ale
zaroven nechcem aby sa dala menit velkost toho formu.

Dakujem

S pozdravom,

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

funkcia swap

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 17:49:24

From: "Ji�� Semler" <jsemler(zv)stbk.mcs(tec)cz>

> function Swap32(x:longword):longword;
> var y:array [1..4] of byte absolute x;
> z:byte;
> begin
> z:=y[1]; y[1]:=y[4]; y[4]:=z;
> z:=y[3]; y[3]:=y[2]; y[2]:=z;
> result:=x;
> end;

Pokud tomu dobre rozumim, tak Ti jde o otoceni Endianu.
To by slo treba takhle:

function ReverseEndian(aValue:dword): dword; assembler;
asm
xchg al,ah
rol eax,16
xchg al,ah
end;


HTH, pf

Jak v SQL dotazu ignorovat Case Sensitive ?

[*] Ben, Martin (CAP, GCF) <Martin.Ben(zv)gecapital(tec)com> - 19.9.2002 17:55:01

Pouzit funkce Upper nebo Lower

SELECT sablona FROM tism_objekty_implic WHERE Upper(sablona) =
Upper('MojeSablona')


Martin Ben


> -----Original Message-----
> From: PETR KOREC [mailto:pkorec(zv)ic-energo(tec)cz]
>
> Ahoj, poradi mi prosim nekdo jak v nasledujicim dotazu z
> Delphi do Oracle
> dosahnout toho, aby pri porovnavani nezalezelo na velikosti pismen ?
> Dik, Petr
>
> SQL.Add('SELECT sablona FROM tism_objekty_implic WHERE
> (sablona= ' + #39
> +EditImSablona.text + #39 + ')');

funkcia swap

[*] Peter Surovy <psurovy(zv)uevora.pt> - 19.9.2002 17:38:04

Ahoj

----- Original Message -----
From: "Petr Fejfar" <development(zv)callnet(tec)cz>
Sent: Thursday, September 19, 2002 4:49 PM

> Pokud tomu dobre rozumim, tak Ti jde o otoceni Endianu.
-- presne

> To by slo treba takhle:
--no ja som to medzi casom spravil
podobne ako radil:

----- Original Message -----
From: "Ji�� Semler" <jsemler(zv)stbk.mcs(tec)cz>
Sent: Thursday, September 19, 2002 3:43 PM

> function Swap32(x:longword):longword;
> var y:array [1..4] of byte absolute x;
> z:byte;

----ale toto Tvoje sa mi zda tiez zaujimave
hlavne preto ze z toho nerozumiem nic
okrem 'function' a 'end' jake to ma vyhody?

> function ReverseEndian(aValue:dword): dword; assembler;
> asm
> xchg al,ah
> rol eax,16
> xchg al,ah
> end;
Peter

funkcia swap

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 19.9.2002 19:16:58

From: "Peter Surovy" <psurovy(zv)uevora.pt>

> ----ale toto Tvoje sa mi zda tiez zaujimave
> hlavne preto ze z toho nerozumiem nic
> okrem 'function' a 'end' jake to ma vyhody?
>
> > xchg al,ah
> > rol eax,16
> > xchg al,ah


Vyhoda bude v jednoduchosti a rychlosti, protoze pokud jsem ten assembler
moc nezapomel, tak to asi implementovat rychleji nejde.
A endiany se vetsinou prohazuji pri komunikaci
Unix <-> WinTel, takze tam o rychlost zpravidla jde.

Pouziva to registrovou volaci konvenci, takze vstup je v registru EAX,
vysledek taky.

Instrukce XCHG prohazuji byty ve spodnim slove, ROL prohodi slova rotaci
doleva o 16 bitu. Tot vse.

HTH, pf

ClientDataSource

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 19:17:34

> Odes�latel: Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz>
> > ClientDataSource.Delete;
> > ClientDataSource.Post;

> Zkus pouzit ClientDataSet.Edit;
Ne.
Delete je bez Post. Po Delete zustane ClientDataSet.Status=dsBrowse.

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

Problem s TIBClientDataSet

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 19.9.2002 19:19:20

> Odes�latel: Roman Pagac <PagacR(zv)servonic.de>
> Mam takyto problem: Potreboval by som aby sa mi data z tabulky JOBS
> (Interbase databaza) fetchovali do datasetu inkrementalne

> Potom som nastavil aj PackedRecords na hodnotu > 0 ale aj tak sa fetchli do
> datasetu vsetky data z tabulky.

Pokud je PackedRecords>0, pak by se po ClientDataSet.Open melo nacist pouze tolik paketu, kolik potrebuje napr. DBGrid.

Probl�m je ale ten, ze (skoro) jakakoli manipulace s temito daty (FindKey, Locate, IndexFieldNames, filter) opravdu zpusobi nacteni vsech dat. Proti tomu se asi neda nic delat. Zkontroluj RecordCount.

Nekdo z ucastniku kurzu mi rikal, ze nacte jenom potrebna data (PackedRecords>0), aby se uzivateli formular rychle zobrazil. Pak ale, zatimco uzivatel nic nedela, nacte si zbyla data.

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

ClientDataSource

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 19.9.2002 20:08:11

MTkuOS4yMDAyIEphbiBTZWJlbO1rOg0KPj4gT2Rlc+1sYXRlbDogSmn47SBTZW1sZXIgPGpzZW1s
ZXJAc3Riay5tY3MuY3o+DQo+PiA+IENsaWVudERhdGFTb3VyY2UuRGVsZXRlOw0KPj4gPiBDbGll
bnREYXRhU291cmNlLlBvc3Q7DQoNCj4+IFprdXMgcG91eml0IENsaWVudERhdGFTZXQuRWRpdDsN
Cj4gTmUuDQo+IERlbGV0ZSBqZSBiZXogUG9zdC4gUG8gRGVsZXRlIHp1c3RhbmUgQ2xpZW50RGF0
YVNldC5TdGF0dXM9ZHNCcm93c2UuDQoNClByb2JsZW0gYnVkZSBzcGlzIHYgbmVha3R1YWxpem92
YXRlbG5lbSBTUUwgZG90YXp1Lg0KQ28ga2R5YnlzIG1pc3RvIHRha292eWNoIGtya29sb21ueWNo
IGtvbnN0cnVrY2kgcG91emlsIGsgdnltYXp1IHByaW1vDQpTUUwgZG90YXo6IERlbGV0ZSBGcm9t
IC4uLi4NCg0KLS0gDQppbmcuIEphbiBGaWFsYQ0KbWFpbHRvOmphbi5maWFsYUBpb2wuY3o=

SQL dotaz - datumy

[*] bleak <bleak(zv)mvesely(tec)com> - 19.9.2002 21:00:02

zdravim,
potrebuji trochu poradit, mam tyto radky v tabulce:

id_klienta zapojen odpojen
3061 1.1.1998 1.8.2002
3061 1.10.2002 <NULL>

prosim o pomoc s navrhem SQL dotazu - potrebuji z teto tabulky zjistit, ze
klient nema pro tento mesic (1.9.2002) zadny zaznam, rozhodujici je pouze
mesic a rok (FireBird).

bleak


Cas v sestave Sinea

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 19.9.2002 21:01:50

Ahoj,
mam sestavu plnenou daty v OnGetData a potreboval bych pouzit nasledujici
funkci:
IIF(#CAS<'12:00','true','false')
#CAS je ve formatu 'hh:nn'. Funkce vsak vraci vzdy 'true', i kdyz je #CAS
vetsi nez '12:00', kde delam chybu?
K cemu je event OnGetDataType? Nikde v dokumentaci jsem na nej nenarazil...

Roman
- - - - - - - - - - - - - - - - - - - - -
http://kouzelne.misto(tec)cz/

Listview - Kde ta chyba JE ?

[*] Jiri Betunak <kindrik(zv)centrum(tec)cz> - 19.9.2002 21:50:10

Omlouvam se je to delphi5 Win me

Pripadne slo by to nejak resit roztahovanim jednotlivych sloucu v zavislosti
na delce
vlozeneho textu

Jiri Betunak

----- Original Message -----
From: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, September 19, 2002 12:24 AM
Subject: Re: Listview - Kde ta chyba JE ?> From: "Jiri Betunak" <kindrik(zv)centrum(tec)cz>
> > ale pri roztahovani formu (listwiev mam nastaveny na align = alclient)
> > mi Win ME hodi "modrou smrt" nevite kde mam chybu predem dik
>
> Zajimave, v jake (presne) verzi Delphi ?
>
> Petr Vones
>
>
>

Listview - Kde ta chyba JE ?

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 19.9.2002 21:56:41

From: "Jiri Betunak" <kindrik(zv)centrum(tec)cz>
> Pripadne slo by to nejak resit roztahovanim jednotlivych sloucu v zavislosti
> na delce vlozeneho textu

Tohle vypada jako jiz znama 'FPU chyba'. Zkus tuhle aplikaci:

http://www.econos.de/fpu/pas.zip

Jestli bude taktez zpusobovat BSOD nebo ne.

Petr Vones

Listview - Kde ta chyba JE ?

[*] Jiri Betunak <kindrik(zv)centrum(tec)cz> - 19.9.2002 22:03:24

Vyslo mi to takto ale asi nevim co to ma byt
//-----------------
FPU exceptions are masked now


Using a run count of 1000
Running EnumResources (Windows API) tests...
Number of exceptions hit: 0
------------------
Running floating point division by zero tests...
Number of exceptions hit: 0
------------------
Running floating point overflow tests...
Number of exceptions hit: 0
Done.
//------------------
"""""
A jeste se chci zeptat jak by pripadne slo resit roztahovani jednotlivych
sloucu v zavislosti
na delce vlozeneho textu
"""""

----- Original Message -----
From: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, September 19, 2002 9:56 PM
Subject: Re: Listview - Kde ta chyba JE ?> From: "Jiri Betunak" <kindrik(zv)centrum(tec)cz>
> > Pripadne slo by to nejak resit roztahovanim jednotlivych sloucu v
zavislosti
> > na delce vlozeneho textu
>
> Tohle vypada jako jiz znama 'FPU chyba'. Zkus tuhle aplikaci:
>
> http://www.econos.de/fpu/pas.zip
>
> Jestli bude taktez zpusobovat BSOD nebo ne.
>
> Petr Vones
>
>

Kniha

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 19.9.2002 22:10:18

From: "Slavek Rydval" <rk(zv)atrey.karlin.mff.cuni(tec)cz>
> vlastnosti do Delphi, v knihach se psalo o vsem, ale cimdaltimmene
> (tedy siroka problematika s malou hloubkou vysvetlovani). Knihy k D6

Coz je asi dano unosnym rozsahem (a tudiz i cenou) knihy. Budto bude uzce
specializovana na nejakou oblast nebo to bude takove to o nicem jako vetsina
soucasnych knih. Potiz je v tom, ze vydat nejakou uzce zamerenou knihu o
Delphi se asi nikdo moc neodvazi, nehlede k tomu ze ji asi ani nikdo nenapise,
protoze je to umorna prace ;-) Vlastne to nema reseni.

Petr Vones

Listview - Kde ta chyba JE ?

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

From: "Jiri Betunak" <kindrik(zv)centrum(tec)cz>
> Vyslo mi to takto ale asi nevim co to ma byt

Smyslem toho testu je vyvolat onu BSOD ktera vznika na nekterych pocitacich
pri deleni nulou. Jaky je presne text te BSOD u toho listview ?

Petr Vones

Cas v sestave Sinea

[*] Roland Turcan <rolo(zv)sedas.sk> - 19.9.2002 22:40:04

<<< 19. 9. 2002 22:39 - Roman "sw.maurice(zv)seznam(tec)cz" >>>
R> mam sestavu plnenou daty v OnGetData a potreboval bych pouzit nasledujici
R> funkci:
R> IIF(#CAS<'12:00','true','false')

Mam taky pocit, ze IIF spracuva a vyhodnocuje ako text. Ale sa mylim ?

--
Best regards, TRoland

Spravy ComboBoxu

[*] Delphi - konference <Delphikonf(zv)pilscom(tec)cz> - 20.9.2002 06:49:17



> ----------
> From: Jan Netrval
> Sent: Friday, September 20, 2002 6:49:16 AM
> To: Delphi - konference
> Subject: RE: Spravy ComboBoxu
> Auto forwarded by a Rule
>
Urcit sirku vyskakovaci roletky by bylo pekny ale jak jsem koukal tak
property DropDownWidth existuje jen u TDBLookupComboBox komponenty. Nebo se
snad pletu a existuje neco podobneho i u standardniho TComboBoxu nebo to lze
nastavit nejak jinak? Docela by mi to pomohlo.
Predem diky.


Jan Netrval
PilsCom,s.r.o. www.pilscom(tec)cz
Hou�kova 16
32600 Plze� (Pilsen) Czech Republic
Tel.:+420 19 744 1306
GSM: +420 607 883 480
e-mail: jnetrval(zv)pilscom(tec)cz
> -----Original Message-----
> From: Delphi - konference
> Sent: Thursday, September 19, 2002 6:10 PM
> To: Delphikonf2(zv)pilscom. cz (el. adresa)
> Subject: FW: Spravy ComboBoxu
>
>
>
>
> > ----------
> > From: Roland Turcan[SMTP:ROLO(zv)SEDAS.SK]
> > Sent: Thursday, September 19, 2002 1:43:27 PM
> > To: Robert Suska
> > Subject: Re: Spravy ComboBoxu
> > Auto forwarded by a Rule
> >
> <<< 19. 9. 2002 13:33 - Robert Suska "delphi(zv)korak.sk" >>>
> RS> Ahojte!
>
> RS> Chcel by som Vas poprosit o jednu radu tyka sa komponenty
> TComboBox
> RS> potrebujem urobit taku vec ze ked sa vyroluje ComboBox
> list pre vyber jednej
> RS> hodnoty tak potrebujem sa zavesit na spravu ktora by mi
> predala informaciu o
> RS> texte ktory sa nachadza priamo pod kurzorom mysi a ten
> text potrebujem
> RS> vlozit do Hint. Jedna sa mi o to ze mam viac komponent
> ComboBox na jednom
> RS> forme a su dost kratke a text co je v nich tak ho nieje
> vidiet cely a preto
> RS> ten text chcem strcit do toho Hintu aby sa dal cely pekne citat.
>
> a keby si si dal spocitat dlzku v pixloch kolko by zabral maximalny
> string z items a nastavil DropDownWidth ?
> --
> Best regards, TRoland
>
>

---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.391 / Virov� b�ze: 222 - datum vyd�n�: 19.9.2002

SQL dotaz - datumy

[*] Kalhous Zdenek <zdenek.kalhous(zv)comarr(tec)cz> - 20.9.2002 07:10:41

On 19 Sep 2002 at 21:00, bleak wrote:
> prosim o pomoc s navrhem SQL dotazu - potrebuji z teto tabulky
> zjistit, ze klient nema pro tento mesic (1.9.2002) zadny zaznam,
> rozhodujici je pouze mesic a rok (FireBird).
jestli je to FB, tak tam existuji fraze extract month/year from (nevim
zpameti presne jako se to zapisuje) a to by melo pro tento dotaz
stacit.

Cas v sestave Sinea

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 20.9.2002 07:34:16

> <<< 19. 9. 2002 22:39 - Roman "sw.maurice(zv)seznam(tec)cz" >>>
> R> mam sestavu plnenou daty v OnGetData a potreboval bych pouzit
nasledujici
> R> funkci:
> R> IIF(#CAS<'12:00','true','false')
>
> Mam taky pocit, ze IIF spracuva a vyhodnocuje ako text. Ale sa mylim ?

Mno, ja zkousel '16:00'<'12:00' a to vrati 'false', pro '8:00'<'12:00' to
vrati 'true', ale kdyz tam dam hodnotu z polozky, tak nastane ten problem.
:-/

Roman
==============================
http://kouzelne.misto(tec)cz

Spravy ComboBoxu

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 20.9.2002 07:37:21

>Urcit sirku vyskakovaci roletky by bylo pekny ale jak jsem koukal tak
>property DropDownWidth existuje jen u TDBLookupComboBox komponenty. Nebo se
>snad pletu a existuje neco podobneho i u standardniho TComboBoxu nebo to
lze
>nastavit nejak jinak? Docela by mi to pomohlo.
>Predem diky.

SendMessage(ComboBox.Handle,CB_SETDROPPEDWIDTH,FDropWidth,0);

Roman
==============================
http://kouzelne.misto(tec)cz

Cas v sestave Sinea

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 20.9.2002 08:33:34


> From: Roman
>
> mam sestavu plnenou daty v OnGetData a potreboval bych
> pouzit nasledujici funkci:
> IIF(#CAS<'12:00','true','false')
> #CAS je ve formatu 'hh:nn'. Funkce vsak vraci vzdy 'true',
> i kdyz je #CAS vetsi nez '12:00', kde delam chybu?

Operator < lze v uzivatelskych funkcich aplikovat pouze
na ciselne polozky.
Retezce je mozne porovnavat pouze pomoci operatoru
= a <>.

Je tedy potreba puvodne textovy udaj prevest na cislo,
napriklad:
IIF(LTRIM(LEFT(#CAS,2)+RIGHT(#CAS,2))<1200,'true','false')> K cemu je event OnGetDataType?

Pokud jsou data do generatoru sestav posilana
v udalosti OnGetData, jsou vsechny polozky
interpretovany jako polozky typu ftString.
To muze nekdy vadit, napriklad pri vyhodnocovani
funkci. Pomoci udalosti OnGetDataType
lze urcit jakeho typu ma ktera polozka byt.
Lze to pouzit i ke zmene typu polozky
ze skutecnych datovych zdroju.

Vaclav Krmela


DBNavigator nasvislo

[*] <context.katalog(zv)centrum(tec)cz> - 20.9.2002 08:36:55

To m�m, ale nepom�h�. Zkus�m zapatchovat Delphi.

D�ky

J. Altmann
______________________________________________________________
> Od: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
> Komu: <delphi-l(zv)clexpert(tec)cz>
> CC:
> Datum: Thu, 19 Sep 2002 15:31:20 +0200
> P�edm�t: Re: DBNavigator nasvislo
>
> From: <context.katalog(zv)centrum(tec)cz>
> > Diky za radu. Funguje to, az na jednu vec.
> > Do vlastnosti Caption se mi neustale dotahuje nazev te
> > prislusne actions, treba Prior. I kdy� to odmazu, zase
>
> Nastav TToolBar.ShowCaptions na False
>
> Petr Vones
>

--------------------
Nov� vyhled�va� pro �esk� internet www.WebFast(tec)cz - prost� najde ...

Services a DCOM

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 20.9.2002 08:38:18

On 19 Sep 2002 at 15:49, Alexandr Stefek wrote:

> Krome Nastaveni security je potreba do registru nastavit jeste nejake
> klice (napr. LocalService pod, tusim CLSID). Ja osobne pridavam do
> .dpr napr. nasledujici kod (samozrejme lze optimalizovat):

Zkousel jsem ruzne moznosti, ale vzdy mi to hlasilo nejakou chybu. V
nejlepsim pripade, ze pristup byl odepren. Mam to blbe umistene, nebo
je treba jeste neco nekde nastavit? Takto vypada .dpr:

{$R *.TLB}

{$R *.RES}

function Installing: Boolean;
begin
Result := FindCmdLineSwitch('INSTALL', ['-','\','/'], True) or
FindCmdLineSwitch('UNINSTALL', ['-','\','/'], True);
end;

function StartService: Boolean;
var
Mgr, Svc: Integer;
UserName, ServiceStartName: string;
Config: Pointer;
Size: DWord;
begin
Result := False;
Mgr := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if Mgr <> 0 then
begin
Svc := OpenService(Mgr, PChar(SServiceName), SERVICE_ALL_ACCESS);
Result := Svc <> 0;
if Result then
begin
QueryServiceConfig(Svc, nil, 0, Size);
Config := AllocMem(Size);
try
QueryServiceConfig(Svc, Config, Size, Size);
ServiceStartName :=
PQueryServiceConfig(Config)^.lpServiceStartName;
if CompareText(ServiceStartName, 'LocalSystem') = 0 then
ServiceStartName := 'SYSTEM';
finally
Dispose(Config);
end;
CloseServiceHandle(Svc);
end;
CloseServiceHandle(Mgr);
end;
if Result then
begin
Size := 256;
SetLength(UserName, Size);
GetUserName(PChar(UserName), Size);
SetLength(UserName, StrLen(PChar(UserName)));
Result := CompareText(UserName, ServiceStartName) = 0;
end;
end;

begin
if not Installing then
begin
CreateMutex(nil, True, 'QM1MAINSERV');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, PChar(SAlreadyRunning), PChar(SApplicationName),
MB_ICONERROR);
Halt;
end;
end;
ComServer.UIInteractive := False;
if FindCmdLineSwitch('INSTALL', ['-','\','/'], True) then begin
CreateRegKey('CLSID\' + GUIDToString(CLASS_QMCommunics),
'AppID', GUIDToString(CLASS_QMCommunics));
CreateRegKey('AppID\' + GUIDToString(CLASS_QMCommunics), '',
SServiceName);
CreateRegKey('AppID\' + GUIDToString(CLASS_QMCommunics),
'LocalService', SServiceName);
end else
if FindCmdLineSwitch('UNINSTALL', ['-','\','/'], True) then
begin
DeleteRegKey('CLSID\' + GUIDToString(CLASS_QMCommunics));
DeleteRegKey('AppID\' + GUIDToString(CLASS_QMCommunics));
end;
if Installing or StartService then
begin
SvcMgr.Application.Initialize;
SocketService := TSocketService.CreateNew(SvcMgr.Application, 0);
SvcMgr.Application.CreateForm(TQMForm, QMForm);
SvcMgr.Application.Run;
end else
begin
Forms.Application.ShowMainForm := False;
Forms.Application.Initialize;
Forms.Application.CreateForm(TQMForm, QMForm);
QMForm.Initialize(False);
Forms.Application.Run;
end;
end.
S pozdravem

Zbysek Hlinka


TForm a jeho nastavenie

[*] Ing. Jiri SOKOL <JS-delphi(zv)seznam(tec)cz> - 20.9.2002 08:40:07


----- Original Message -----
From: "Robert Suska" <delphi(zv)korak.sk>
To: "Delphi konfera" <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, September 19, 2002 5:40 PM
Subject: TForm a jeho nastavenie


> Ahojte!
>
> Ako sa da definovat alebo nastavit formular tak aby sa v nom zobrazovali
> scrollbari podla potreby cize ak je nejaky object vacsi ako plocha formu ale
> zaroven nechcem aby sa dala menit velkost toho formu.
>

Ahoj,
ja bych vedel o dvou moznostech.
1) nastavit vlastnost formu, aby nesel zvetsovat (tusim, ze se jmenuje NoSizable)
a pak povolit horizontalni a vertikalni scrollbary (i kdyz si ted nejsem jisty, jestli
to nejsou read only property - kdyz jo, tak se o to stara sam form) no a pak uz je vlozit
nejaky object vesti nez je form a je to
2) umistit na form komponentu scrollbar, dat ji vlastnost align=client a pak vsechny
komponenty nedavat na form, ale na scrollbar + opet zablokovat meneni velikosti formu.

Ahoj Jirka


Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187
D6ProfSP2,WinNT
amatersky programator

______________________________________________________________________
Reklama:
Mapy Prahy, Brna a Cech najdete na http://www.mapy(tec)cz

Cas v sestave Sinea

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 20.9.2002 08:45:04

> > K cemu je event OnGetDataType?
>
> Pokud jsou data do generatoru sestav posilana
> v udalosti OnGetData, jsou vsechny polozky
> interpretovany jako polozky typu ftString.
> To muze nekdy vadit, napriklad pri vyhodnocovani
> funkci. Pomoci udalosti OnGetDataType
> lze urcit jakeho typu ma ktera polozka byt.
> Lze to pouzit i ke zmene typu polozky
> ze skutecnych datovych zdroju.

Aha, a ten treti var parametr je promenna typu TFieldTypeS, jake hodnoty
muze nabyvat?

Dik za odpovedi.

Roman
==============================
http://kouzelne.misto(tec)cz

ClientDataSource

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 20.9.2002 08:54:48

> >> > ClientDataSource.Delete;

> Odes�latel: ing. Jan Fiala <jan.fiala(zv)iol(tec)cz>
> Problem bude spis v neaktualizovatelnem SQL dotazu.
> Co kdybys misto takovych krkolomnych konstrukci pouzil k vymazu primo
> SQL dotaz: Delete From ....

Jo, proc ne, souhlas, ale mluvime-li o TClientDataSet, tak zpravidla nemame primy pristup do databaze, TClientDataSet nema "ExecSQL".

Navic "DataSet.delete" mi smaze prislusny zaznam z datasetu (tedy napr. z gridu), kdezto "delete from" primo z databaze. (Pikantni by bylo, kdybych si zaznam smazal v databazi a pak ho v TClientDataSet modifikoval.)

Neaktualizovatelny "select" (zpravidla z vice tabulek) je problem, ktery je nutne resit (TUpdateObjecty, IBDataSet.ModifySQL, ...).

TClientDataSet ma jednu vyhodu. Protoze je vsechno v pameti, mohu si vetsinou dovolit resit propojeni na "souvisejici" tabulky pres LookupField, takze se vyhnu selectu z vice tabulek.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================
----------
> Odes�latel: ing. Jan Fiala <jan.fiala(zv)iol(tec)cz>
> Komu: delphi-l(zv)clexpert(tec)cz
> P�edm�t: Re: ClientDataSource
> Datum: 19. z��� 2002 20:08
>
> 19.9.2002 Jan Sebel�k:
> >> Odes�latel: Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz>
> >> > ClientDataSource.Delete;
> >> > ClientDataSource.Post;
>
> >> Zkus pouzit ClientDataSet.Edit;
> > Ne.
> > Delete je bez Post. Po Delete zustane ClientDataSet.Status=dsBrowse.
>
> Problem bude spis v neaktualizovatelnem SQL dotazu.
> Co kdybys misto takovych krkolomnych konstrukci pouzil k vymazu primo
> SQL dotaz: Delete From ....
>
> --
> ing. Jan Fiala
> mailto:jan.fiala(zv)iol(tec)cz

DBNavigator nasvislo

[*] <context.katalog(zv)centrum(tec)cz> - 20.9.2002 08:57:24

Uz jsem to vyresil, a to tak, ze jsem ve vlastnosti Caption
nechal znak &.
Mozna to bylo tim, ze jsem na Toolbar namisto ToolButtonu
pouzil SpeedButtony, ale potreboval jsem na tlacitko dostat
obrazek, coz do obycejneho ToolButtonu nejde.

J. Altmann

______________________________________________________________
> Od: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
> Komu: <delphi-l(zv)clexpert(tec)cz>
> CC:
> Datum: Thu, 19 Sep 2002 15:31:20 +0200
> P�edm�t: Re: DBNavigator nasvislo
>
> From: <context.katalog(zv)centrum(tec)cz>
> > Diky za radu. Funguje to, az na jednu vec.
> > Do vlastnosti Caption se mi neustale dotahuje nazev te
> > prislusne actions, treba Prior. I kdy� to odmazu, zase
>
> Nastav TToolBar.ShowCaptions na False
>
> Petr Vones
>


--------------------
Chcete zkusit jak to m�li t�k� Kotrba s Borovi�kou - sta�te se tren�rem sv�ho t�mu na www.superliga(tec)cz.

Cas v sestave Sinea

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 20.9.2002 08:58:47

> From: Roman
>
> > > K cemu je event OnGetDataType?
> >
> > Pokud jsou data do generatoru sestav posilana
> > v udalosti OnGetData, jsou vsechny polozky
> > interpretovany jako polozky typu ftString.
> > To muze nekdy vadit, napriklad pri vyhodnocovani
> > funkci. Pomoci udalosti OnGetDataType
> > lze urcit jakeho typu ma ktera polozka byt.
> > Lze to pouzit i ke zmene typu polozky
> > ze skutecnych datovych zdroju.
>
> Aha, a ten treti var parametr je promenna typu TFieldTypeS,
> jake hodnoty muze nabyvat?

Do uses je treba pridat sest_typ, kde je

TFieldTypeS = (ftsUnknown, ftsString, ftsSmallint, ftsInteger,
ftsWord,
ftsBoolean, ftsFloat, ftsCurrency, ftsBCD, ftsDate, ftsTime,
ftsDateTime,
ftsBytes, ftsVarBytes, ftsAutoInc, ftsBlob, ftsMemo, ftsGraphic,
ftsFmtMemo,
ftsParadoxOle, ftsDBaseOle, ftsTypedBinary, ftsCursor, ftsFixedChar,
ftsWideString,
ftsLargeint, ftsADT, ftsArray, ftsReference, ftsDataSet, ftsOraBlob,
ftsOraClob,
ftsVariant, ftsInterface, ftsIDispatch, ftsGuid, ftsTimeStamp,
ftsFMTBcd);

Jsou to vsechny ftXXX z Delphi 6 prejmenovane na ftsXXX.
Toto prejmenovani se jiz v soucasne dobe jevi zbytecne.
Pochazi ale z doby, kdy nebylo mozne jinym zpusobem
oddelit generator sestav od BDE.

Vaclav Krmela

TForm a jeho nastavenie

[*] Tomas Cieslar <cieslar(zv)efisyst(tec)com> - 20.9.2002 09:00:43

Cau,

na to by mela stacit komponenta ScrollBox. V property Align zadas alClient,
ScrollBox se roztahne pres cely Form a dalsi komponenty davas na ScrollBox.

Cieslar

----- Original Message -----
From: "Robert Suska" <delphi(zv)korak.sk>
To: "Delphi konfera" <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, September 19, 2002 5:40 PM
Subject: TForm a jeho nastavenie


> Ahojte!
>
> Ako sa da definovat alebo nastavit formular tak aby sa v nom zobrazovali
> scrollbari podla potreby cize ak je nejaky object vacsi ako plocha formu
ale
> zaroven nechcem aby sa dala menit velkost toho formu.
>
> Dakujem
>
> S pozdravom,
>
> ************************************
> Robert Suska
> KORAK SLOVAKIA s.r.o.
> Horna 52
> 974 01 Banska Bystrica
> www.korak.sk robert(zv)korak.sk
> Network administrator, Delphi programmer
> ************************************
>
>

Jehlickovy tisk v Sinee na W2000/XP

[*] pilifs <pilifs(zv)seznam(tec)cz> - 20.9.2002 09:21:35

Hello Delphi,

muzete mi prosim nekdo poradit jak vyhotovit nebo kde sehnat soubor
ridicich znaku (asi neco jako TTI.DAT pro W98) pro draft tisk pod
Sineu na W2000/XP. Dost nutne bych to potreboval.
Respektive pokud mate nejake zkusenosti s timto problemem tak bych
uvital kazdou radu.

Diky.

D5 Ent, W2000/XP, MSSQL2000

--
Best regards,
pilifs mailto:pilifs(zv)seznam(tec)cz

DBNavigator nasvislo

[*] Jaroslav Nadhera <nadhera(zv)csh(tec)cz> - 20.9.2002 09:31:53

> Do vlastnosti Caption se mi neustale dotahuje nazev te
> prislusne actions, treba Prior. I kdy� to odmazu, zase
> se to tam mrska natahne. A zobrazuje se to na tlacitku i po
> spusteni aplikace.

Napr. v OnCreate nastavit Caption na prazdne retezce. Pak to tam vydrzi.

Jaroslav Nadhera

CSH spol. s r.o.
Velflikova 10, 160 00 Praha 6
tel.: 02/2431 2344-5 (po precislovani 22431 2344-5)
fax: 02/3552 2892 (po precislovani 23552 2892)
e-mail: nadhera(zv)csh(tec)cz WWW: http://www.csh(tec)cz
pobocka Ostrava:
Nedbalova 14, 701 00 Ostrava
tel: 069/663 5687 (po precislovani 59663 5687)

Jak v SQL dotazu ignorovat Case Sensitive ?

[*] ViragI(zv)logica(tec)com - 20.9.2002 09:33:11


SQL.Add('SELECT sablona FROM tism_objekty_implic WHERE upper(sablona)= ''' +
uppercase(EditImSablona.text)+'''')

nebo

SQL.Add('SELECT sablona FROM tism_objekty_implic WHERE upper(sablona)= ' +
''''+uppercase(Desc)+'''')

Ivan Virag

-----Original Message-----
From: PETR KOREC [mailto:pkorec(zv)ic-energo(tec)cz]
Sent: Thursday, September 19, 2002 5:03 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Jak v SQL dotazu ignorovat Case Sensitive ?

Ahoj, poradi mi prosim nekdo jak v nasledujicim dotazu z Delphi do Oracle
dosahnout toho, aby pri porovnavani nezalezelo na velikosti pismen ?
Dik, Petr

SQL.Add('SELECT sablona FROM tism_objekty_implic WHERE (sablona= ' + #39
+EditImSablona.text + #39 + ')');


This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.

Rychlost odesilani data pres UDP

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 20.9.2002 10:18:01

Mel bych otazecku na odborniky pres site => pouzivam TUPDBlockSocket ze
synapse k odesilani dat. Vim, ze po ceste k cili je promenna prenosova
rychlost => PC ktere odesila data ma na ethernetu nekonecne velkou
prenosovou rychlost proti jinym castim site po ceste k cili. Jsem schopen
nejak zjisit, ze doslo k "zahlceni" prenosove cesty. Experimentalne mam
zjisteno, ze k nejakemu zahlceni dochazi (ztraceji se pakety, pokud se data
odesilaji prilis rychle po sobe, pokud se mezi pakety vkladaji casove
mezery, chodi vse OK, pricemz pokud si to same zkousim po lokalni 100 Mb
siti, chodi to OK). Da se cas, ktery je nutno vkladat mezi pakety nejako
exaktne zjistit. Napr. jestli to treba, pokud se cesta nekde "zahlti" to
zpatky, neposila nejake ICMP hlasky, nebo neco takoveho. Nebo je jedina
sance to delat nejako "experimentalne". Rady typu "pouzij TCP" bouzel
nepripadaji v uvahu.

Diky

O :-))

DBNavigator nasvislo

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 20.9.2002 10:18:41

> Mozna to bylo tim, ze jsem na Toolbar namisto ToolButtonu
> pouzil SpeedButtony, ale potreboval jsem na tlacitko dostat
> obrazek, coz do obycejneho ToolButtonu nejde.

Jaktoze ne? Musis mit ImageList, na nejz Toolbar propojis a
buttonky pak cerpou ikony z toho ImageList (property ToolButtonu
ImageIndex).

David Lebeda

>
> J. Altmann
>
> ______________________________________________________________
> > Od: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
> > Komu: <delphi-l(zv)clexpert(tec)cz>
> > CC:
> > Datum: Thu, 19 Sep 2002 15:31:20 +0200
> > P�edm�t: Re: DBNavigator nasvislo
> >
> > From: <context.katalog(zv)centrum(tec)cz>
> > > Diky za radu. Funguje to, az na jednu vec.
> > > Do vlastnosti Caption se mi neustale dotahuje nazev te
> > > prislusne actions, treba Prior. I kdy� to odmazu, zase
> >
> > Nastav TToolBar.ShowCaptions na False
> >
> > Petr Vones
> >
>
>
> --------------------
> Chcete zkusit jak to m�li t�k� Kotrba s Borovi�kou - sta�te se
> tren�rem sv�ho t�mu na www.superliga(tec)cz.
>
>
>

Tibquery a storovana procedura

[*] Robert TOTH <toth(zv)lc.vszp.sk> - 20.9.2002 10:31:07

mam stor. proc., kt ma 1 vstup (char) a 4 vystupy
ako napisat TIBQuery.sql tak, aby to fungovalo?

teraz to pustam ako: 'execute procedure blabla "blablabla"', kt sice funkciu
"open" aj korektne vykona, len vysledok je prazdny zoznam, co nie je pravda,
nakolko som to overil na ISQL

P.S.- Ide o interbase 5.5


Ing. Robert TOTH
Lucenec

Services a DCOM

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 20.9.2002 10:34:44

On 20 Sep 2002 at 8:38, Zbysek Hlinka wrote:

> On 19 Sep 2002 at 15:49, Alexandr Stefek wrote:
>
> > Krome Nastaveni security je potreba do registru nastavit jeste
> > nejake klice (napr. LocalService pod, tusim CLSID). Ja osobne
> > pridavam do .dpr napr. nasledujici kod (samozrejme lze
> > optimalizovat):
>
> Zkousel jsem ruzne moznosti, ale vzdy mi to hlasilo nejakou chybu. V
> nejlepsim pripade, ze pristup byl odepren.

Jeste bych mel rict, ze klient se snazi spustit instanci serveru,
ktera uz bezi. Dalsi instanci spustit lze, ale to neni zadouci.

S pozdravem

Zbysek Hlinka


rychlost - pomalost DBExpressu

[*] Hlas <hlas(zv)inmail.sk> - 20.9.2002 10:39:41

ja som sa tu pytal pred casom na pomalost dbx-sqlclientdataset a ktosi chcel vediet
vysledok ako to dopadlo - ak nieco zistim.

Zistil som - trochu som precital help k D6 komponente sqlclientdataset:

TSQLClientDataSet is not recommended for use in master/detail relationships. It can't optimize the queries it uses for this purpose, resulting in very slow performance.

Takze cele dbx vyzera velmi zaujimavo:
1. najprv sa clovek dozvie, ze je to vyborna vec, ze je to rychle. --------->>>> :-)
2. potom sa dozviem, ze sa jedna o jedmosmerne kurzory a neda sa s tym v podstate nic robit. --------->>>> :-(
3. potom sa dozviem, ze je tam komponenta sqlclientdataset, ktoru ked pouzijem, tak je vsetko ok --------->>>> :-)
4. a potom sa dozviem, ze ak sa jedna o vazbu master-detail, tak je nepouzitelna, lebo je neskutocne pomala --------->>>> :-)

----- Original Message -----
From: Hlas
To: delphi-l(zv)clexpert(tec)cz
Sent: Monday, September 16, 2002 9:18 PM
Subject: rychlost - pomalost DBExpressu


vytvoril som si skusobnu aplikaciu v dbexpresse. v databaze pouzivam 3 tabulky.
po testoch som bol zhrozeny casmi, ktore som nameral.
otvaranie tychto 3 tabuliek cca 5 sek - tabulky su skoro prazdne.
20 zapisov do 1 tabulky v cykle cca 35 sek.

mozem robit niekde chybu alebo je to take pomale?

Pouzivam: W2k, PIII 1GHz, D6Enterprise, IB6, komponenty SQLConnection, SQLClientDataSet.
Rovnako je to pomale na sieti, aj na jednom pocitaci. Zda sa, ze pomalost sposobuje componenta
SQLClientDataset, pretoze ten cas je strasne dlhy este pred applyupdates a commitupdates, takze vlastne
IB este ani nie je v hre, vsetko sa odohrava v pamati.

Netusite niekto, ci je to normalne. Odhadujem, ze pri takychto rychlostiach mi zapis do 5-10 tabuliek
cca 50 zaznamov moze trvat aj minutu...??? ved to je nepouzitelne...

TForm a jeho nastavenie

[*] Ben, Martin (CAP, GCF) <Martin.Ben(zv)gecapital(tec)com> - 20.9.2002 10:40:27

U formulare nastav vlastnost BorderStyle := bsSingle a umisti na nej
TScrollBox a komponenty umistuj do nej.


Martin Ben


> -----Original Message-----
> From: Robert Suska [mailto:delphi(zv)korak.sk]
>
> Ako sa da definovat alebo nastavit formular tak aby sa v nom
> zobrazovali
> scrollbari podla potreby cize ak je nejaky object vacsi ako
> plocha formu ale
> zaroven nechcem aby sa dala menit velkost toho formu.

Rychlost odesilani data pres UDP

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



> Mel bych otazecku na odborniky pres site => pouzivam TUPDBlockSocket
ze
> synapse k odesilani dat. Vim, ze po ceste k cili je promenna
prenosova
> rychlost => PC ktere odesila data ma na ethernetu nekonecne velkou
> prenosovou rychlost proti jinym castim site po ceste k cili. Jsem
schopen
> nejak zjisit, ze doslo k "zahlceni" prenosove cesty. Experimentalne
mam
> zjisteno, ze k nejakemu zahlceni dochazi (ztraceji se pakety, pokud
se data
> odesilaji prilis rychle po sobe, pokud se mezi pakety vkladaji
casove
> mezery, chodi vse OK, pricemz pokud si to same zkousim po lokalni
100 Mb
> siti, chodi to OK). Da se cas, ktery je nutno vkladat mezi pakety
nejako
> exaktne zjistit. Napr. jestli to treba, pokud se cesta nekde
"zahlti" to
> zpatky, neposila nejake ICMP hlasky, nebo neco takoveho. Nebo je
jedina
> sance to delat nejako "experimentalne". Rady typu "pouzij TCP"
bouzel
> nepripadaji v uvahu.

pokud se nepletu, zadna ICMP hlaska Ti neprijde (packet je proste
tise zahozen). Duvodem bude nejspis to, ze takove ICMP hlasky
by zbytecne zvysovaly datovy tok.

Cili jedinym resenim je zpetna vazba od protejsi strany - tj. musis
doplnit
Tvuj komunikacni protokol tak, aby Ti chodily zpet informace s
potvrzenim,
ze packet ten a ten byl skutecne prijat (lze vymyslet ruzne
optimalizace
typu potvrzovani vetsiho mnozstvi packetu najednou atd).


D. Toman

Rychlost odesilani data pres UDP

[*] Skopalik Slavomir <skopalik(zv)hlubocky.del(tec)cz> - 20.9.2002 11:00:39

Tak si naimplementuj TCP nad UDP, staci k tomu podrobny popis TCP a melo by to byt bez problemu.
Stejne si musis vyresit potvrzovani paketu, casove mezery jsou ponekud nespolehlive.
Co se tyka zahlceni, tak prave TCP ma na to algorimy. Ja bych to zjednodusene
resil jako max pocet nepotvrzenych dat na lince.

Slavek

> exaktne zjistit. Napr. jestli to treba, pokud se cesta nekde "zahlti" to
> zpatky, neposila nejake ICMP hlasky, nebo neco takoveho. Nebo je jedina
> sance to delat nejako "experimentalne". Rady typu "pouzij TCP" bouzel
> nepripadaji v uvahu.

Rychlost odesilani data pres UDP

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 20.9.2002 11:55:41

> -----Puvodni zprava-----
Mel bych otazecku na odborniky pres site => pouzivam TUPDBlockSocket
> ze
> > synapse k odesilani dat. Vim, ze po ceste k cili je promenna
> prenosova
> > rychlost => PC ktere odesila data ma na ethernetu nekonecne velkou
> > prenosovou rychlost proti jinym castim site po ceste k cili. Jsem
> schopen
> > nejak zjisit, ze doslo k "zahlceni" prenosove cesty. Experimentalne
> mam
> > zjisteno, ze k nejakemu zahlceni dochazi (ztraceji se pakety, pokud
> se data
> > odesilaji prilis rychle po sobe, pokud se mezi pakety vkladaji
> casove
> > mezery, chodi vse OK, pricemz pokud si to same zkousim po lokalni
> 100 Mb
> > siti, chodi to OK). Da se cas, ktery je nutno vkladat mezi pakety
> nejako
> > exaktne zjistit. Napr. jestli to treba, pokud se cesta nekde
> "zahlti" to
> > zpatky, neposila nejake ICMP hlasky, nebo neco takoveho. Nebo je
> jedina
> > sance to delat nejako "experimentalne". Rady typu "pouzij TCP"
> bouzel
> > nepripadaji v uvahu.
--------------------------------------------------------------------------
> pokud se nepletu, zadna ICMP hlaska Ti neprijde (packet je proste
> tise zahozen). Duvodem bude nejspis to, ze takove ICMP hlasky
> by zbytecne zvysovaly datovy tok.
>
> Cili jedinym resenim je zpetna vazba od protejsi strany - tj. musis
> doplnit
> Tvuj komunikacni protokol tak, aby Ti chodily zpet informace s
> potvrzenim,
> ze packet ten a ten byl skutecne prijat (lze vymyslet ruzne
> optimalizace
> typu potvrzovani vetsiho mnozstvi packetu najednou atd).
--------------------------------------------------------------------------
No mam nad UPD udelanou nejakou takovou nadstavbu. Bohuzel jsem se blahove
domnival, ze pakety budu "delit" do jakychsi segmentu a potvrzovat si budu
az ty segmenty (segment obsahuje vice paketu), pricemz si osetrim i pripadny
vypadek paketu uvnitr segmentu (NACK s vyzadanim nedorucenych paketu). Pokud
tam ale pakety v ramci segmentu "naperu" okamzite po sobe, je to krize.
Neexistuje neco jaka obdoba zjistovani max. MTU po trase, cim by se dala
zjistit prenosova rychlost ??? Pokud potvrzuju kazdy paket je to ukrutne
pomale.

O :-))

Services a DCOM

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 20.9.2002 12:15:33



> -----P�vodn� zpr�va-----
> > Krome Nastaveni security je potreba do registru nastavit jeste
> > > nejake klice (napr. LocalService pod, tusim CLSID). Ja osobne
> > > pridavam do .dpr napr. nasledujici kod (samozrejme lze
> > > optimalizovat):
> >
> > Zkousel jsem ruzne moznosti, ale vzdy mi to hlasilo nejakou chybu. V
> > nejlepsim pripade, ze pristup byl odepren.
>
> Jeste bych mel rict, ze klient se snazi spustit instanci serveru,
> ktera uz bezi. Dalsi instanci spustit lze, ale to neni zadouci.
---------------------------------------------------------
Tohle resim prepsanim TAutoObjectFactory.CreateInstance v jejim potomkovi,
ktera mi vraci jednu a tu samou instanci a nevytavri dalsi. Mam dojem, ze
jeste bylo potreba class factory registrovat pomoci RegisterClassObject,
jinac se vytvari i dalsi instance class factory. Ale to si nejsem jist
jestli neni potreba pouze pri pouziti v jinem nez primarnim vlaknu.
Nepouzivam to tedy v service, ale postup je to obecne platny.

O :-))

Rychlost odesilani data pres UDP

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 20.9.2002 12:54:35

> No mam nad UPD udelanou nejakou takovou nadstavbu. Bohuzel jsem se
blahove
> domnival, ze pakety budu "delit" do jakychsi segmentu a potvrzovat
si budu
> az ty segmenty (segment obsahuje vice paketu), pricemz si osetrim i
pripadny
> vypadek paketu uvnitr segmentu (NACK s vyzadanim nedorucenych
paketu). Pokud
> tam ale pakety v ramci segmentu "naperu" okamzite po sobe, je to
krize.
> Neexistuje neco jaka obdoba zjistovani max. MTU po trase, cim by se
dala
> zjistit prenosova rychlost ??? Pokud potvrzuju kazdy paket je to
ukrutne
> pomale.
>

takovou adaptaci si musis udelat sam...


D. Toman

Jehlickovy tisk v Sinee na W2000/XP

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 20.9.2002 13:05:54

> From: pilifs
>
> muzete mi prosim nekdo poradit jak vyhotovit nebo kde sehnat soubor
> ridicich znaku (asi neco jako TTI.DAT pro W98) pro draft tisk pod
> Sineu na W2000/XP.

Soubor TTY.DAT je soucasti ovladace obecne tiskarny
v systemech Win 95/98/ME.
V systemech Win 200/XP se tento soubor nepouziva.

Nejjednodussi cesta je otevrit okno vlastnosti tiskarny
a na zalozce Vyber pisma vyplnit ridici sekvence.
Daji se obvykle sehnat v uzivatelske prirucce tiskarny.

Pro tiskarny standardu Epson by to vypadalo asi takto:
10 zn/palec: <121B>P
12 zn/palec: <121B>M
17 zn/palec: <0F1B>P
zap tucne: <1B>E
vyp tucne: <1B>F

Vaclav Krmela

ClientDataSource

[*] LUKES V�clav <lukes(zv)ans(tec)cz> - 20.9.2002 13:34:59



-----Original Message-----
From: ing. Jan Fiala [mailto:jan.fiala(zv)iol(tec)cz]
Sent: Thursday, September 19, 2002 8:08 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: ClientDataSource


19.9.2002 Jan Sebel�k:
>> Odes�latel: Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz>
>> > ClientDataSource.Delete;
>> > ClientDataSource.Post;

>> Zkus pouzit ClientDataSet.Edit;
> Ne.
> Delete je bez Post. Po Delete zustane ClientDataSet.Status=dsBrowse.

Problem bude spis v neaktualizovatelnem SQL dotazu.
Co kdybys misto takovych krkolomnych konstrukci pouzil k vymazu primo
SQL dotaz: Delete From ....

--
ing. Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

ClientDataSource

[*] LUKES V�clav <lukes(zv)ans(tec)cz> - 20.9.2002 13:43:27

Diky za rady, ale nedari se...

Pokusl jsem se tedy pouzit SQLQuety. Spojil jsem komponenty

SQLConnection
SQLQuery
DataSource

Potom jsem chtel data zobrazit v mrizce, v DBGridu, ale jakmile b DBGridu u DataSource chci dat DataSource z SQLQuery, dostanu tuhle chybu:

Operation not allowed on a unidirectional dataset.

Prosim vo co go ???

U BDE mi to krasne funguje, jak a co ale spojit u dbExpressu ???

V.
-----Original Message-----
From: ing. Jan Fiala [mailto:jan.fiala(zv)iol(tec)cz]
Sent: Thursday, September 19, 2002 8:08 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: ClientDataSource


19.9.2002 Jan Sebel�k:
>> Odes�latel: Ji�� Semler <jsemler(zv)stbk.mcs(tec)cz>
>> > ClientDataSource.Delete;
>> > ClientDataSource.Post;

>> Zkus pouzit ClientDataSet.Edit;
> Ne.
> Delete je bez Post. Po Delete zustane ClientDataSet.Status=dsBrowse.

Problem bude spis v neaktualizovatelnem SQL dotazu.
Co kdybys misto takovych krkolomnych konstrukci pouzil k vymazu primo
SQL dotaz: Delete From ....

--
ing. Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

Kod na precislovani cisel telefonu

[*] Jan Najvarek <conference.reader(zv)artin(tec)cz> - 20.9.2002 14:12:08

Zdravim,

nema nekdo kod v Delphi pro precislovani telefonnich cislel? Nechce se mi
vymyslet jiz vymyslene.

Diky

Jan Najvarek
ARTIN

Kod na precislovani cisel telefonu

[*] Otisk Rene <otisk(zv)misel(tec)cz> - 20.9.2002 14:33:13

www.telecom(tec)cz

odkaz na aplikaci Precislovani 1.1

Sroub
> Zdravim,
>
> nema nekdo kod v Delphi pro precislovani telefonnich cislel? Nechce se mi
> vymyslet jiz vymyslene.
>
> Diky
>
> Jan Najvarek
> ARTIN
>

DBNavigator nasvislo

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 20.9.2002 14:41:42


----- Original Message -----
From: <context.katalog(zv)centrum(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>

> Uz jsem to vyresil, a to tak, ze jsem ve vlastnosti Caption
> nechal znak &.
> Mozna to bylo tim, ze jsem na Toolbar namisto ToolButtonu
> pouzil SpeedButtony, ale potreboval jsem na tlacitko dostat
> obrazek, coz do obycejneho ToolButtonu nejde.

Ahoj.
Proc by to neslo.
N form si dej ImageList, Nastav ho ve vlastnostech toolbaru a action a muzes
si tam dat obrazky jaky chces. (Pokud nadefinujes action znovu, tak se ti
tam dokonce nejake defaultni sipicky dosadej samy)

Ludek

Su vysledky tychto SQL prikazov rovnake ?

[*] Roland Turcan <rolo(zv)sedas.sk> - 20.9.2002 14:42:51

Hello Delphi CZ konferencia!

1.

SELECT * FROM POKLADNA
WHERE JEDIN IN (SELECT RECORD_ID FROM SYS$REP
WHERE TABULKA='POKLADNA' AND
ZMENA<>'D' AND
JEDIN>40000
);


2.

select *
from pokladna a
join sys$rep b on b.record_id=a.jedin
and b.tabulka='POKLADNA' and b.ZMENA<>'D'
and b.JEDIN>40000;


Co vy na to ?

--
Best regards, TRoland

ODBCe - opravy

[*] Lubomir Fule <fule(zv)humansoft.sk> - 20.9.2002 15:05:46

Zdravim,
v ODBCe som objavil dost neprijemny bug, ktory za urcitych okolnosti
sposoboval nahodny "Access Violation". Opravenu verziu si mozete stiahnut z
http://www.sct.sk/soft/ODBCe.exe alebo
ftp://ftp.humansoft.sk/public/ODBCe.zip.

L.

Kod na precislovani cisel telefonu

[*] CERMAK <CERMAK(zv)procom(tec)cz> - 20.9.2002 15:12:11



Kod nemam, ale mam free programek na precislovani cisel v adresari Outlooku.
Je dostupny na www.mokry(tec)cz


Jaromir Cermak



-----Original Message-----
From: Jan Najvarek [mailto:conference.reader(zv)artin(tec)cz]
Sent: Friday, September 20, 2002 2:12 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Kod na precislovani cisel telefonu


Zdravim,

nema nekdo kod v Delphi pro precislovani telefonnich cislel? Nechce se mi
vymyslet jiz vymyslene.

Diky

Jan Najvarek
ARTIN


---
P��choz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.391 / Virov� b�ze: 222 - datum vyd�n�: 19.9.2002

rychlost - pomalost DBExpressu

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 20.9.2002 15:31:33

Odes�latel: Hlas <hlas(zv)inmail.sk>

Takze cele dbx vyzera velmi zaujimavo:
1. najprv sa clovek dozvie, ze je to vyborna vec, ze je to rychle. --------->>>> :-)
2. potom sa dozviem, ze sa jedna o jedmosmerne kurzory a neda sa s tym v podstate nic robit. --------->>>> :-(
3. potom sa dozviem, ze je tam komponenta sqlclientdataset, ktoru ked pouzijem, tak je vsetko ok --------->>>> :-)
4. a potom sa dozviem, ze ak sa jedna o vazbu master-detail, tak je nepouzitelna, lebo je neskutocne pomala --------->>>> :-)

[Honza]
Jeste se s dovolenim vratim ke svemu navrhu misto TSQLClientDataSet pouzit TClientDataSet + TDataSetProvider + TSQLDataSet (nebo jiny dataset).
(TSQLClientDataSet interne obsahuje prave tyto tri komponenty).

Pak jsou dve moznosti, jak realizovat master-detail vazbu.
Nevim, kterou z techto moznosti TSQLClientDataSet interne implemetuje.

Stalo by za to otestovat, zda jsou obe moznosti spatne (myslim, ze ne).
Pokud ano, snadno zamenim SQLDataSet za neco jineho s tim, ze veskere dalsi vazby (TClientDataSet, TDataSetProvider) vcetne veskereho klientskeho programovani nad TClientDataSet mi zustane beze zmeny.

1.
Pokud svazu master-detail ty SQLDataSety, pak do jedineho TClientDataSet (privazaneho pres ProviderName na master) dostavam detail tabulku jako TDatasetField.
Na tuto detail tabulku pak navazu dalsi TClientDataSet pres property DataSetField.
Tento "detail" ClientDataSet pak nema ProviderName, nekomunikuje tedy s databazi. Veskere updaty (i te detail tabulky) se provadeji master ClientDataSet.

2.
"Master" i "detail" ClientDataSet ma svuj provider. Jsou svazany pres MasterSource a MasterField.
Pak si kazdy ClientDataSet nacita cela data sam a k vazbe dochazi az na urovni techto ClientDataSetu.
Je to cele v pameti, takze by to melo byt docela rychle.

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

ClientDataSource

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 20.9.2002 15:42:36

> Odes�latel: LUKES V�clav <lukes(zv)ans(tec)cz>
> Potom jsem chtel data zobrazit v mrizce, v DBGridu, ale jakmile b DBGridu u DataSource chci dat DataSource z SQLQuery, dostanu tuhle chybu:

> Operation not allowed on a unidirectional dataset.

Veskere komponenty dbExpress jsou pouze unidirectional, takze prakticky nejsou pouzitelne.
Ani v dridu, ani pro update, ani pro vyhledavani, ani pro filter.
Pouze "while not eof do dejmidata".
Jsou proto pouzitelne pouze ve spojeni s TDataSetProvider a TClientDataSet.

Pak je v dbExpress jeste komponenta TSQLClientDataSet, ktera toto propojeni interne realizuje.
Osobne bych ji moc nedoporucoval a radsi bych si to propojeni udelal sam.

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

rychlost - pomalost DBExpressu

[*] Ondrej Kelle <O.Kelle(zv)digitalpublishing.de> - 20.9.2002 15:44:06

Na http://community.borland.com/article/0,1410,29106,00.html je novy clanok
o dbExpress s vysvetlenim, ako je to myslene, nazyvaju to "provide/resolve"
data access strategy.

Zatial som dbExpress nepouzil, ale bude myslim stat za to pozorne si to
precitat a odskusat...

HTH
TOndrej

Kod na precislovani cisel telefonu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 20.9.2002 15:50:24

From: "Jan Najvarek" <conference.reader(zv)artin(tec)cz>

> nema nekdo kod v Delphi pro precislovani telefonnich cislel? Nechce se mi
> vymyslet jiz vymyslene.

Mam, ale pouziva nektere nase knihovny, takze primo ho pouzit nemuzes -
musel bys to lehce prizpusobit. Aplikuje to precislovaci pravidla z
textoveho souboru na cisla v narodnim formatu. Pravidla maji tvar napr.

01646xxxxx=3536xxxxx

a vznikla reformatovani souboru, stazeneho z www.telecom(tec)cz


Bye, pf

rychlost - pomalost DBExpressu

[*] Skopalik Slavomir <skopalik(zv)hlubocky.del(tec)cz> - 20.9.2002 16:00:08

>
> 2.
> "Master" i "detail" ClientDataSet ma svuj provider. Jsou svazany pres MasterSource a MasterField.
> Pak si kazdy ClientDataSet nacita cela data sam a k vazbe dochazi az na urovni techto ClientDataSetu.
> Je to cele v pameti, takze by to melo byt docela rychle.

Myslim, ze tohle je prave ten problem. Normalni vazba Master-Detail je pres index, tim DB stroj eliminuje
znacnou cast operaci (tedy pokud se bavime o veljkych datech a inteligentnim navrhu DB).
Podle meho je NUTNE pouzit pro detail parametrizovany dotaz (kvuli prepare) a nasledne na afterscroll
vdy polozit serveru znovu dotaz, ale s novym parametrem.
Proste stejne jako to byvalo u DBE, nebo IBX.

Slavek

Su vysledky tychto SQL prikazov rovnake ?

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

>
> SELECT * FROM POKLADNA
> WHERE JEDIN IN (SELECT RECORD_ID FROM SYS$REP
> WHERE TABULKA='POKLADNA' AND
> ZMENA<>'D' AND
> JEDIN>40000
> );
>
>
> 2.
>
> select *
> from pokladna a
> join sys$rep b on b.record_id=a.jedin
> and b.tabulka='POKLADNA' and b.ZMENA<>'D'
> and b.JEDIN>40000;
>
>
> Co vy na to ?

Ahoj,

Zalezi na tom. Pokud muze nastat situace, ze subselect vrati vice zaznamu se
stejnym RECORD_ID, vrati join vice radku nez priklad se subselectem.

Aspon se mi to tak zda na prvni letmy pohled.

David Lebeda

Su vysledky tychto SQL prikazov rovnake ?

[*] Ondrej Kelle <O.Kelle(zv)digitalpublishing.de> - 20.9.2002 16:24:10

> 1.
>
> SELECT * FROM POKLADNA
> WHERE JEDIN IN (SELECT RECORD_ID FROM SYS$REP
> WHERE TABULKA='POKLADNA' AND
> ZMENA<>'D' AND
> JEDIN>40000
> );
>
>
> 2.
>
> select *
> from pokladna a
> join sys$rep b on b.record_id=a.jedin
> and b.tabulka='POKLADNA' and b.ZMENA<>'D'
> and b.JEDIN>40000;

Urcite to nebudu rovnake vysledky, pretoze 1. * vracia vsetky stlpce z
tabulky POKLADNA, a 2. * vracia vsetky stlpce z celeho joinu.

Okrem toho, (ak som to pochopil spravne) 1. vrati result set, v ktorom bude
pre kazdu hodnotu POKLADNA.JEDIN (ak splna dane kriteria) prave jeden
riadok.
2. (left inner join) vrati result set, kde pre kazdu hodnotu POKLADNA.JEDIN
moze byt jeden alebo viac riadkov splnajucich dane kriteria.

HTH
TOndrej

TForm a jeho nastavenie

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 20.9.2002 16:31:03

From: "Robert Suska" <delphi(zv)korak.sk>
> Ako sa da definovat alebo nastavit formular tak aby sa v nom zobrazovali
> scrollbari podla potreby cize ak je nejaky object vacsi ako plocha formu ale
> zaroven nechcem aby sa dala menit velkost toho formu.

Staci nastavit TForm.AutoScroll na True

Petr Vones

rychlost - pomalost DBExpressu

[*] Jan Grman <J.Grman(zv)kmer.elf.stuba.sk> - 20.9.2002 17:06:09

Zdravim priatelia.
1. TSQLClientDataSet je prostriedkom pre tvorbu 2 vrstvovych aplikacii. Je to MEMORY tabulka. Je urcena pre male objemy dat a umoznuje obojsmerny pohyb. Osobne mi je nejasne - kto to moze pouzivat ! Vo viacvstvovych aplikacia sa pouziva standardna cesta TSQLQuery -> TProvider -> TClientDataSet
2. Jednosmerne kurzory - konecne sa nejaky driver nemontuje do toho akym sposobom si vytiahnem data a ako si urobim cache - ak tvrdis ze sa s tym v podstate neda nic robit - precitaj si nieco o tom a o DB obecne
3. vazby M / D sa daju realizovat na roznej urovni komponetov delphi a je vela moznosti - skus sa s tym pohrat - precitat si nieco viac

Napr. - M / D mozes realizovat nad TSQLQuery komponentami a len vysledky si prenasat do TClientDataSet (cez Provider).
jg
Takze cele dbx vyzera velmi zaujimavo:
1. najprv sa clovek dozvie, ze je to vyborna vec, ze je to rychle. --------->>>> :-)
2. potom sa dozviem, ze sa jedna o jedmosmerne kurzory a neda sa s tym v podstate nic robit. --------->>>> :-(
3. potom sa dozviem, ze je tam komponenta sqlclientdataset, ktoru ked pouzijem, tak je vsetko ok --------->>>> :-)
4. a potom sa dozviem, ze ak sa jedna o vazbu master-detail, tak je nepouzitelna, lebo je neskutocne pomala --------->>>> :-)

Saznam LPT

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 20.9.2002 17:16:01

From: "Tom� Janta�" <tomasnusle(zv)volny(tec)cz>
> nevite nekdo jak se da zjistit seznam vsech dostupnych LPT a jejich adresy?

I kdyz to zjistis tak je ti to vicemene k nicemu.

Petr Vones

Saznam LPT

[*] Tom� Janta��������{����Y��̿ - 20.9.2002 17:19:18

Ahoj,

nevite nekdo jak se da zjistit seznam vsech dostupnych LPT a jejich adresy?

Tomas


SQL dotaz bez SUBSELECT

[*] Ludek Finstrle <xfinstrl(zv)informatics.muni(tec)cz> - 20.9.2002 17:58:46

> mam tabulku SKOLENI (id, nazev), LIDI (id, jmeno, prijmeni) a
> REGISTRACE(skoleni_id, lidi_id).
>
> a) Potrebuju vypsat seznam skoleni, na kterych je dany clovek
> zaregistrovany - to neni problem:
>
> <SQL>
> SELECT id, nazev, lidi_id
> FROM skoleni, registrace
> WHERE skoleni.id=registrace.skoleni_id
> AND registrace.lidi_id='JaPe'
> </SQL>
>
> b) Potrebuju vypsat seznam skoleni, na kterych NENI dany clovek
> zaregistrovany:
>
> <SQL>
> SELECT * FROM skoleni
> WHERE skoleni.id NOT IN
> (SELECT skoleni_id FROM registrace WHERE registrace.lidi_id='JaPe')
> </SQL>
>
>
> Problem je, ze nemohu pouzit SUBSELECT (NOT IN, EXIST), protoze MySQL to
> neumi.
> Da se to nejak obejit ? Dik za radu.

Pouzijte OUTER JOIN a testujte spravny sloupec na NULL.

SELECT * FROM skoleni LEFT OUTER JOIN registrace
ON (skoleni.id = registrace.skoleni_id)
WHERE registrace.skoleni_id = NULL;

Nerucim za 100% syntaktickou spravnost. Ale logicky by to melo byt ok.

S pozdravem

Luf

SQL dotaz - datumy

[*] bleak <bleak(zv)mvesely(tec)com> - 20.9.2002 18:43:57

ano, uz jsem to vyresil pomoci EXTRACT a NOT EXISTS(SELECT.....

----- Original Message -----
From: "Kalhous Zdenek" <zdenek.kalhous(zv)comarr(tec)cz>
> jestli je to FB, tak tam existuji fraze extract month/year from (nevim
> zpameti presne jako se to zapisuje) a to by melo pro tento dotaz
> stacit.

rychlost - pomalost DBExpressu

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 20.9.2002 18:53:10

MjAuOS4yMDAyIEphbiBTZWJlbO1rOg0KPiBPZGVz7WxhdGVsOiBIbGFzIDxobGFzQGlubWFpbC5z
az4NCj4gVGFremUgY2VsZSBkYnggdnl6ZXJhIHZlbG1pIHphdWppbWF2bzoNCj4gMS4gbmFqcHJ2
IHNhIGNsb3ZlayBkb3p2aWUsIHplIGplIHRvIHZ5Ym9ybmEgdmVjLCB6ZSBqZSB0byByeWNobGUu
IC0tLS0tLS0tLT4+Pj4gIDotKQ0KDQpWemhsZWRlbSBrIGZ1bmtjbm9zdGkgYSBqZWRub2R1Y2hv
c3RpIGJ5IHRvIG1lbG8gYnl0IHJ5Y2hsZQ0KDQo+IDIuIHBvdG9tIHNhIGRvenZpZW0sIHplIHNh
IGplZG5hIG8gamVkbW9zbWVybmUga3Vyem9yeSBhIG5lZGEgc2EgcyB0eW0gdiBwb2RzdGF0ZSBu
aWMgcm9iaXQuIC0tLS0tLS0tLT4+Pj4gOi0oDQoNCkEgY28gdmljIHBvdHJlYnVqZXMsIG5leiB1
ZGVsYXQgZG90YXogbmVibyBzcHVzdGl0IHVsb3plbm91IHByb2NlZHVydSwNCnBvcHIuIHByb3Zl
c3QgbmVqYWt5IHRlbiBpbnNlcnQgbmVibyB1cGRhdGUgPw0KRWRpdGFjZSBkYXQgdiBHcmlkdSBh
IGNhY2hlZCB1cGRhdGUgYnkgc2VzIG1lbCBzIFNRTCB2eWhub3V0Lg0KDQo+IDMuIHBvdG9tIHNh
IGRvenZpZW0sIHplIGplIHRhbSBrb21wb25lbnRhIHNxbGNsaWVudGRhdGFzZXQsIGt0b3J1IGtl
ZCBwb3V6aWplbSwgdGFrIGplIHZzZXRrbyBvayAtLS0tLS0tLS0+Pj4+IDotKQ0KDQpUbyBqZSBw
cmF2ZSBwcm8gdHkgZ3JpZG9lZGl0b3ZhY2UNCg0KLS0gDQppbmcuIEphbiBGaWFsYQ0KbWFpbHRv
Omphbi5maWFsYUBpb2wuY3o=

Tibquery a storovana procedura

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 21.9.2002 09:15:05

> Odes�latel: Robert TOTH <toth(zv)lc.vszp.sk>
> mam stor. proc., kt ma 1 vstup (char) a 4 vystupy
> ako napisat TIBQuery.sql tak, aby to fungovalo?

Pokud procedura vraci pouze 4 vystupni parametry, pouzij TIBStoredProc a Execute.

Pokud procedura vraci serii vystupnich parametru (pouziva SUSPEND), pouzij
TIBQuery.SQL=select * from procname(vstup).

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

Prace s databazi - zacatky

[*] Jan �imeck� - 21.9.2002 09:40:17

Zdarvim vsechny ucastniky konference,

Potreboval bych vytvorit tabulku, ktera bude ukladat data databazove, dale
pomoci edit vkladat data.

Byl bych rad, kdybyste mi nekdo poslal ukazkovy progrma(ktyry bude data
ukladat treba do souboru data.dat) na adresu simecky(zv)centrum(tec)cz.

Mam doma D4 profesinal a D6 personal.

Predem velmi dekuji.

S pozdravem

(zv)(zv)(zv)(zv)(zv)(zv)(zv)
\ ~ ~ /
(\ (zv) (zv) /)
-------oOOO--(_)--OOOo-------

Jan �imeck�
simecky(zv)centrum(tec)cz
http://www.simecky.tk
http://www.reklalink.tk

ooO
----------( )--Ooo---------
\ ( ( )
\_) ) /
(_)

---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.380 / Virov� b�ze: 213 - datum vyd�n�: 24.7.2002

---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.380 / Virov� b�ze: 213 - datum vyd�n�: 24.7.2002

rychlost - pomalost DBExpressu

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 21.9.2002 09:50:59

> Odes�latel: Skopalik Slavomir <skopalik(zv)hlubocky.del(tec)cz>
[Honza]
> > 1.
> > Pokud svazu master-detail ty SQLDataSety, pak do jedineho TClientDataSet (privazaneho pres ProviderName na master) dostavam detail tabulku jako TDatasetField.
> > 2.
> > "Master" i "detail" ClientDataSet ma svuj provider. Jsou svazany pres MasterSource a MasterField.
> > Pak si kazdy ClientDataSet nacita cela data sam a k vazbe dochazi az na urovni techto ClientDataSetu.
> > Je to cele v pameti, takze by to melo byt docela rychle.

[Slavek]
> 2.
> Myslim, ze tohle je prave ten problem. Normalni vazba Master-Detail je pres index, tim DB stroj eliminuje
> znacnou cast operaci (tedy pokud se bavime o veljkych datech a inteligentnim navrhu DB).
> Podle meho je NUTNE pouzit pro detail parametrizovany dotaz (kvuli prepare) a nasledne na afterscroll
> vdy polozit serveru znovu dotaz, ale s novym parametrem.

Problem je, ze master ClientDataSet nacita veskera data.
Je treba je vyrazne omezit ve "where".

Domnivam se, ze prave zpusob 1. funguje tak, jak to ty pozadujes:
Detail SQLDataSet ma select ve tvaru "select * from tab2 where id=:id". Na ID je foreign key, takze index. Pri nacitani master tabulky je (nejspis) na kazdem jejim radku posilan ten parametrizovany select na detail tabulku do databaze.

Naopak zpusob 2. nacte rychle data do master i detail (dva selecty do databaze).
DetailClientDataSet si v pripade potreby data v pameti pretridi a pri scroll na masteru uz saha do dat pripravenych v pameti.

Nevim, co je lepsi, nevim, ktery zpusob je v dokumentaci myslen, kdyz se rika, ze "SQLClientDataSet neni optimalizovan pro vazby master-detail".

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

Re[2]: Su vysledky tychto SQL prikazov rovnake ?

[*] Roland Turcan <rolo(zv)sedas.sk> - 21.9.2002 10:09:47

<<< 21. 9. 2002 10:07 - Ondrej Kelle "O.Kelle(zv)digitalpublishing.de" >>>
>> 1.
>>
>> SELECT * FROM POKLADNA
>> WHERE JEDIN IN (SELECT RECORD_ID FROM SYS$REP
>> WHERE TABULKA='POKLADNA' AND
>> ZMENA<>'D' AND
>> JEDIN>40000
>> );
>>
>>
>> 2.
>>
>> select *
>> from pokladna a
>> join sys$rep b on b.record_id=a.jedin
>> and b.tabulka='POKLADNA' and b.ZMENA<>'D'
>> and b.JEDIN>40000;

OK> Urcite to nebudu rovnake vysledky, pretoze 1. * vracia vsetky stlpce z
OK> tabulky POKLADNA, a 2. * vracia vsetky stlpce z celeho joinu.

OK> Okrem toho, (ak som to pochopil spravne) 1. vrati result set, v ktorom bude
OK> pre kazdu hodnotu POKLADNA.JEDIN (ak splna dane kriteria) prave jeden
OK> riadok.
OK> 2. (left inner join) vrati result set, kde pre kazdu hodnotu POKLADNA.JEDIN
OK> moze byt jeden alebo viac riadkov splnajucich dane kriteria.

Ano, ano celu noc som programoval vo sne a prisnilo sa mi :-))))

ze toto je moje riesenie:

SELECT DISTINCT A.*
FROM KURZ_LIST A
JOIN SYS$REP B ON A.JEDIN=B.RECORD_ID AND B.TABULKA='KURZ_LIST' AND B.ZMENA<>'D' AND B.JEDIN>5000

oproti tomu prvemu to kleslo z 8.5s na 200ms. To je uz papanek
rozdiel. Mal som stale ten pocit, ze to druhe riesenie nie je to prave
orechove a fakt moja intuicia sa zase potvrdila. Aj napriek tomu
dakujem.

--
Best regards, TRoland

OT: Re: rychlost - pomalost DBExpressu

[*] Erik Salaj <winsoft(zv)stonline.sk> - 21.9.2002 11:23:37

>TSQLClientDataSet is not recommended for use in master/detail
relationships. It can't optimize the queries it uses for this purpose,
resulting in very slow performance.
>
>Takze cele dbx vyzera velmi zaujimavo:
>1. najprv sa clovek dozvie, ze je to vyborna vec, ze je to
rychle. --------->>>> :-)
>2. potom sa dozviem, ze sa jedna o jedmosmerne kurzory a neda sa s tym v
podstate nic robit. --------->>>> :-(
>3. potom sa dozviem, ze je tam komponenta sqlclientdataset, ktoru ked
pouzijem, tak je vsetko ok --------->>>> :-)
>4. a potom sa dozviem, ze ak sa jedna o vazbu master-detail, tak je
nepouzitelna, lebo je neskutocne pomala --------->>>> :-)

snad na porovnanie .NET poskytuje dva rozlicne pristupy k udajom:

1. DataReader pracuje v connected mode (t.j. vyzaduje sa pripojenie
k databaze) a poskytuje rychly read-only forward-only pristup k udajom.
Je to aj pametovo usporny sposob pristupu, pretoze v pameti sa uchovava
iba jeden zaznam. K dispozicii je niekolko DataReaderov pre rozlicne
databazy, uzivatel si moze napisat (napr. v C#) aj vlastny DataReader.
Priklad pouzitia (komponenty ako SqlConnection je mozne poukladat
na formular a potom odpadaju riadky na ich vytvorenie):

SqlConnection connection = new SqlConnection("Data Source=localhost...

SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection);

connection.Open();

SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
MessageBox.Show(reader.GetString(1));

connection.Close();

2. DataSet pre disconnected mode (t.j. nepotrebuje pripojenie
k databaze) je cosi ako virtualna relacna databaza. Poskytuje
hierarchicky objektovy model tabuliek, riadkov, stlpcov, relacii
a obmedzeni (constraints). Plus je k dispozicii dalsi komponent
DataAdapter, ktory riesi prenos udajov (synchronizaciu) medzi
datasetom a databazou. Priklad netypovaneho datasetu:

SqlConnection connection = new SqlConnection("Data Source=localhost...

SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT * FROM MyTable",
connection);

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "MyTable");

foreach (DataRow row in dataSet.Tables["MyTable"].Rows)
MessageBox.Show(row["Meno"].ToString());

Erik

D7 a INADDR_ANY

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 21.9.2002 20:09:40

DD,

pouzivam D5 a narazil jsem pri testovani D7 na tento problem:

kod:
--
VAR
IP : DWORD;

begin
if IP = INADDR_NONE then
--

v D7 kompilator tvrdi, ze podminka je vzdycky neplatna. Pri pohledu do ASM
je jasne, ze se provede konverze IP na 64 bitu a pak se vysledek porovnava
s -1 coz je samozrejme vzdy false.
D5 zadnou konverzi neprovadi a podminka chodi jak ma.

D7 (mozna uz D6) zmenilo definici INADDR_ANY (hint nabizi typ : -128..127 -
zdrojaky winsock.pas v Trial verzi nejsou :-( ) nebo se zmenilo prirazeni
defaultnich typu ciselnym netypovym konstantam podle hodnoty konstanty ??
Podle napovedy (nejsem si jist, zda se mi v D7 nezobrazuje helpfile z D5) by
CONST INADDR_ANY = $FFFFFFFF mel mit za vysledek typ Cardinal (cili DWORD).
Cili asi Winsock.pas z D7 definuje const INADDR_ANY=-1; (coz by melo
padnout na ten shortint) ?

po zmene INVALID_HANDLE_VALUE (aby se to nepletlo tak z -1 na DWORD(-1)) je
to dalsi podobny kotrmelec mezi verzemi Delphi.

D. Toman

Kod na precislovani cisel telefonu

[*] Ben, Martin (CAP, GCF) <Martin.Ben(zv)gecapital(tec)com> - 21.9.2002 20:09:12

http://www.telecom(tec)cz/infocentrum/o_cem_se_mluvi/precislovani_telefonnich_st
anic/precislovani_10.php

Martin Ben


> -----Original Message-----
> From: Jan Najvarek [mailto:conference.reader(zv)artin(tec)cz]
>
> nema nekdo kod v Delphi pro precislovani telefonnich cislel?
> Nechce se mi
> vymyslet jiz vymyslene.

Jak na DbiRegisterCallBack

[*] Jirka Virt <virt(zv)volny(tec)cz> - 22.9.2002 11:31:51

Ahoj,
chtel jsem pouzit funkci BDE DbiRegisterCallBack na to , abych odchytaval jakoukoliv zmenu dat od uzivatele.Alespon jsem to tak pochopil, ze toto lze udelat na celou session v programu20

Ale nejak se mi nedari. Pochopil jsem to spravne nebo delam neco spatne??


Diky za rady

Jirka Virt
email: virt(zv)volny(tec)cz


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.386 / Virov� b�ze: 218 - datum vyd�n�: 9.9.2002

Handle dosovskeho okna

[*] Martin Kasman <martinkasman(zv)centrum.sk> - 22.9.2002 12:24:11

D6

1.)
Spusti cez ShellExecute dosovsky program. Ako mam teraz najst jeho handle
cez FindWindow? Alebo mam pouzit nieco ine? Len chcem zistit ci ten program
je spusteny ale nechcem pouzivat nieco ako WinExecAndWait32 - teda spusti
program a cakaj..

2.)
Nemusi to tak fungovat, ale dalo by sa to aj keby som program spustil bez
okna (SW_HIDE)?

Vdaka za kazdu radu

Prace s databazi - zacatky

[*] MUDr. Patrik VALENTA <valentapat(zv)volny(tec)cz> - 22.9.2002 12:26:38

pouzij experta primo v delphi, vygeneruje ti kompletni kod

----- Original Message -----
From: "Jan �imeck�" <jsimecky(zv)zskuldova(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Saturday, September 21, 2002 9:40 AM
Subject: Prace s databazi - zacatky


> Zdarvim vsechny ucastniky konference,
>
> Potreboval bych vytvorit tabulku, ktera bude ukladat data databazove, dale
> pomoci edit vkladat data.
>
> Byl bych rad, kdybyste mi nekdo poslal ukazkovy progrma(ktyry bude data
> ukladat treba do souboru data.dat) na adresu simecky(zv)centrum(tec)cz.
>
> Mam doma D4 profesinal a D6 personal.
>
> Predem velmi dekuji.
>
> S pozdravem
>
> (zv)(zv)(zv)(zv)(zv)(zv)(zv)
> \ ~ ~ /
> (\ (zv) (zv) /)
> -------oOOO--(_)--OOOo-------
>
> Jan �imeck�
> simecky(zv)centrum(tec)cz
> http://www.simecky.tk
> http://www.reklalink.tk
>
> ooO
> ----------( )--Ooo---------
> \ ( ( )
> \_) ) /
> (_)
>
> ---
> Odchoz� zpr�va neobsahuje viry.
> Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
> Verze: 6.0.380 / Virov� b�ze: 213 - datum vyd�n�: 24.7.2002
>
> ---
> Odchoz� zpr�va neobsahuje viry.
> Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
> Verze: 6.0.380 / Virov� b�ze: 213 - datum vyd�n�: 24.7.2002
>
>


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.345 / Virov� b�ze: 193 - datum vyd�n�: 9.4.2002

Aktivni radek v StringGridu

[*] MAX <max_konference(zv)post(tec)cz> - 22.9.2002 20:18:37

Nastal mi problem: potrebuji nastavit nejaky radek ve StringGridu na viditelnou uroven a nenasel jsem tam zadnou pouzitelnou vlastnost. (mam vice radku ve SG a potrebuji aby se mi urcity radek "naroloval" jakoby pouzitim posuvniku, aby byl na viditelne pozici)
Diky

Deadlock IBserveru 6.01 pres IBX komponenty z D6.0

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 22.9.2002 21:19:49

Hi All,

zjistil jsem, ze dokazu celkem spolehlive kousnout IB server tak, ze na
klientske strane spustim ulohu,
ktera vklada data do DB - trva to pres 3 hodiny a soucasne na stejnem stroji
pracuji se standalone FreeVCS klientem proti IB serveru.

Zajimave na tom je, ze ten server se kousne
(konzumuje 100 % casu a nereaguje, klient dtto):

a) kdyz je server remote a pracuje s nim zaroven FreeVCS server (NT
service) - to bych jeste pochopil

b) kdyz je local na stejnem stroji jako FreeVCS klient, ale ten pracuje
proti remote IB serveru :-O

***

Nema nekdo zkusenosti, jak je to se sdilenim IB serveru ruznymi aplikacemi a
jak je to s behem ruznych klientu take na temze stroji? Jaka je teorie -
melo by to bez problemu pracovat?


Thx, pf

Aktivni radek v StringGridu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 22.9.2002 21:21:37

From: "MAX" <max_konference(zv)post(tec)cz>

> Nastal mi problem: potrebuji nastavit nejaky radek
> ve StringGridu na viditelnou uroven a nenasel jsem
> tam zadnou pouzitelnou vlastnost.

Podivej se do helpu se na property TopRow.

HTH, pf

Interbase 6.1 a LEFT nebo SUBSTR

[*] Ludek Paral <ludek.paral(zv)quick(tec)cz> - 22.9.2002 23:29:27

Ahoj,

zkousel jsem nejak dostat group by pro data se stejnymi prvnimi tremi
pismeny, ale nejak jsem neoibjevil textovou funkci, ktera by to umela :

SELECT ART_CISLO,SUBSTR(ART_DATE,1,3) as CAST_DATE,IDSKLAD, ID_LODE,
count(ID) as POCET_PALET,sum(POCET_KUSU)as SUMKUSU from PALETY
where ART_CISLO=:ART_CISLO
group by ART_CISLO,SUBSTR(ART_DATE,1,3) ,IDSKLAD, ID_LODE
order by ART_CISLO,SUBSTR(ART_DATE,1,3) ,IDSKLAD, ID_LODE

S pozdravem


Ludek Paral
lupasoft
Sadova 2
352 01 As
Czech Rep.
mobil :00420/728.167118
tel. :00420/354 527410
email :ludek.paral(zv)atlas(tec)cz

Kod na precislovani cisel telefonu

[*] Benes Jaroslav <JBenes(zv)cpoj(tec)cz> - 23.9.2002 06:16:36

Ahoj,
mam proceduru pro prevod (uplneho) stareho cisla na cislo nove. Napsano v Delphi 5 a je to mozne dat v podstate kamkoliv.
Mam i programek na bazi tehoz.
Jaro B.

-----Original Message-----
From: Jan Najvarek [mailto:conference.reader(zv)artin(tec)cz]
Sent: Friday, September 20, 2002 2:12 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Kod na precislovani cisel telefonu


Zdravim,

nema nekdo kod v Delphi pro precislovani telefonnich cislel? Nechce se mi
vymyslet jiz vymyslene.

Diky

Jan Najvarek
ARTIN

Deadlock IBserveru 6.01 pres IBX komponenty z D6.0

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 23.9.2002 07:26:29

> zjistil jsem, ze dokazu celkem spolehlive kousnout IB server tak, ze
> na klientske strane spustim ulohu, ktera vklada data do DB - trva to
> pres 3 hodiny a soucasne na stejnem stroji pracuji se standalone
> FreeVCS klientem proti IB serveru.

Ahoj,

nevim, jak to mas nastavene, ale je znamo, ze na SQL server nelze pristupovat
soucasne vzdalene i lokalne, tj. i pri lokalnim pristupu je treba misto napr.
C:\Firebird\aaa.gdb uvadet localhost:C:\FireBird\aaa.gdb.

Jinak nevim.

David Lebeda

Deadlock IBserveru 6.01 pres IBX komponenty z D6.0

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 23.9.2002 08:00:59

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

> nevim, jak to mas nastavene, ale je znamo, ze na SQL server nelze
> pristupovat soucasne vzdalene i lokalne,

Diky, FreeVCS server mel nastaven lokalni pristup - to jsem zmenil a az budu
mit cas, tak vyzkousim, jestli to pomohlo.

Ale v pripade, ze pracuji s lokalnim strojem (pres localhost) a z tehoz
stroje FreeVCS clientem na jiny remote server, by to nemelo mit vliv, ne?

Bye, pf

Services a DCOM

[*] Alexandr Stefek <alex(zv)scova.vabo(tec)cz> - 23.9.2002 08:05:46

> On 20 Sep 2002 at 8:38, Zbysek Hlinka wrote:
>
> > On 19 Sep 2002 at 15:49, Alexandr Stefek wrote:
> >
> > > Krome Nastaveni security je potreba do registru nastavit jeste
> > > nejake klice (napr. LocalService pod, tusim CLSID). Ja osobne
> > > pridavam do .dpr napr. nasledujici kod (samozrejme lze
> > > optimalizovat):
> >
> > Zkousel jsem ruzne moznosti, ale vzdy mi to hlasilo nejakou chybu. V
> > nejlepsim pripade, ze pristup byl odepren.
>
> Jeste bych mel rict, ze klient se snazi spustit instanci serveru,
> ktera uz bezi. Dalsi instanci spustit lze, ale to neni zadouci.
>
Je dobre se pomoci dcomcnfg presvedcit, ze je DCOM
pripojen skutecne na sluzbu (samozrejme po instalaci apod.)
(popisovany jev nastava ve chvili, kdy to neni OK)
V patricnem dialogu se objevi (nemam to ted pred sebou, takze
potim z hlavy) RunAs, nebo neco takoveho a tamtez by mela
byt zvolena volba service ci co.
Pozor tento zpusob ale je pseudo DCOM service, vse bezi v hlavnim vlaknu.
Presto, mam to overeno jako celkem funkcni.
Doporucuji se podivat na
http://www.aldyn.ru/articles/dcom_in_service/index.html
Ale s trochou casu a usili by to mohlo jit jeste poopravit, aby to vse
bylo OK.

Alexandr STEFEK

zip32.dll

[*] likeapear <likeapear(zv)centrum(tec)cz> - 23.9.2002 08:14:24

Pouzivate nekdo InfoZip knihovnu zip32.dll (a jeho delphi-interface)? Ja
jsem narazil na takovy preblem:

Pred spakovanim souboru nastavuji v recordu TZPOpt promennou szRootDir (tj.
korenovy adresar), ktera je typu PChar. Pokud to nastavim jako konstantni
retezec, funguje to spravne. Pokud vsak pretypuju Stringovou promennou na
PChar nefunguje to. Dokonce jsem zkousel PChar naplnit pomoci StrAlloc a
StrPCopy a predat ho, ale to taky nepomohlo. Vite nekdo o nejakem reseni?
Myslite si, ze je to chyba v te dll? Nerad bych se ji vzdaval - mame ji v
instalaci a rok ji bez problemu pouzivame (zatim jsme vsak nepotrebovali
szRootDir....)

likeapear


Tlac textu z RichEditu

[*] bardon <bardon(zv)akord-soft(tec)cz> - 23.9.2002 08:36:55

Pokud vim, tak Courier neni TrueType, to by mohlo byt pricinou. Skus
CourierNew.

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Martin Kasman
Sent: Wednesday, September 18, 2002 10:10 PM

Mam v RichEdit nastaveny font Courier a tak sa mi aj zobrazi. Pri tlaci sa
vsak vytlaci text s nejakym inym fontom. Co s tym?

QUICKREPORT A MEMO

[*] J�n Kuch�r - 23.9.2002 08:58:08

Caute,

v programu mam databazy textu, kterou jsou postupne naplnil pres komponentu
memo a ted potrebuju zabezepecit vypis techto jednotlivych textu jako
samostatne bloky na quickreport asi nasledovne :

M1 M2 M3
M4 M5 M6
M7 M8 M9

kde cisla M1-az xxx predsavuji prave ty jednotlive texty z mema o nekolika
radcich a o libovolne delce radku.

OTAZKY :
1 - jak zabezpecit prave to vypisovani za sebou
2 - co kdyz nebudu chtit zrusit zobrazeni napr. M3, jak posunout poradi tech
ostatnich memo pozic



Ing. J�n Kuch�r PhD.
Rusk� 14, T�eb�� 674 01
e-mail : kuchar(zv)unicodesys(tec)cz

IB - pr�ce s casem

[*] Ing. Jiri SOKOL <JS-delphi(zv)seznam(tec)cz> - 23.9.2002 09:31:58

Ahoj,

mam dotaz k praci s casem v IB.
Mam slolupec, ktery je TimeStamp - treba s nazvem "Zapis". Kdyz chci udelat
vyber z tabulky, podle tohoto sloupce muzu napsat tenhle SQL:
select * from tabulka where zapis>'NOW';
Tohle je OK, jak ale muzu pricitat, odcitat atd. Dejme tomu, ze bych chtel
vsechno, co neni starsi vice nez 10 dnu. Jak to udelat?

Diky Jirka

Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187
D6ProfSP2,WinNT
amatersky programator

______________________________________________________________________
Reklama:
Prekvapive dobry signal! Presvedcte se v Oskar Testu ...
http://www.oskarmobil(tec)cz/oskartest

IB - zakladni nastaveni+rozjeti RemoteServer+pocet

[*] Ing. Jiri SOKOL <JS-delphi(zv)seznam(tec)cz> - 23.9.2002 09:46:13

Ahoj,

o vikendu jsem zacal pracovat s IB a mam par dotazu:
1) bez problemu jsem rozjel LocalServer. Proc nemuzu stejne rozjet RemoteServer?
Mam sitovou kartu, instalovany TCP/IP protokol, ale porad nic. Instaloval jsem
FULL IB,takze by mi nemelo nic chybet. Jediny co nevim, jestli muze byt problem
je, ze nemam k memu PC nic pripojeno. (Mam ale nejake sdileni a to se mi v
okolnich PC zobrazi ... no proste nevim, jestli to muze byt timhle)
Slo by mi poslat nejaky "idiotensicher" seznam ukolu, ktere musim udelat, abych
rozjel RemoteServer?
2) Chci se zeptat kde muzu ovlnit pocet pripojeni k databazi. Stalo se mi, ze jsem
mel rozjetou IBConsole a zaroven jsem chtel delat v Delphi a to mi hlasilo, ze
uzivatel SYSDBA je uz pripojen a ze se mam poradit s administratorem. Tak jak je to?
:o))
3)Daji se prava k databazi, tabulkam nastavovat nejak vizualne (napr. pomoci IBConsole)?
Prisel jsem jen na zpusob pomoci SQL - GRANT.
4) V projektu, kterym se snazim pristupovat k databazi, pouzivam IBDatabaze, IBTransaction,
IBQuery, DataSource. Jde nejak zadat (aspon pro navrh projektu) default user_name a defult
password, abych to nemusel 1000 do hodiny vypisovat? Jak?

To je asi zatim vse. Diky za odpovedi.

Jirka


Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187
D6ProfSP2,WinNT
amatersky programator

______________________________________________________________________
Reklama:
Poctenicko pro kazdy den: http://www.novinky(tec)cz

zip32.dll

[*] Pavel Gazda <Pavel.Gazda(zv)seznam(tec)cz> - 23.9.2002 09:51:05

> korenovy adresar), ktera je typu PChar. Pokud to nastavim jako konstantni
> retezec, funguje to spravne. Pokud vsak pretypuju Stringovou promennou na
> PChar nefunguje to. Dokonce jsem zkousel PChar naplnit pomoci StrAlloc a
> StrPCopy a predat ho, ale to taky nepomohlo. Vite nekdo o nejakem reseni?

Zkus napsat cely postup (vcetne deklarace) , asi tam mas chybu.
Pavel

CoMarshalInterface vraci E_INVALIDARG

[*] Karel Kimes <kkonf(zv)email(tec)cz> - 23.9.2002 09:53:18


>Kde se vzalo FEvents ve volani CoMarshalInterface ???

FEvents je private atribut tridy TKCH DCOM 03, ktery byl vytvoren pomoci
wizardu v D6 (na zaklade DAX) a obsahuje source interface, jehoz metody
musi klient implementovat v sink objektu. V tomto konkretnim pripade,
obsahuje, mimo jine i metodu OnEvent, kterou klient MUSI implementovat.
Tento interface se tedy snazim marshalovat. V pripade behu jako out-process
je vse OK. V pripade behu klienta a serveru na ruznych PC dojde ke zminene
chybe E INVALIDARG pri volani CoMarshalInterface.
> > -----P�vodn� zpr�va-----
> > ahoj,
> > prosim projdete si nize uvedeny kod metody COM komponenty.
> >
> >
> >
> > procedure TKCH DCOM 03.Go(delay: Integer);
> > var
> > IStream : IStream;
> > IStream h : THandle;
> > res : HRESULT;
> > begin
> > res := CreateStreamOnHGlobal(0, false, IStream);
> > if res <> S OK then
> > raise Exception.Create('CreateStreamOnHGlobal error: ' +
> > IntToStr(res));
> >
> > res := GetHGlobalFromStream( IStream, IStream h);
> > if res <> S OK then
> > raise Exception.Create('GetHGlobalFromStream error: ' +
> > IntToStr(res));
> >
> >
> > res := CoMarshalInterface( IStream, DIID IKCH DCOM 03Events, FEvents,
> > MSHCTX DIFFERENTMACHINE, nil, MSHLFLAGS NORMAL);
> > // ***** pri pouziti komponenty na jednom PC je vse OK, ALE pokud
> > se snazim
> > volat komponentu na jinem PC (DCOM je nastaveno dobre, vcetne
> > opravneni!!!), tak mne to vraci E INVALIDARG. O co gou???
> >
> >
> >
> > if res <> S OK then
> > raise Exception.Create('CoMarshalInterface error: ' + IntToStr(res));
> >
> > IStream := nil;
> > // **** uvolnim timto IStream??? nebo musim volat Release???
> >
> >
> > TTestThread.Create(delay, IStream h); // ve vlakne provadim
> > CoUnmarshallInterface
> >
> > CreateLOG('d:\dcom\ GoEnd.txt');
> > end;
> >
> >
> > kchodl
> >
> > WinXP, D6PRO UPDATE PACK 2
> >


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.381 / Virov� b�ze: 214 - datum vyd�n�: 2.8.2002

Prace s databazi - zacatky

[*] <ZPetruj(zv)qgir(tec)cz> - 23.9.2002 10:12:31

Nebylo by lep�� kdyby sis o tom nap�ed n�co p�e�etl v literatu�e
a prohl�dl si demo aplikace, kter� jsou sou��st� Delphi ?!

>
> Byl bych rad, kdybyste mi nekdo poslal ukazkovy progrma(ktyry
> bude data
> ukladat treba do souboru data.dat) na adresu simecky(zv)centrum(tec)cz.
>
> Mam doma D4 profesinal a D6 personal.
>

zip32.dll

[*] likeapear <likeapear(zv)centrum(tec)cz> - 23.9.2002 10:14:53


> Zkus napsat cely postup (vcetne deklarace) , asi tam mas chybu.
> Pavel

posilam cely unit, snad to admin prezije...
D_Zip32 a D_UnZip32 jsou orig. unity s rozhranim k dll. problem nastava ve
funkci ZipFiles...

unit D_Web_Procs;

interface

uses
Windows, SysUtils, Classes, D_Zip32, D_UnZip32;

function ZipFiles(ZipName : string; FileList: TStrings; JunkDir: boolean;
RootDir: String): boolean;
function ZipFile(ZipName, FileName : string; JunkDir: boolean; RootDir:
String): boolean;

function UnZipFiles(FileName,Dir: String): boolean;

implementation

function ZipProcPrint(Buffer: PChar; Size: ULONG): integer; stdcall;
begin
Result:=Size;
end;

function ZipProcPassword(P: PChar; N: Integer; M, Name: PChar): integer;
stdcall;
begin
Result:=1;
end;

function ZipProcComment(Buffer: PChar): PChar; stdcall;
begin
Result:=Buffer;
end;

function ZipProcService(Buffer: PChar; Size: ULONG): integer; stdcall;
begin
Result:=0;
end;

procedure ZipSetProcInitFunctions(var Z:TZipUserFunctions);
begin
with Z do
begin
(zv)Print := (zv)ZipProcPrint;
(zv)Comment := (zv)ZipProcComment;
(zv)Password := (zv)ZipProcPassword;
(zv)Service := (zv)ZipProcService;
end;
ZpInit(Z);
end;

function ZipFiles(ZipName : string; FileList: TStrings; JunkDir: boolean;
RootDir: String): boolean;
var
i : integer;
ZipRec : TZCL;
ZUF : TZipUserFunctions;
FNVStart : PCharArray;
ZipOptions: TZPOpt;
PRootDir: PChar;
begin
Result:=false;
try
PRootDir:=StrAlloc(Length(RootDir)+1);
try
StrPCopy(PRootDir,RootDir);
ZipOptions:=ZpGetOptions;
ZipOptions.fJunkDir:=JunkDir;
ZipOptions.szRootDir:=PRootDir; //'C:\Zumpa\www\';
ZpSetOptions(ZipOptions);
{ precaution }
if Trim(ZipName) = '' then Exit;
if FileList.Count <= 0 then Exit;
{ initialize the dll with Proc functions }
ZipSetProcInitFunctions(ZUF);
{ number of files to zip }
ZipRec.argc := FileList.Count;
{ name of zip file - allocate room for null terminated string }
GetMem(ZipRec.lpszZipFN, Length(ZipName) + 1 );
ZipRec.lpszZipFN := StrPCopy( ZipRec.lpszZipFN, ZipName);
try
{ dynamic array allocation }
GetMem(ZipRec.FNV, ZipRec.argc * SizeOf(PChar));
FNVStart := ZipRec.FNV;
try
{ copy the file names from FileList to ZipRec.FNV dynamic array }
for i := 0 to ZipRec.argc - 1 do
begin
GetMem(ZipRec.FNV^[i], Length(FileList[i]) + 1 );
StrPCopy(ZipRec.FNV^[i], FileList[i]);
end;
try
{ send the data to the dll }
Result:=(ZpArchive(ZipRec)=0);
finally
{ release the memory for the file list }
ZipRec.FNV := FNVStart;
for i := (ZipRec.argc - 1) downto 0 do
FreeMem(ZipRec.FNV^[i], Length(FileList[i]) + 1 );
end;
finally
{ release the memory for the ZipRec.FNV dynamic array }
ZipRec.FNV := FNVStart;
FreeMem(ZipRec.FNV, ZipRec.argc * SizeOf(PChar));
end;
finally
{ release the memory for the FileName }
FreeMem(ZipRec.lpszZipFN, Length(ZipName) + 1 );
end;
finally
StrDispose(PRootDir);
end;
except
end;
end;

function ZipFile(ZipName, FileName : string; JunkDir: boolean; RootDir:
String): boolean;
var
FileList: TStrings;
begin
FileList:=TStringList.Create;
try
FileList.Add(FileName);
Result:=ZipFiles(ZipName,FileList,JunkDir,RootDir);
finally
FileList.Free;
end;
end;


function UnZipProcPrnt(Buffer: PChar; Size: ULONG): integer; stdcall;
begin
Result:=Size;
end;

function UnZipProcPassword(P: PChar; N: Integer; M, Name: PChar): integer;
stdcall;
begin
Result:=1;
end;

function UnZipProcService(CurFile: PChar; Size: ULONG): integer; stdcall;
begin
Result:=0;
end;

function UnZipProcReplace(FileName: PChar): integer; stdcall;
begin
Result:=1;
end;

procedure UnZipProcSound; stdcall;
begin
end;

procedure UnZipProcMessage(UnCompSize: ULONG; CompSize: ULONG; Factor: UINT;
Month: UINT; Day: UINT; Year: UINT; Hour: UINT; Minute: UINT; C: Char;
FileName: PChar; MethBuf: PChar; CRC: ULONG; Crypt: Char); stdcall;
begin
end;

procedure UnZipSetProcInitFunctions(var Z:TUserFunctions);
begin
with Z do
begin
(zv)Print := (zv)UnZipProcPrnt;
(zv)Sound := (zv)UnZipProcSound;
(zv)Replace := (zv)UnZipProcReplace;
(zv)Password := (zv)UnZipProcPassword;
(zv)SendApplicationMessage := (zv)UnZipProcMessage;
(zv)ServCallBk := (zv)UnZipProcService;
end;
end;

function UnZipFiles(FileName,Dir: String): boolean;
var
UF: TUserFunctions;
UnZipOptions: TDCL;
PDir: PChar;
PFileName: PChar;
begin
Result:=false;
try
PDir:=StrAlloc(Length(Dir)+1);
PFileName:=StrAlloc(Length(FileName)+1);
try
StrPCopy(PDir,Dir);
StrPCopy(PFileName,FileName);
{ set user functions }
UnZipSetProcInitFunctions(UF);
{ set unzip operation options }
FillChar(UnZipOptions,SizeOf(UnZipOptions),#0);
UnZipOptions.nDFlag:=1;
UnZipOptions.nOFlag:=1;
UnZipOptions.lpszExtractDir:=PDir;
UnZipOptions.lpszZipFN:=PFileName;
{ unzip }
Wiz_SingleEntryUnzip(0,nil,0,nil,UnZipOptions,UF);
Result:=true;
finally
StrDispose(PDir);
StrDispose(PFileName);
end;
except
end;
end;

end.

IB - pr�ce s casem

[*] Skopalik Slavomir <skopalik(zv)hlubocky.del(tec)cz> - 23.9.2002 10:30:10

select * from tabulka where zapis>('NOW'-10);

Slavek

> mam dotaz k praci s casem v IB.
> Mam slolupec, ktery je TimeStamp - treba s nazvem "Zapis". Kdyz chci udelat
> vyber z tabulky, podle tohoto sloupce muzu napsat tenhle SQL:
> select * from tabulka where zapis>'NOW';
> Tohle je OK, jak ale muzu pricitat, odcitat atd. Dejme tomu, ze bych chtel
> vsechno, co neni starsi vice nez 10 dnu. Jak to udelat?

Saznam LPT

[*] Tom� Janta��������{����Y��̿ - 23.9.2002 10:34:35

Samozrejme potrebuji vsechny dostupne LPT v PC na kterem bezi ma
aplikace....

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Petr Vones
Sent: Friday, September 20, 2002 5:16 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Saznam LPT


From: "Tom� Janta�" <tomasnusle(zv)volny(tec)cz>
> nevite nekdo jak se da zjistit seznam vsech dostupnych LPT a jejich
adresy?

I kdyz to zjistis tak je ti to vicemene k nicemu.

Petr Vones

Interbase 6.1 a LEFT nebo SUBSTR

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 23.9.2002 10:35:58

> Odes�latel: Ludek Paral <ludek.paral(zv)quick(tec)cz>
> zkousel jsem nejak dostat group by pro data se stejnymi prvnimi tremi
> pismeny, ale nejak jsem neoibjevil textovou funkci, ktera by to umela :
>
> SELECT ART_CISLO,SUBSTR(ART_DATE,1,3) as CAST_DATE,IDSKLAD, ID_LODE,

InterBase nema standardne funkci SubStr.
Dodava ji ale jako example na UDF.
Podivej se do adresare examples (nebo tak nejak).

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

Odchytenie minimalizacie okna .... Kde je chyba ??

[*] Richard Siegl <rsiegl(zv)elas.sk> - 23.9.2002 11:00:15


Potrebujem odchytit udalost minimalizacie okna uzivatelom.
Udalosti restore, maxim funguju ale minimalizacia nie .
Neviete kde je chyba ???

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure Zmena(var Message: TMessage); message WM_SIZE;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure tform1.Zmena(var Message: TMessage);
begin
if message.WParam = SIZE_MINIMIZED then ShowMessage('minim');
if message.WParam = SIZE_MAXIMIZED then ShowMessage('maxim');
if message.WParam = SIZE_RESTORED then ShowMessage('resto');
inherited;
end;

----------------------
Richard Siegl
ELAS spol. s r.o.
Vinohradn�cka 6
97101 Prievidza
tel.: +421 46 5151239
Email: rsiegl(zv)elas.sk
Web: www.elas.sk
----------------------

Bezpecne ulozeni dat

[*] Ing. Jan Dvorak <dvorak(zv)szu(tec)cz> - 23.9.2002 11:01:11

Zdravim ucastniky konference.
Ve sve aplikaci tykajici se zpracovani medicinskych a
psychologickych dat potrebuji nektere udaje archivovane v
souborech bezpecne ulozit tak, aby k nim mela pristup jen
povolana osoba. Jde o osobni data ve tvaru stringu: jmeno,
bydliste apod. Ostatni data maji byt volne k dispozici pro
statisticke zpracovani a jine ucely.
Predstavuji si postup takovy, ze pri spusteni programu
operujiho s datovymi soubory se zada heslo, jehos hash by
byl pouzit k zakryptovani i odkryptovani retezcu citlivych
dat. Pokud heslo nebude souhlasit s predem zvolenym a
pouzitym k zakryptovani, tak v retezcich se objevi nesmysly
znemoznujici identifikaci osoby. Postup zakryptovani by
nemel byt trivialne jednoduchy, aby se nedal prolomit po
nekolika pokusech.
Predtim nez to cele zacnu vymyslet se zde chci zeptat, zda s
tim jiz ma nekdo zkusenost pripadne link, kde bych se mohl v
tomto smeru poucit a pripadne najit alespon fragmenty kodu
pouzitelne pro zmineny ucel.
Predem dekuji za namety. Ing. Jan Dvorak



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