Archív konference Delphi

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

seriova komunikace a tuhnouci win

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 16.3.2004 10:31:29

From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>

> Projdi di prosim diskuzi, tohle byla reakce na problem
> 9 zil kabelu.

Aha, ja jsem se zachytil az casti citovane v prispevku ES,
kde uz ta diskuse sklouznula na overlapping a ta kapacitni
vazba uz citovana nebyla. Omlouvam se.

***

Ta cast diskuse o nezapojenem vstupu me samozrejme neunikla,
ale nevenoval jsem tomu vetsi pozornost, protoze zkontrolovat kabel
povazuju za automatickou zalezitost, zvlast ma-li prapodivny puvod
a IMHO 3-zilovy kabel *musi* mit prapodivny puvod <g>


pf


Databaza bez nutnosti instalacie u uzivatela

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 16.3.2004 10:27:28

ahoj,

Jan Fiala wrote:
> Takze podle objemu (od nejmensich naroku)

ja bych mezi to vclenil jeste

> ClientDataset, prip. lepsi alternativu kbmMemTable
> FlashFiler

SQLite

> FireBird v embeded verzi

peca


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 16.3.2004 10:09:26

> > Pokud znas ISO 7 vsrstvy model komunikace,
>
> A tys nekdy videl funkcni aplikaci, ktera pouzivala
> smysluplny 7 vrstvy model? Moje zkusenost je, ze se ISO model
> pouziva spis jako zaklinadlo - buzzword
> - rekli by marketingove.
>
> Vlastni smysl modelu je spis voditko pro navrhare, jak to
> funkcne a fyzicky clenit a necpat to do jedineho propletence,
> i kdyz se to casto vydava za dogma.

Souhlas.

>
> Zpravidla nad sitovou vrstvou uz nikdo nevi, jak by ty dalsi
> vrsvy definoval

Proto jsem psal, co by melo byt rozhrani komponenty.

> Jeste me udivuje, ze se nikdo nepozastavil nad tim podivnym
> prikladem s milionem interruptu - teda jestli si spravne
> prekladam termin "DSR kopituje prubeh na Tx, nebo Rx" jako
> "DSR kopiruje..."

Projdi di prosim diskuzi, tohle byla reakce na problem
9 zil kabelu.

>
> I kdyby tomu tak bylo a ze neni, protoze aby se generovalo
> (8+1+1)*BitRate interruptu, musel by se prenaset chequered
> patern, nehlede k tomu: co je to za nesmyslnou komunikaci? To
> je tak na hrani pionyrum do Svazarmu, kdyz simuluji shift
> registr UARTu na aplikacni urovni, aby si mohli pripojit
> dalkove ovladani, ne?
>
> Prece *kazdy* prumyslovy system pouziva nejaky *prumyslovy*
> standard, aby sel propojit s ostatnimi systemy a V.24 resp.
> RS232c docela jasne definuji vyznam signalu DSR.

Souhlas. Bohuzel se opet kazdy bavime v jinem kontextu.

Slavek


Vyfarbovanie substringov v TRichEdit

[*] js-delphi(zv)quick(tec)cz - 16.3.2004 10:03:25

Odesilatel: Ivan Kozak <ivan(zv)boucek(tec)cz>
> V zaznamoch BLOB potrebujem vyhladavat a v zobraovacom
> TRichEdite vyfarbit
> (alebo inac zvyraznit) vyhladavany retazec.
>
> Na toto vyfarbenie pouzivam standardnu sekvenciu napr.:
>
> SelStart:= 1;
> SelLength:= 3;
> SelAttributes.Color := clRed;
>
> Problem je v tom, ze akonahle nastavim SelLength nenulove, tak
> sa vsetko
> vyfarbi ako treba, ale pri prechode na dalsie zaznamy zostanu
> beznadejnerozhodene fonty a uz sa to neda napravit, ani ked
> vynulujem SelLength.

Ahoj Ivane!
Napadlo me mozna brutalni reseni, ale kdo vi... Mam zkusenost, ze text ulozeny z WordPadu jako *.rtf i s barvou a zmenama fontu atd. pracuje OK. Tak bych zkusil to, co mas v tom RichEditu ulozit na disk jako *.rtf a porovnat to se stejnym textem z WordPadu. Podle me by mel byt videt rozdil.
Pokud ani tohle nezabere, tak co tvuj blbob neposilat do RichEditu, ale vytvaret si ten *.rtf a ten pak loadnout do toho RichEditu.
Reseni je to sice "brutalni", ale tohle by melo fungovat... Doufam
Dej vedet!
Ahoj
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.0.3
programator amater


Tisk - okraje

[*] js-delphi(zv)quick(tec)cz - 16.3.2004 09:57:24

Odesilatel: Petr Daricek <petr.daricek(zv)seznam(tec)cz>
> delam aplikaci, ktera ma tiskovy vystup a nemuzu nikde najit
> jakym zpusobem nastavit okraje pro tisk. Neco jako je ve wordu,
> levy okraj pravy okraj atd.
> Petr

Ahoj.
Dal jsi strasne malo vstupnich informaci... Co tiknes, jak to tisknes atd.
Existuje objek TPrinter a ten ma nastaveni okraju, pak muzes nastavit okraje u QReportu a pokud chces zobrazovat dialog PageSetup, tak ten pouzivam z JVCL (JEDI) - free, pokud neznas...
Vic Ti nepomuzu
Ahoj
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.0.3
programator amater


Reference v C#

[*] Jiri Sedivec <jsedivec(zv)tiscali(tec)cz> - 16.3.2004 09:49:23

Kdyz pouziju object nebudu prenaset nahodou celou class. Jde mi o vyuziti
pameti - nerad bych vytvarel nove a velko-objemove promenne.

----- Original Message -----
From: "Vlastimil Bardon" <bardon(zv)akord-soft(tec)cz>
> Misto typu integer pouzij typ object. Zbytek bude prakticky stejny.

Reference v C#

[*] Vlastimil Bardon <bardon(zv)akord-soft(tec)cz> - 16.3.2004 09:41:21

Misto typu integer pouzij typ object. Zbytek bude prakticky stejny.

-----Original Message-----
From: Jiri Sedivec [mailto:jsedivec(zv)tiscali(tec)cz]
Sent: Tuesday, March 16, 2004 8:49 AM

Chtel jsem se zeptat na hloupou vec - jak napisu v C# tyto radky - jde mi
ziskat referenci (pointer) na Class a pote nekde znovu v kodu ji pouzit.

var
MyClass : TMyClass;
PMyClass : Integer;
begin

Reference v C#

[*] tondrej(zv)t-online.de - 16.3.2004 09:21:19

> Chtel jsem se zeptat na hloupou vec - jak napisu v C# tyto radky -
> jde mi ziskat referenci (pointer) na Class a pote nekde znovu v kodu
> ji pouzit.
>
> var
> MyClass : TMyClass;
> PMyClass : Integer;
> begin
> MyClass := TMyClass.Create;
> PMyClass := integer(MyClass);
> MyClass := TMyClass(PMyClass);
> End;

Myslim, ze jazyk priamo nepodporuje class types (type XClass = class of X),
ale podla tychto clankov si ich mozes napisat ako vlastne triedy:

C#... Virtual Delphi?
http://www.richplum.co.uk/mag/pdf/eDDGjulaug2003.pdf
Virtual Static Methods in C#
http://www.richplum.co.uk/mag/pdf/eDDGsepoct2003.pdf

HTH
TOndrej

CryptoAPI - prepis hlavicky fce

[*] Libor Junek, Medisoft International <libor.junek(zv)medisoft(tec)cz> - 16.3.2004 09:05:18

Pokud tam dam pouze pointer tak mi ta fce projde bez padu ale GetLastError
mi zase hlasi ze "Parametr neni spravny". Jsem si ale na 99% jisty, ze tam
plnim vsechno spravne. Takze predpokladam, ze problem bude v tom parametru
array. Ale jak rikam ta deklarace hlavicky je z JEDI a je i na borland.com.
Pochybuji ze by si toho nikdo nevsiml. Jestli neni nahodou nejaka direktiva
pro compiler aby to prelozil stejne jako pole v C. Pokud se ma do nejakych
funkci predavat primo pointer na pole tak to maji v MSDN primo napsane ze
tam patri pointer a ne pole.

Libor

----- Original Message -----
From: "Dalibor Toman" <dtoman(zv)fortech(tec)cz>
Sent: Tuesday, March 16, 2004 7:49 AM


> pokud je to tak, pak je samozrejme treba prepsat ten argument jinym
zpusobem (pointer na array ci libovolnou pamet). Nevim presne z hlavy jak
presne preklada kompilator tu puvodni konstrukci - predpokladal jsem, ze
nejak podobne jako String (vytvori se pametova struktura, ktera obsahuje
mimo jine i delku vlastniho pole, pricemz se predava pointer na prvni
datovou polozku ne na zacatek strukturu) ale asi se to deje jinak.
>
> D. Toman


OT: Reference v C#

[*] Jiri Sedivec <jsedivec(zv)tiscali(tec)cz> - 16.3.2004 08:49:16

Chtel jsem se zeptat na hloupou vec - jak napisu v C# tyto radky - jde mi
ziskat referenci (pointer) na Class a pote nekde znovu v kodu ji pouzit.

var
MyClass : TMyClass;
PMyClass : Integer;
begin
MyClass := TMyClass.Create;
PMyClass := integer(MyClass);
MyClass := TMyClass(PMyClass);
End;

TThread versus. standardni Thread

[*] david.kopecek(zv)hacktrack(tec)com - 16.3.2004 08:39:14

Zdravim

co myslite ze je lepsi pro NT Servisu (mail server) v delphi ..
pouziti TThread a nebo bezny Thread vytvoreny pres createthread a
spustene pres begin thread ?

--
S pozdravem,
david
david.kopecek(zv)hacktrack.com

CryptoAPI - prepis hlavicky fce

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 16.3.2004 07:49:10

----- Original Message -----
From: "Libor Junek, Medisoft International" <libor.junek(zv)medisoft(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, March 16, 2004 6:11 AM
Subject: Re: CryptoAPI - prepis hlavicky fce


> Jenze pri teto deklaraci mi to vzdy lehne a v CPU view to ukazuje ze "array
> of ....." predava dva parametry (pravdepodobne pointer a delku ?) misto
> jednoho a tim padem nesouhlasi deklarace v C a Delphi.

pokud je to tak, pak je samozrejme treba prepsat ten argument jinym zpusobem (pointer na array ci libovolnou pamet). Nevim presne z hlavy jak presne preklada kompilator tu puvodni konstrukci - predpokladal jsem, ze nejak podobne jako String (vytvori se pametova struktura, ktera obsahuje mimo jine i delku vlastniho pole, pricemz se predava pointer na prvni datovou polozku ne na zacatek strukturu) ale asi se to deje jinak.


D. Toman

Databaza bez nutnosti instalacie u uzivatela

[*] Jan Fiala <jan.fiala(zv)wo(tec)cz> - 16.3.2004 07:49:09

15.3.2004 Martin Kasman:
> Chcem pozivat komponenty pre databazy, no nechcem aby bol uzivatel spolu s
> mojim programom nuteny instalovat nejaky engine pre databazu. Mam Delphi 7,
> tak chcem vediet, ci to uz nejake taketo komponenty nepouziva alebo aspon mi
> poradte miesto, kde sa da taka komponenta stiahnut z netu (najlepsie
> zadarmo).

Kolik tabulek, jak velky objem dat ?
Takze podle objemu (od nejmensich naroku)
ClientDataset, prip. lepsi alternativu kbmMemTable
FlashFiler
FireBird v embeded verzi

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

CryptoAPI - prepis hlavicky fce

[*] Libor Junek, Medisoft International <libor.junek(zv)medisoft(tec)cz> - 16.3.2004 06:11:02

Jenze pri teto deklaraci mi to vzdy lehne a v CPU view to ukazuje ze "array
of ....." predava dva parametry (pravdepodobne pointer a delku ?) misto
jednoho a tim padem nesouhlasi deklarace v C a Delphi. Jenze se mi nechce
zdat ze maji na JEDI spatne deklarace a nikdo si toho ani nevsiml. Je mozne
prepnout compilator aby prekladal "array of ..." jako pointer? Nebo je to
uplne jinak?

Libor

----- Original Message -----
From: "Dalibor Toman" <dtoman(zv)fortech(tec)cz>> On Monday, March 15, 2004 5:15 PM [CET], Libor Junek, Medisoft
> International <libor.junek(zv)medisoft(tec)cz> wrote:
>
> > function CryptSignMessage(pSignPara :PCRYPT_SIGN_MESSAGE_PARA;
> > fDetachedSignature :BOOL;
> > cToBeSigned :DWORD;
> > const rgpbToBeSigned :array of PBYTE;
> > rgcbToBeSigned :array of DWORD;
> > pbSignedBlob :PBYTE;
> > pcbSignedBlob :PDWORD):BOOL ; stdcall;

> Predpokladam, ze je to jedno - 'array of xy' by pri volani rutiny melo
> stejne byt prelozeno jako predavani pointeru na neco. Autor zrejme
> chtel nabidnout moznost zadat do volani rutiny tyto parametry jako
> konstantu primo pri volani (bez vytvareni mezipromennych) ...
>
> Vzdycky si to muzes prepsat a overit v disasemblazi, ze je to predany
> spravne (jako pointer na nejaka data).

Jak nainstalovat ActiveX do delphi?

[*] Jan Fiala <jan.fiala(zv)wo(tec)cz> - 16.3.2004 05:12:56

15.3.2004 Jaromir Cermak:
> Prosim poradte. Mam D7 a ActivX komponentu napsanou nejspis v C++
> Builderu. Vytvoril jsem si balicek, pridal do nej soubor .OCX,
> balicek jsem zbuildoval a nainstaloval activex na paletu komponent.
> Podarilo se mi vytvorit formular s touto komponentou, ale prvni
> volani metody komponenty zahlasi chybu "Nespravnyretezec tridy", co
> mam jeste udelat nebo kde muze byt problem.

Zkusil bych to jinak.
V menu Component je Import ActiveX
Pres to by to mohlo byt jednodussi...

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

seriova komunikace a tuhnouci win

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 16.3.2004 03:14:48

Slavomir Skopalik wrote:

> Pokud znas ISO 7 vsrstvy model komunikace,

A tys nekdy videl funkcni aplikaci, ktera pouzivala smysluplny 7 vrstvy
model?
Moje zkusenost je, ze se ISO model pouziva spis jako zaklinadlo - buzzword
- rekli by marketingove.

Vlastni smysl modelu je spis voditko pro navrhare, jak to funkcne
a fyzicky clenit a necpat to do jedineho propletence,
i kdyz se to casto vydava za dogma.

Zpravidla nad sitovou vrstvou uz nikdo nevi, jak by ty dalsi vrsvy definoval
:-)

***

Jinak souhlasim temer slovo od slova s ES.

Nikdy jsme pod Win32 nic jineho nez overlapped rezim s komunikacemi
nepouzivali a nikdy jsme s tim nemeli zadne problemy. A dokonce jsme
starsi aplikace pro DOS a Win16 na overlapped rezim predelavali.

***

Jeste me udivuje, ze se nikdo nepozastavil nad tim podivnym
prikladem s milionem interruptu - teda jestli si spravne prekladam termin
"DSR kopituje prubeh na Tx, nebo Rx" jako "DSR kopiruje..."

I kdyby tomu tak bylo a ze neni, protoze aby se generovalo (8+1+1)*BitRate
interruptu, musel by se prenaset chequered patern, nehlede k tomu:
co je to za nesmyslnou komunikaci? To je tak na hrani pionyrum do Svazarmu,
kdyz simuluji shift registr UARTu na aplikacni urovni,
aby si mohli pripojit dalkove ovladani, ne?

Prece *kazdy* prumyslovy system pouziva nejaky *prumyslovy* standard,
aby sel propojit s ostatnimi systemy a V.24 resp. RS232c docela jasne
definuji vyznam signalu DSR.


pf

Delphi 8 - Automated IDE Incident Reporting

[*] Petr Vones <pvones(zv)vol(tec)cz> - 16.3.2004 02:28:45

An IDE Add-in that provides the user with the opportunity to report directly
into Quality Central, Delphi IDE exception incidents.

http://bdn.borland.com/article/0,1410,32027,00.html
http://homepages.borland.com/abauer/archives/2004_03_07_archive.php

Petr Vones


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 16.3.2004 00:02:30

> Jinak je dobrym zvyken nastavit komunikaci vissi prioritu, pokud je
> treba.
> To znamena, ze mi separatni vlakno dava vetsi sanci, ze casovani bude
> presnejsi, nez hlavni. Toto je jeden z dovodu, proc nepsat komunikaci
> v hlavnim vlakne.

no v prvom rade, ked chcem presnejsie casovanie, tak nebudem
zaroven komunikovat aj pouzivat databazu alebo spustat ine
vypoctove thready alebo procesy. Inak to je problem (chyba)
hardwaru, ak seriova komunikacia vobec vyzaduje nejake
casovanie. Od toho su tam riadiace signaly a data flow riadenie
aby ziadne casovanie nebolo potrebne. Zial software casto
musi riesit hardwarove problemy, lebo hardwaristi ich
mnohokrat riesia nevedia.

> Toto je vec, ktera jse resit formou skoleni, kantroly, ale proc, kdyz
> mohu
> zadat hned na zacatku, ze to bude ve valstnim vlakne a pak to vetsina
> da automaticky do samostatne knihovny a dusledne oddeli od aplikace
> a tim oddeli i aplikaci od komunikace.

kod threadu je oddeleny od aplikacie je aj nevyhoda - musim
riesit synchronizaciu udajov medzi threadom a aplikaciou.
To by asi nebol problem rozdelit aplikaciu do 300 threadov,
keby sa tym aplikacia stala prehladnejsia (separaciou nejakych
casti do threadov) - ale este som nepocul, ze by to niekto
takto robil. Podla mna to vyclenenie kodu do threadu je
zanedbatelny efekt oproti sprave threadov, ktoru potom
treba riesit.

> Zakladem, ktery pouzivam je abstrakni trida pro komponetu ser.
> komunikace
> a pro vlakno ser. komunikace.
> Je vybavena zakladnimy mechanizmy to k zacatku.
> (synchronizacni objekt, cas vlakna, fronta jednorazovych pozadavku,
> fronta
> cyklickych pozadavku, udalosti s parametrem paketu, ktery byl vyrizen,
> nastvavovani parametru komunikace).

a naco Ti je ta abstraktna trieda?

> Komponentu ovsem vytvarim pouze v pripade, ze mam komunikaci nasazovat
> vice krat, nebo je urcena pro jineho programatora.

nechapem preco. Software by sa mal vzdy robit tak, aby ho bolo
mozne neskor opetovne vyuzivat (aj na ucely, ktore sa povedzme
nedali predpokladat).

> Pro konretni zarizeni (jednorazove pouziti) si vytvorim pouze potomka
> vlakna
> a dopisi kod, ktery jsem sem poslal (plus cca tri dalsi procedury).

cize pises tam kompletnu komunikaciu. To je reusability?

> Ke konci:
> Pokud znas ISO 7 vsrstvy model komunikace, tak komponenta by mela
> zapouzdrovat 6 vrstvu. Aplikacni programator dostane komponentu,
> ktera mu umozni komunikovat treba s PLC na urovni datovych struktur
> PLC, nikoliv na urovni paketu.
> Aplikacni programator ma jine strarosti, toto je zalezitosti systemoveho
> programatora.

co potom robia v Delphi socket komponenty, to je 6 vrstva?

> Tim padem mam komponentu, ktere mi zapouzdruje vse co aplikacni
> programator potrebuje k praci (nemusi vubez znat protokol).
> Komponenta muze mit klidne property vstupu a vystupu a ja mohu
> je cist a nastavovat, o prenos se musi postarat komponenta).

a ked tych komunikacnych protokolov je milion dvesto?
Ked takmer kazde zariadenie ma vlastny protokol (alebo si
uz videl dve registracne pokladne s rovnakym protokolom?),
tak vtedy uz aplikacnemu programatorovi nepomozeme?

> Dovody proc opustit overlaped byly dva (plati obecne):
>
> 1. Jestlize si vytvarim blokujici sadu funkci nad overlaped,
> overlaped ztraci smysl -> byla chyba jej pouzit.

preco potom Windows poskytuje obidva tieto mechanizmy,
ked jeden z nich (ten pokrokovejsi) straca zmysel?

> 2. Problemy nekterych ovladacu (toto je druhorady problem,
> ale nekdy muze byt rozhodujici, zakaznik se nekolikrat
> pokousel tento problem reklamovat, takze od te doby
> pisi pomoci blokujicich technik a mam klid).

este som nestretol s tym, ze by overlapped komunikacia
nefungovala. Ono ta komunikacia funguje totiz v principe
rovnako, akurat programator ma dve moznosti ako
ju pouzivat.

> Ja vim, kdy bych overlaped pouzil, ale opravdu jsem za 5 let,
> zo pisi drivery pro prumyslove hracky nemel k tomuto duvod
> (tedy pouziti bylo chybou, jelikoz neprineslo zjednoduseni
> a zajisteni vissi citelnosti pro ostatni).
> Opravdu, pokud mas protokol dotaz - odpoved, tak je blokujici
> prace velmi prijemna, zvlaste ve spojeni s konstantni delkou
> paketu.

system prace overlapped aj non-overlapped je uplne rovnaky,
nevidim tam ziadny rozdiel, co sa tyka zlozitosti:

WriteData; // non-overlapped

StartWriteData; ... WaitWriteData; // overlapped

Cize ked napisem dva prikazy za sebou a nevyuzijem
moznost vlozit medzi ne vlastny kod vykonavany pocas
komunikacie, tak mam vlasne z overlapped komunikacie
non-overlapped komunikaciu:

// toto robi Windows automaticky, ak sa nepouziva overlapped
procedure WriteData;
begin
StartWriteData; WaitWriteData;
end

Z non-overlapped komunikacie ale uz overlapped neurobim,
leda nejake pofiderne triky s threadmi, timeoutmi a podobne
na docielenie podobneho efektu.

Erik


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 22:44:24

>
> ake kvalitnejsie casovanie separatneho vlakna, odkial to
> beries? Vsetky vlakna maju rovnake casovanie podla ich priority.

Jenze hlavni vlakno ma vice ukolu (blokujici pristup k DB, kresleni
formu, interakce s uzivatelem, ...).

Jinak je dobrym zvyken nastavit komunikaci vissi prioritu, pokud je
treba.
To znamena, ze mi separatni vlakno dava vetsi sanci, ze casovani bude
presnejsi, nez hlavni. Toto je jeden z dovodu, proc nepsat komunikaci
v hlavnim vlakne.

Druhy duvod je ciste dany vyvojem v delphi.
Pro zasovani je treba Timer, ten sice lze vytvaret rucne, ale kolik
programatoru
to udela ? Spise to zacnou baslit na DataModulu, nebo formu.
Tim ovsem provazou komunikaci s aplikaci a ta pak nelze jednoduse
vyclenit z alikace.
Toto je vec, ktera jse resit formou skoleni, kantroly, ale proc, kdyz
mohu
zadat hned na zacatku, ze to bude ve valstnim vlakne a pak to vetsina
da automaticky do samostatne knihovny a dusledne oddeli od aplikace
a tim oddeli i aplikaci od komunikace.

>
> a kazdy protokol bude mat v sebe duplicitne riesenu
> tu istu zakladnu komunikaciu? Nie je lepsie to raz zapuzdrit
> a potom to v protokoloch vyuzivat, t.j. protokoly budovat
> nad spolocnym zakladom? I VisualBasic to ma takto riesene,
> i v .NET to ma tak byt. Bolo by dobre, keby si obcas uviedol
> aj nejaky dovody svojich tvrdeni alebo aspon ich vyhody
> nie len nicim nepodlozene nazory (ale zas nie take dovody,
> ze ja som to skusal a mi to nefungovalo, tak to nemoze fungovat).

Zakladem, ktery pouzivam je abstrakni trida pro komponetu ser.
komunikace
a pro vlakno ser. komunikace.
Je vybavena zakladnimy mechanizmy to k zacatku.
(synchronizacni objekt, cas vlakna, fronta jednorazovych pozadavku,
fronta
cyklickych pozadavku, udalosti s parametrem paketu, ktery byl vyrizen,
nastvavovani parametru komunikace).
Komponentu ovsem vytvarim pouze v pripade, ze mam komunikaci nasazovat
vice krat, nebo je urcena pro jineho programatora.
Pro konretni zarizeni (jednorazove pouziti) si vytvorim pouze potomka
vlakna
a dopisi kod, ktery jsem sem poslal (plus cca tri dalsi procedury).

Ke konci:
Pokud znas ISO 7 vsrstvy model komunikace, tak komponenta by mela
zapouzdrovat 6 vrstvu. Aplikacni programator dostane komponentu,
ktera mu umozni komunikovat treba s PLC na urovni datovych struktur
PLC, nikoliv na urovni paketu.
Aplikacni programator ma jine strarosti, toto je zalezitosti systemoveho
programatora.
Tim padem mam komponentu, ktere mi zapouzdruje vse co aplikacni
programator potrebuje k praci (nemusi vubez znat protokol).
Komponenta muze mit klidne property vstupu a vystupu a ja mohu
je cist a nastavovat, o prenos se musi postarat komponenta).> to su Tvoje zazitky a skusenosti ale z nich mi nevyplyva
> nejake obecne ponaucenie, snad iba take, ze asi je vyhodne
> pouzivat najprimitivnejsi mechanizmus, ak neviem pouzit
> domyselnejsi. Ja som si zapuzdril komunikaciu do komponenty,
> je tam bezproblemovo vyrieseny overlapping aj multithreading
> (pre eventy) a mam tak k dispozicii kvalitnu a jednoduchu
> komunikaciu a nevidim v tom ziadny luxus. Mozno si mal radsej
> stiahnut z internetu nejaku lepsiu komunikacnu komponentu a
> pouzit, ked uz hovoris o jednoduchych rieseniach ako sa v tom
> babrat. Lebo seriova komunikacia vo Windowse je naozaj
> komplikovana vec, ak ma byt kvalitne urobena.

Dovody proc opustit overlaped byly dva (plati obecne):

1. Jestlize si vytvarim blokujici sadu funkci nad overlaped,
overlaped ztraci smysl -> byla chyba jej pouzit.

2. Problemy nekterych ovladacu (toto je druhorady problem,
ale nekdy muze byt rozhodujici, zakaznik se nekolikrat
pokousel tento problem reklamovat, takze od te doby
pisi pomoci blokujicich technik a mam klid).

Ja vim, kdy bych overlaped pouzil, ale opravdu jsem za 5 let,
zo pisi drivery pro prumyslove hracky nemel k tomuto duvod
(tedy pouziti bylo chybou, jelikoz neprineslo zjednoduseni
a zajisteni vissi citelnosti pro ostatni).

Opravdu, pokud mas protokol dotaz - odpoved, tak je blokujici
prace velmi prijemna, zvlaste ve spojeni s konstantni delkou
paketu.

Slavek


Databaza bez nutnosti instalacie u uzivatela

[*] Martin Kasman <martinkasman(zv)martinkasman.sk> - 15.3.2004 21:50:16

Chcem pozivat komponenty pre databazy, no nechcem aby bol uzivatel spolu s
mojim programom nuteny instalovat nejaky engine pre databazu. Mam Delphi 7,
tak chcem vediet, ci to uz nejake taketo komponenty nepouziva alebo aspon mi
poradte miesto, kde sa da taka komponenta stiahnut z netu (najlepsie
zadarmo).


Vdaka za kazdu radu

Stahovanie suborov z netu

[*] Martin Kasman <martinkasman(zv)martinkasman.sk> - 15.3.2004 21:50:17

Delphi 7, Win 2000

Chcem stiahnut subor z netu a neviem, ktoru komponentu pouzit, pravdepodobne
niektoru z Indi komponent. Nechcem vsak, aby bol uzivatel nuteny pred
pouzitim programu vypisat sposob pripojenia k sieti (proxy, branu a pod.)
ale, aby si to komponenta zistila sama, pripadne aby som jej to zadal sam z
nastaveni registrov (ale neviem ako).


Vdaka za kazdu radu


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 21:54:20

> Jenze ja takto ser. komunikaci provozuji (vice zarizeni),
> v pripade jednohoje opravdu casovani separatniho vlakna kvalitnejsi,
> nez casovani hlavniho (jelikoz hlavni resi i jine ukoly).

ake kvalitnejsie casovanie separatneho vlakna, odkial to beries?
Vsetky vlakna maju rovnake casovanie podla ich priority.

> Proc delis na overlaped na neoverlaped ?

pretoze je to jedna z moznosti, ktoru mi seriova komunikacia
umoznuje a mozem sa rozhodnut, ci ju pouzijem alebo nie

> To nema smysl, smysl ma to delit podle navrhu.

ale tych vselijakych navrhov moze byt milion, kde po akych
threadoch, co bude ako komunikovat. Ale v tom mas pravdu,
ze pri navrhu treba zohladnit, ci ta komunikacia bude v extra
threade alebo nie.

> Jinak komponenta by mela vzdy zapouzdrovat cely protokol
> a ne COM port. V te komponente by mely byt udalosti protokolu,
> nikoliv udalosti COM portu.

a kazdy protokol bude mat v sebe duplicitne riesenu
tu istu zakladnu komunikaciu? Nie je lepsie to raz zapuzdrit
a potom to v protokoloch vyuzivat, t.j. protokoly budovat
nad spolocnym zakladom? I VisualBasic to ma takto riesene,
i v .NET to ma tak byt. Bolo by dobre, keby si obcas uviedol
aj nejaky dovody svojich tvrdeni alebo aspon ich vyhody
nie len nicim nepodlozene nazory (ale zas nie take dovody,
ze ja som to skusal a mi to nefungovalo, tak to nemoze
fungovat).

> S pouzitim overlaped jsem psal nekolik komunikaci, nakonec
> to skoncilo tak, ze jsem si nad asynchronim volanim vytvoril
> nadstavbu pro blokujici volani.
> Tim padej je overlaped zbytecny luxus.
> Mozna pises o protokolu, na ktery se overlaped hodilo, ja na takovy
> nenarazil.

to su Tvoje zazitky a skusenosti ale z nich mi nevyplyva nejake
obecne ponaucenie, snad iba take, ze asi je vyhodne pouzivat
najprimitivnejsi mechanizmus, ak neviem pouzit domyselnejsi.
Ja som si zapuzdril komunikaciu do komponenty, je tam
bezproblemovo vyrieseny overlapping aj multithreading
(pre eventy) a mam tak k dispozicii kvalitnu a jednoduchu
komunikaciu a nevidim v tom ziadny luxus. Mozno si mal
radsej stiahnut z internetu nejaku lepsiu komunikacnu
komponentu a pouzit, ked uz hovoris o jednoduchych
rieseniach ako sa v tom babrat. Lebo seriova komunikacia
vo Windowse je naozaj komplikovana vec, ak ma
byt kvalitne urobena.

Erik


radky DBGridu

[*] Radek KALA <kala(zv)betacontrol(tec)cz> - 15.3.2004 21:14:10

> Ahoj, mel bych hned dva dostazy po ranu,
> 1. potreboval bych obarvit radek v DBGridu podle dane hodnoty v radku,
> nerpisel jsem na to jak
Tohle se dela onDrawColumnCell toho gridu
>
> 2. a pak bych jeste potreboval mam-li v radku hodnotu napr. 1, 2, 3
> tak aby se misto teto hodnoty zobrazoval text napr. prvni, stredni,
> posledni...
A tohle je zase nejlepsi OnGetText toho Fieldu.
> S pozdravem Radek KALA
BetaControl, s.r.o.
Cerneho 58/60, 635 00
tlf. : + 420 5 4622 3491
fax : + 420 5 4622 3470
GSM : + 420 603 85 75 15


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 20:38:04

> Vyuzitie multithreadingu by som videl tam, kde treba
> zabezpecit sucasne vykonavanie rovnakeho kodu viackrat (napr.
> web server potrebuje obsluzit x-klientov, tak je prirodzene
> pouzit pre kazdeho klienta zvlastny thread). Pre seriovu
> komunikaciu, kde viacmenej ide o obycajny sekvencny zapis a
> citanie s jednym zariadenim to je podla mna zbytocna
> komplikacia. Uplne postacuje overlapping (aby komunikacia
> bezala plynule s aplikaciou) plus jednoduche sledovanie
> komunikacnych eventov, ak su potrebne.

Jenze ja takto ser. komunikaci provozuji (vice zarizeni),
v pripade jednohoje opravdu casovani separatniho vlakna kvalitnejsi,
nez casovani hlavniho (jelikoz hlavni resi i jine ukoly).
Ve vlakne te komunikace by mela byt i kontrola CRC a kontrola
validity paketu. Dale rozpoznani, jestli je je zariznei jeste
pripojeno (proto mi chyby ten timeout i WaitComEvent).

>
> no ked chces co najpresnejsie casovanie (hoci aj tak
> negarantovane), tak na DB operacie vtedy zabudni. Inak ten
> overlapping samozrejme chodi v extra vlakne (a zrejme moze
> vyuzit aj extra CPU ak je k dispozicii). Programator sa o to
> ale nemusi starat, postara sa o to Windows za Teba.

Ano, to v obou pripadech (jak blokujici, tak overlaped).

> 1. Nie overlapped komunikacia bez eventov
> 2. Nie overlapped komunikacia s eventami
> 3. Overlapped komunikacia bez eventov
> 4. Overlapped komunikacia s eventami
>

Proc delis na overlaped na neoverlaped ?
To nema smysl, smysl ma to delit podle navrhu.
Overlaped je technika pro asychroni pristuk k COM portu
plus ti dava moznost pouzit WaitComEvent, ktery by jinak
nebylo mozne pouzit (prakticky).
Bud komunikuji z hlavniho vlakna primo (jednodussi veci
takto obcas resim), nebo mam vlakno vyhrazene na komunikaci.

Jinak komponenta by mela vzdy zapouzdrovat cely protokol
a ne COM port. V te komponente by mely byt udalosti protokolu,
nikoliv udalosti COM portu.

>
> Komunikacne eventy (t.j. pripad 2, a 4) vzdy vyzaduju
> extra thread a preto treba spracovani eventov tiez
> vzdy synchronizovat.
>
> Komunikacia bez overlapping nema ziadnu vyhodu
> oproti komunikacii s overlappingom, cize systemy
> 1. a 2. nemaju opodstatnenie ked nie je problem
> vyuzit overlapping. Ale su k dispozicii zrejme
> z dovodu uplnosti a jednoduchosti pre programatora.

Tady se asi neshodnem. Muj nazor je, ze pokud je nejake
reseni zbytecne slozite, je hure udrzovatelne a miva vice
chyb. Proto programuji rekneme buranskym zpusobem,
jelikoz vim, ze budu hotov mnohem rychleji, nez kdybych
to psal s pouzitim overlaped a kod bude obsahovat mnohem
mene chyb.
S pouzitim overlaped jsem psal nekolik komunikaci, nakonec
to skoncilo tak, ze jsem si nad asynchronim volanim vytvoril
nadstavbu pro blokujici volani.
Tim padej je overlaped zbytecny luxus.
Mozna pises o protokolu, na ktery se overlaped hodilo, ja na takovy
nenarazil.

Slavek

Jak pres ADO zjisti pocet ovlivnenych radku

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 15.3.2004 20:03:57



> -----Original Message-----
On Behalf Of Martin Krim
> zajimalo by me jak v Delphi pres ADO zjisti kolik muj
> aktualizacni prikaz ovlivnil radku, chtel bych udelat podobny
> vypis tak jako je v QueryAnalyzeru (!!! nepotrebuji vedet
> jestli doslo k chybe nebo jaky je vypis chyby, to umim :-))

Ahoj.
Tady mas kousek z meho "QA" (je tam seno okolo, ale tim se jiste
prohrabnes)

var
i, affrows, GridCount, offs, offsadd: integer;
vole: OleVariant;
RS: _Recordset;
Errs: boolean;
Dotaz, Sekce: TStrings;

....... ADOCommand1.CommandText := Sekce.Text;
i := 0;
vole := null;
affrows := 0;
RS := ADOCommand1.Execute(i, vole);
if (RS <> nil) then
begin
if (RS.State <> adStateClosed) then
begin
ADODataSet1.Recordset := RS;
CreateGrid(GridCount);
inc(GridCount);
affrows := ADODataSet1.RecordCount;
end
else
affrows := i;
if affrows = -1 then
ListBox1.Items.Add('The command completed successfully.')
else
ListBox1.Items.Add(Format('%d affected row(s)',
[affrows]));
end;

Ludek


OT: Databaze mest

[*] Jan Pukovec <walkrine(zv)centrum(tec)cz> - 15.3.2004 19:53:55

Sveho casu tu probihala diskuse na tema databaze mest v Belgii.
Ja bych ted potreboval schrastit db vsech italskych obci, nevedete to
nahodou nekdo ?
Nasel jsem firmu www.prvni.com ktera udajne je schopna takovou databazi
vytvorit, nemate s nima nekdo nejake zkusenosti ? (Terminy, ceny aj nebo
kontakt na nekoho jineho kdo by mohl slouzit ?)

Diky


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 19:25:52

> > Mne to prehladne ani jednoduche rozhodne nepripada.
>
> Jenze muj priklad jede zcela asynchrone k hlavnimu vlaknu, takze
> se muzu (v ramci urcitych toleranci) spolehnout i na casovani.

hlavne vlakno je tiez len vlakno, rovnako sa mozes spolahnut
(alebo aj nespolahnut) na casovanie, rovnako mozes nastavovat
jeho prioritu, atd. Ale na druhej strane sa nemusis vobec starat
o sychronizaciu s inymi vlaknami.

Vyuzitie multithreadingu by som videl tam, kde treba zabezpecit
sucasne vykonavanie rovnakeho kodu viackrat (napr. web server
potrebuje obsluzit x-klientov, tak je prirodzene pouzit pre kazdeho
klienta zvlastny thread). Pre seriovu komunikaciu, kde viacmenej
ide o obycajny sekvencny zapis a citanie s jednym zariadenim
to je podla mna zbytocna komplikacia. Uplne postacuje
overlapping (aby komunikacia bezala plynule s aplikaciou)
plus jednoduche sledovanie komunikacnych eventov, ak su potrebne.

> Navic pokud je techto komunikaci vice (nejvice jsem ridil 12 zarizeni
> on-line
> + DB), tak na vice CPU (mel jsem 2xPIII, jelikoz tam byl i SQL server)
> to puzije
> vice CPU.
> V hlavnim vlakne by to byl docela problem, jelikoz DB operace mohou
> trvat i nekolik
> sec.

no ked chces co najpresnejsie casovanie (hoci aj tak negarantovane),
tak na DB operacie vtedy zabudni. Inak ten overlapping samozrejme
chodi v extra vlakne (a zrejme moze vyuzit aj extra CPU ak je
k dispozicii). Programator sa o to ale nemusi starat, postara sa
o to Windows za Teba.

> Zakladni nepochopeni je v architekture (overlaped pak vyplynou z
> kontextu navrhu).
> Ty pises o zcela necem jinem, ja taky.
>
> 1. Komunikace v hlavnim vlakne
> 2. Komunikace v separatnim vlakne
> 3. Komunikace v hlavnim vlakne s eventy (overlaped)
> 4. Komunikace v separatnim vlakne s eventy

Komunikacia moze byt overlapped alebo nie.

Dalej mozu byt potrebne komunikacne eventy
alebo nie.

Cize delenie mas nasledovne:

1. Nie overlapped komunikacia bez eventov
2. Nie overlapped komunikacia s eventami
3. Overlapped komunikacia bez eventov
4. Overlapped komunikacia s eventami

Komunikacia v kazdom z tychto pripadov moze bezat
v hlavnom alebo hocijakom inom threade. Ak ale bezi
v inom ako hlavnom threade, tak uz je potom treba
riesit synchronizaciu s hlavnym threadom.

Komunikacne eventy (t.j. pripad 2, a 4) vzdy vyzaduju
extra thread a preto treba spracovani eventov tiez
vzdy synchronizovat.

Komunikacia bez overlapping nema ziadnu vyhodu
oproti komunikacii s overlappingom, cize systemy
1. a 2. nemaju opodstatnenie ked nie je problem
vyuzit overlapping. Ale su k dispozicii zrejme
z dovodu uplnosti a jednoduchosti pre programatora.

Erik


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 18:49:48

>
> > > lenze IRQ a udalosti aplikacie nie su 1:1, Windows
> > > napr. neposiela event za kazdym precitanym bajtom.
> >
> > Tohle zalezi jen na nastaveni, kdyz je CPU dost rychli, tak ano.
>
> vyskusaj si to, hoci aj na rychlom pocitaci

Jo to jsem zkusel. Bohuzel pro mne, musel jsem to prepsat.

>
> > > A obsluha eventu v aplikacii - to uz je davno driver
> ukoncil obsluhu
> > > IRQ.
> >
> > Jenze maskovani preruseni po kazdem preruseni se obvykle nepouziva,
> > jelikoz stoji spoustu casu (IO operace, drive s ISA
> sbernici, dnes s
> > PCI na vybranych modelech).
>
> ???

Prave nedavno na rootu o tom byl clanek, bohuzel do Windowsu nevidim.

> >
> > Jenze je zbytecne, to je jeho nejvetsi nevyhoda.
> > Overlaped se da pouzit vzdy, ale proc pouzivat neco, co je
> > v danem kontextu zbytecne ?
>
> ako zbytocne? Mozes naraz citat udaje, naraz zapisovat udaje
> a este zaroven vykonavat dalsie operacie (napr. pripravovat
> dalsie udaje na vyslanie, spracovat prijate udaje, updatovat
> informacie uzivatelovi na obrazovku o komunikacii, atd.) a to
> bez nejakej dalsej rezie alebo komplikovaneho programovania.
> To je zbytocne? Lepsie je spustit operaciu a zbytocne
> blokovat aplikaciu povedzme niekolko sekund az operacia skonci?

Ja o voze, ty o koze.

>
> > Jenze to je jedinny zpusob, jak slusne resit COM obsluhu.
> > Mas vlakno a nem si udelas vsechno potrebne (muze jich byt
> treba 12).
> > Kdyz to budes mastit v hlavnim vlakne, tak te rozhodi kazda
> prkotina
> > (delsi odpoved DB). Napriklad protokol RK512 neni takto realne
> > zvladnutelny. Protokol ma na zacatku vyjednavani o tom, kdo bude
> > posilat a kdo prijimat.
>
> nas komunikacny komponent ziadny event na komunikaciu
> nepouziva, neviem kde na to furt chodis, ze na overlapped
> komunikaciu potrebujes thready. Stiahni si nas komponent a
> predsvedc sa sam, ze je tam overlapping aj bez threadov.
> Naopak prave na to je ten overlapping sikovny, ze
> nepotrebujes tam uz ziadne dalsie thready (bez overloadingu
> by si ich bud potreboval alebo by si musel blokovat aplikaciu).

Protoze psat komunikaci v hlavnim vlakne je rekneme neprakticke.

>
> tak, ze tam nebude ziadny thread.
> Stiahni si nas komponent a komunikuj takto:
>
> // nastav timeouty (mozes aj interaktive v Object Inspectore)
> ComPort.Timeouts.... :=...
> // ak chceme pokat, kym sa nacitaju:
> WaitForReadCompletion;

Zkousel jsem, opustil pred 5 lety pro nepouzitelnost.

>
> > Jsem placen za to, ze komunikace je robustni a citelne a napsana
> > rychle.
>
> zartujes, ved tam je same Sleep, Lock, Unlock, goto.

Sleepu se nevyhnes (problemy RS485 linky), lock unlock jsou kvuli
vlaknum, tem se vyhnes
v pripade jednoho vlakna, to souhlasim, goto je tam kvuli prehlednosti
a jednoduchosti. Psat bez goto je nekdy dost obtizne (konstrukce
typu repeat until false, nebo while true do nepatri mezi stastne volby,
zvlaste pokud
tam chces vlozit jiny cyklus.> Mne to prehladne ani jednoduche rozhodne nepripada.

Jenze muj priklad jede zcela asynchrone k hlavnimu vlaknu, takze
se muzu (v ramci urcitych toleranci) spolehnout i na casovani.
Navic pokud je techto komunikaci vice (nejvice jsem ridil 12 zarizeni
on-line
+ DB), tak na vice CPU (mel jsem 2xPIII, jelikoz tam byl i SQL server)
to puzije
vice CPU.
V hlavnim vlakne by to byl docela problem, jelikoz DB operace mohou
trvat i nekolik
sec.

Zakladni nepochopeni je v architekture (overlaped pak vyplynou z
kontextu navrhu).
Ty pises o zcela necem jinem, ja taky.

1. Komunikace v hlavnim vlakne
2. Komunikace v separatnim vlakne
3. Komunikace v hlavnim vlakne s eventy (overlaped)
4. Komunikace v separatnim vlakne s eventy

Vyzkousel jsem vsechny a vysledek byl, ze jsem zustal
u 2. protoze je spolehliva, vyborne skalovatelne, setrna k CPU
a jednoducha.> to su fakt super triky, to ja nenazyvam programovanim
>
Ja o sobe nikdy netvrdil, ze jsem programator :), ale
dobrych 10 let me to slusne zivi. :))

Slavek


Jak pres ADO zjisti pocet ovlivnenych radku

[*] Daniel Rott <roxton(zv)seznam(tec)cz> - 15.3.2004 18:33:46

Ja to spise myslel tak, ze aplikaci ktera toto bude pouzivat
muze znefunkcnit pridani triggeru. Blbe se to pak hleda.

Daniel

----- Original Message -----
From: "Jakub Martinek" <listbox(zv)vakmb(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, March 15, 2004 6:27 PM
Subject: Re: Jak pres ADO zjisti pocet ovlivnenych radku


Muzes treba na vhodnem miste ulozit do promene a vratit jako result.

> Nerad bych plasil, ale IMHO pokud ten prikaz odpali nejaky
> trigger tak se hodnota (zv)(zv)ROWCOUNT muze prepsat.
> Daniel

Jak pres ADO zjisti pocet ovlivnenych radku

[*] Jakub Martinek <listbox(zv)vakmb(tec)cz> - 15.3.2004 18:27:42

Muzes treba na vhodnem miste ulozit do promene a vratit jako result.

> Nerad bych plasil, ale IMHO pokud ten prikaz odpali nejaky
> trigger tak se hodnota (zv)(zv)ROWCOUNT muze prepsat.
> Daniel
>
> From: "Jakub Martinek" <listbox(zv)vakmb(tec)cz>
>
>
> (zv)(zv)ROWCOUNT
>
> > zajimalo by me jak v Delphi pres ADO zjisti kolik muj
> > aktualizacni prikaz ovlivnil radku, chtel bych udelat podobny
> > vypis tak jako je v QueryAnalyzeru (!!! nepotrebuji vedet
> > jestli doslo k chybe nebo jaky je vypis chyby, to umim :-))
> > MK

Generator v MS-SQL

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 15.3.2004 18:23:40

Aha, nejak mi nedoslo, ze muzu pouzit SET IDENTITY_INSERT a udelat update...
Diky

Jiri Foldyna

> Autoincrement resetovat jde, MSSQL nijak nezajistuje ze cislo v
> autoincrement poli je jednoznacne !
> Pavel
> > > Muzes to udelat jako autoincrement sloupec a
> > > KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU
> > > jako vypocitavany sloupec. Pokud ti nevadi mezery, tak je to asi
> > > nejjednodusi.
> >
> > Jako autoinkrement asi ne, protoze ten nejde resetovat (to
> > poradove cislo se
> > kazdy rok pocita odznova). Asi to udelam hodne pres koleno -
> > v transakci
> > najdu nejvyssi pouzite cislo v ramci pobocky a roku,
> > inkrementuju a zkusim
> > pouzit. Jen si nejsem jisty, co se stane, kdyz se o totez pokusi dva
> > uzivatele najednou - bude to stacit zabalit do transakce ?
> > > > > Pokud to ma byt nezavisle na transakcich,
> > > > > je to nutno napsat do DLL a ulozit do tabulky.
> > > > > Pokud to muze byt nezavisle na transakci tak opet jedine
> > > do tabulky.
> > > > > Primy zapis do sysobject neni doporucitelny, znamena uvolnit
> > > > > tuto moznost na DB (back-door).
> > > >
> > > > Diky, takze pokud to spravne chapu, MS SQL skutecne nic
> > > > takoveho nema ?
> > > > Myslel jsem, ze jsem jenom treba blbe hledal v dokumentaci.
> > > > Potrebuji to pro
> > > > generovani unikatni polozky typu
> > > > KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU, kde
> > > > PORADOVE_CISLO je
> > > > inkrementovany 6-timistny integer, diry v rade moc nevadi,
> > > > jde spis o urceni
> > > > poradi. Chtel jsem, aby to generoval server sam, na
> > Oraclu mi to bez
> > > > problemu funguje...
> > > >
> > > > > > potreboval bych v MS SQL 7.5 realizovat neco jako je
> > > > > > generator v Oracle
> > > > > > (pojmenovany automaticky inkrementovany integer MIMO
> > > > > > tabulku). Nevite nekdo,
> > > > > > jak na to ?
>
>
>

Update SQL StoredProc vs Post

[*] Jakub Martinek <listbox(zv)vakmb(tec)cz> - 15.3.2004 17:55:30

> > Napriklad
> > bezpecnost - vkladat a menit data muze pouze SP
>
> mozna is tim usnadnis pridelovani grantu uzivatelum.

Nejen, do databaze nema proste nikdo primy pristup.

>
> > rychlost - SP je predkompilovana + nizzsi datovy tok
>
> predkompilovany jsou triggery taky. insert/update pouzivam
> parametrizovany a pri vetsim mnozstvi dat se pomoci prepare
> vlastne taky predkompiluje.
>
> nizzsi datovy tok? mel jsem za to, ze kdyz poslu na server
> parametrizovany insert (napriklad), tak pak uz se posilaji
> jenom sloupce. potom je prepare dotazu ve srovnani s daty
> minimalni zatez.

Casto rozhoduji i malickosti.> > 3. lepe se ladi nez triggery.
>
> ja si myslim ze oboji se ladi stejen pracne :o) vzhledem k
> nepritomnosti (server side debuderu, alespon u IB/FB se
> kterym pracuju).

U MSSQL se ladi lepe.

> proste se dmnivam, ze snad krom usnadneni grantu mi SP
> prinaseji vice prace a snizujou citelnost.
> pokud nevim presne jak, tezko budu hledat jak mam data
> vkladat. prakticky tak omezuju moznost pristupu mimo moji
> aplikaci (coz se ovsem muze hodit :-).
> peca

Zalezi na koncepci aplikace (logika v dabazi). Pri pristupu z internetu bych
SP nasadil na 100%.
Omezeni pristupu mimo aplikaci a na predem definovame operace je prave
cilem.
Bohuzel se snizuje ponekud udrzovatelnost aplikace (upravy na vice mistech)

Jakub Martinek
Jmartinek(zv)vakmb(tec)cz

Jak pres ADO zjisti pocet ovlivnenych radku

[*] Daniel Rott <roxton(zv)seznam(tec)cz> - 15.3.2004 18:11:39

Nerad bych plasil, ale IMHO pokud ten prikaz odpali
nejaky trigger tak se hodnota (zv)(zv)ROWCOUNT
muze prepsat.

Daniel

----- Original Message -----
From: "Jakub Martinek" <listbox(zv)vakmb(tec)cz>(zv)(zv)ROWCOUNT

> zajimalo by me jak v Delphi pres ADO zjisti kolik muj
> aktualizacni prikaz ovlivnil radku, chtel bych udelat podobny
> vypis tak jako je v QueryAnalyzeru (!!! nepotrebuji vedet
> jestli doslo k chybe nebo jaky je vypis chyby, to umim :-))
> MK

seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 18:05:38

> > o com inom to je? Overlapping je snad vzdy overlapping, nie?
>
> Overlaped je o pararelnim pristupu z vice vlaken k tomu samemu souboru.
> Pokud chces async. volani, tak staci nastavit buffery (stejne tam jsou).

zartujes?

> > lenze IRQ a udalosti aplikacie nie su 1:1, Windows
> > napr. neposiela event za kazdym precitanym bajtom.
>
> Tohle zalezi jen na nastaveni, kdyz je CPU dost rychli, tak ano.

vyskusaj si to, hoci aj na rychlom pocitaci

> > A obsluha eventu v aplikacii - to uz je davno driver
> > ukoncil obsluhu IRQ.
>
> Jenze maskovani preruseni po kazdem preruseni se obvykle nepouziva,
> jelikoz stoji spoustu casu (IO operace, drive s ISA sbernici, dnes s PCI
> na vybranych modelech).

???

> > ja hovorim toto: treba pouzivat tie mechanizmy, ktore su k
> > dispozicii a su urcene na riesenie daneho problemu a
> > nevymyslat vlastne kvazi-mechanizmy, kde to nie je potrebne.
> > Ak nepouzijes overlapping (to uz je jedno v akom threade) tak
> > musis testovat "rucne", ci operacia skoncila a zbytocne tym
> > zatazujes system.
>
> Omyl, blokujici operace to delaji za mne a prijem si synchronizuji
> pomoci nastavenych timeoutu pro COM.
> Nerikam, ze overladep je zbytecne, jen NENI vhodne pro 90%
> pripadu ser. komunikace.

blbost

> > > > overlapped umoznuje aplikacii zabranit zbytocnemu cakaniu na
> > > > vyslanie/prijem udajov, cize nie je ziadny dovod nepouzivat ho.
> > >
> > > Jen me opravdu nenapada, k cemu by to mohlo byt dobre pri realizaci
> > > ser. komunikace kdyz 90% protokolu na ser. linku jsou typu dotaz
> > > odpoved
> >
> > ved overlapping sa da pouzit aj na dotaz-opoved
>
> Jenze je zbytecne, to je jeho nejvetsi nevyhoda.
> Overlaped se da pouzit vzdy, ale proc pouzivat neco, co je
> v danem kontextu zbytecne ?

ako zbytocne? Mozes naraz citat udaje, naraz zapisovat udaje
a este zaroven vykonavat dalsie operacie (napr. pripravovat
dalsie udaje na vyslanie, spracovat prijate udaje, updatovat
informacie uzivatelovi na obrazovku o komunikacii, atd.)
a to bez nejakej dalsej rezie alebo komplikovaneho programovania.
To je zbytocne? Lepsie je spustit operaciu a zbytocne blokovat
aplikaciu povedzme niekolko sekund az operacia skonci?

> Jenze to je jedinny zpusob, jak slusne resit COM obsluhu.
> Mas vlakno a nem si udelas vsechno potrebne (muze jich byt treba
> 12). Kdyz to budes mastit v hlavnim vlakne, tak te rozhodi
> kazda prkotina (delsi odpoved DB). Napriklad
> protokol RK512 neni takto realne zvladnutelny.
> Protokol ma na zacatku vyjednavani o tom, kdo bude posilat
> a kdo prijimat.

nas komunikacny komponent ziadny event na komunikaciu
nepouziva, neviem kde na to furt chodis, ze na overlapped
komunikaciu potrebujes thready. Stiahni si nas komponent
a predsvedc sa sam, ze je tam overlapping aj bez threadov.
Naopak prave na to je ten overlapping sikovny, ze nepotrebujes
tam uz ziadne dalsie thready (bez overloadingu by si ich bud
potreboval alebo by si musel blokovat aplikaciu).

> > to si mozno Ty myslis. Seriova komunikacia je komplikovane
> > urobena vo Windowse (hlavne tie eventy a specialne funkcie),
> > ale overloading samotny je podla mna velmi jednoducha a
> > uzitocna zalezitost.
>
> A na tohle jsi prisel jak ?
> To ze nepouzivam zbytecne veci ?
> Tady je priklad komunikace s menicem (CLM 1.3):

> Jak to chce jeste zjednodusit ?

tak, ze tam nebude ziadny thread.
Stiahni si nas komponent a komunikuj takto:

// nastav timeouty (mozes aj interaktive v Object Inspectore)
ComPort.Timeouts.... :=...

// nastav databity, etc.(mozes aj interaktive v Object Inspectore)
ComPort.DataBits :=...

// otvor COM port (mozes aj interaktivne, je to Active property)
ComPort.Open;

// spusti vysielanie udajov
ComPort.WriteString('Data');

// .. tu si rob, co chces, udaje sa vysielaju
// ak potrebujes zistit, ze uz boli vyslane udaje, zavolaj:

ComPort.WaitForWriteCompletion;

// teraz spustime citanie
ComPort.Read(Buffer, SizeOf(Buffer), False);

// rob si tu co chces, udaje sa citaju

// ak chceme pokat, kym sa nacitaju:
WaitForReadCompletion;

> Jsem placen za to, ze komunikace je robustni a citelne a napsana rychle.

zartujes, ved tam je same Sleep, Lock, Unlock, goto.
Mne to prehladne ani jednoduche rozhodne nepripada.

> Tady je jeden ulet, ktery resi inicializaci, kdy jeste nejsou data pro
> komunikaci.
> Slo by to resit i slozitejsim (sprevnejsim ?) postupem, to soulasim.
>
> if i=0then begin sleep(10); continue; end;

to su fakt super triky, to ja nenazyvam programovanim

Erik


Jak pres ADO zjisti pocet ovlivnenych radku

[*] Jakub Martinek <listbox(zv)vakmb(tec)cz> - 15.3.2004 17:59:31

(zv)(zv)ROWCOUNT

> zajimalo by me jak v Delphi pres ADO zjisti kolik muj
> aktualizacni prikaz ovlivnil radku, chtel bych udelat podobny
> vypis tak jako je v QueryAnalyzeru (!!! nepotrebuji vedet
> jestli doslo k chybe nebo jaky je vypis chyby, to umim :-))
> MK

seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 17:43:28

> o com inom to je? Overlapping je snad vzdy overlapping, nie?

Overlaped je o pararelnim pristupu z vice vlaken k tomu samemu souboru.
Pokud chces async. volani, tak staci nastavit buffery (stejne tam jsou).

> lenze IRQ a udalosti aplikacie nie su 1:1, Windows
> napr. neposiela event za kazdym precitanym bajtom.

Tohle zalezi jen na nastaveni, kdyz je CPU dost rychli, tak ano.

> A obsluha eventu v aplikacii - to uz je davno driver
> ukoncil obsluhu IRQ.

Jenze maskovani preruseni po kazdem preruseni se obvykle nepouziva,
jelikoz stoji spoustu casu (IO operace, drive s ISA sbernici, dnes s PCI
na vybranych modelech).

> > Tohle je ale pristup teoretika, kdyz se vratis do praxe, tak je
> > vsechno jinak. Schvalne, dokazes donit vyrobce aby to
> opravil, je ne,
> > tak jsem to obesel.
>
> na zaklade jedneho pripadu teraz uz overlapping v praxi nie
> je dobry? A to este aj ten jeden pripad je taky, ze tam vobec
> nezlyhal overlapping ale nieco celkom ine.

Netvrdim, ze selhal overlaped, ale nemohl byt pouzit. :(

>
> ja hovorim toto: treba pouzivat tie mechanizmy, ktore su k
> dispozicii a su urcene na riesenie daneho problemu a
> nevymyslat vlastne kvazi-mechanizmy, kde to nie je potrebne.
> Ak nepouzijes overlapping (to uz je jedno v akom threade) tak
> musis testovat "rucne", ci operacia skoncila a zbytocne tym
> zatazujes system.

Omyl, blokujici operace to delaji za mne a prijem si synchronizuji
pomoci nastavenych timeoutu pro COM.
Nerikam, ze overladep je zbytecne, jen NENI vhodne pro 90%
pripadu ser. komunikace.

>
> > > overlapped umoznuje aplikacii zabranit zbytocnemu cakaniu na
> > > vyslanie/prijem udajov, cize nie je ziadny dovod nepouzivat ho.
> >
> > Jen me opravdu nenapada, k cemu by to mohlo byt dobre pri realizaci
> > ser. komunikace kdyz 90% protokolu na ser. linku jsou typu dotaz
> > odpoved
>
> ved overlapping sa da pouzit aj na dotaz-opoved

Jenze je zbytecne, to je jeho nejvetsi nevyhoda.
Overlaped se da pouzit vzdy, ale proc pouzivat neco, co je
v danem kontextu zbytecne ?

> spracovanie: zaroven Ti Windows napr. cita udaje do buffera
> (co chvilu trva) a zaroven Tvoja aplikacie tento cas vyuzije
> na nieco ine (napr. pasik pre uzivatela, nech este caka ;-)
> ). Keby nebol k dispozicii overlapping a chcel by si nieco
> take dosiahnut, potreboval by si vytvorit zvlastny thread a
> potom tie thready komplikovanym sposobom prinutit aby sa
> nepredbiehali a neblokovali, atd.

Jenze to je jedinny zpusob, jak slusne resit COM obsluhu.
Mas vlakno a nem si udelas vsechno potrebne (muze jich byt treba
12). Kdyz to budes mastit v hlavnim vlakne, tak te rozhodi
kazda prkotina (delsi odpoved DB). Napriklad
protokol RK512 neni takto realne zvladnutelny.
Protokol ma na zacatku vyjednavani o tom, kdo bude posilat
a kdo prijimat.

> to si mozno Ty myslis. Seriova komunikacia je komplikovane
> urobena vo Windowse (hlavne tie eventy a specialne funkcie),
> ale overloading samotny je podla mna velmi jednoducha a
> uzitocna zalezitost.

A na tohle jsi prisel jak ?
To ze nepouzivam zbytecne veci ?
Tady je priklad komunikace s menicem (CLM 1.3):

procedure TCLMThread.Execute;
var i:integer;
p:PCLMPacket;
L:TList;
tm: COMMTIMEOUTS;
label l1;
begin
DataBits:=da7;
tm.ReadIntervalTimeout := 100;
tm.ReadTotalTimeoutMultiplier := 10;
tm.ReadTotalTimeoutConstant := 500;
tm.WriteTotalTimeoutConstant := 500;
tm.WriteTotalTimeoutMultiplier := 10;
SetCommTimeouts(ComHandle, tm);
while not Terminated do begin
Sleep(0); // schedule() zabrani deadlocku
i:=List.LockList.Count;
List.UnlockList;
if i=0then begin sleep(10); continue; end;
L:=List.LockList;
p:=L[0];
L.Delete(0);
List.UnlockList;
l1:
if Terminated then break;
PurgeComm(ComHandle, PURGE_RXCLEAR+PURGE_TXCLEAR);
Sleep(20);
if not WriteData(p.send) then goto l1;
Sleep(20);
if not ReadLine(p.receive,p.CRC)then goto l1;
DoReceiveData(p);
Dispose(p);
end;
end;

Jak to chce jeste zjednodusit ?
Jsem placen za to, ze komunikace je robustni a citelne a napsana rychle.

Tady je jeden ulet, ktery resi inicializaci, kdy jeste nejsou data pro
komunikaci.
Slo by to resit i slozitejsim (sprevnejsim ?) postupem, to soulasim.

if i=0then begin sleep(10); continue; end; Slavek


CryptoAPI - prepis hlavicky fce

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 15.3.2004 17:33:27

On Monday, March 15, 2004 5:15 PM [CET], Libor Junek, Medisoft
International <libor.junek(zv)medisoft(tec)cz> wrote:

> Ahoj,
> stahl jsem si prepis headers wincrypt.h (CryptoAPI) z JEDI. Nezda
se
> mi ale hlavicka pro
> CryptSignMessage.
>
> Deklarace v C:
> BOOL WINAPI CryptSignMessage(
> PCRYPT_SIGN_MESSAGE_PARA pSignPara, // in
> BOOL fDetachedSignature, // in
> DWORD cToBeSigned, // in
> const BYTE *rgpbToBeSigned[ ], // in
> DWORD rgcbToBeSigned[ ], // in
> BYTE *pbSignedBlob, // out
> DWORD *pcbSignedBlob // in/out
> );
>
> Je to prelozeno jako:
>
> function CryptSignMessage(pSignPara :PCRYPT_SIGN_MESSAGE_PARA;
> fDetachedSignature :BOOL;
> cToBeSigned :DWORD;
> const rgpbToBeSigned :array of PBYTE;
> rgcbToBeSigned :array of DWORD;
> pbSignedBlob :PBYTE;
> pcbSignedBlob :PDWORD):BOOL ; stdcall;
>
> Nemeli by byt parametry rgpbToBeSigned a rgcbToBeSigned deklarovany
> takto? rgpbToBeSigned: PByte;
> rgcbToBeSigned: PDWord;
>
Predpokladam, ze je to jedno - 'array of xy' by pri volani rutiny melo
stejne byt prelozeno jako predavani pointeru na neco. Autor zrejme
chtel nabidnout moznost zadat do volani rutiny tyto parametry jako
konstantu primo pri volani (bez vytvareni mezipromennych) ...

Vzdycky si to muzes prepsat a overit v disasemblazi, ze je to predany
spravne (jako pointer na nejaka data).

D. Toman

CryptoAPI - prepis hlavicky fce

[*] Libor Junek, Medisoft International <libor.junek(zv)medisoft(tec)cz> - 15.3.2004 17:15:21

Ahoj,
stahl jsem si prepis headers wincrypt.h (CryptoAPI) z JEDI. Nezda se mi ale
hlavicka pro
CryptSignMessage.

Deklarace v C:
BOOL WINAPI CryptSignMessage(
PCRYPT_SIGN_MESSAGE_PARA pSignPara, // in
BOOL fDetachedSignature, // in
DWORD cToBeSigned, // in
const BYTE *rgpbToBeSigned[ ], // in
DWORD rgcbToBeSigned[ ], // in
BYTE *pbSignedBlob, // out
DWORD *pcbSignedBlob // in/out
);

Je to prelozeno jako:

function CryptSignMessage(pSignPara :PCRYPT_SIGN_MESSAGE_PARA;
fDetachedSignature :BOOL;
cToBeSigned :DWORD;
const rgpbToBeSigned :array of PBYTE;
rgcbToBeSigned :array of DWORD;
pbSignedBlob :PBYTE;
pcbSignedBlob :PDWORD):BOOL ; stdcall;

Nemeli by byt parametry rgpbToBeSigned a rgcbToBeSigned deklarovany takto?
rgpbToBeSigned: PByte;
rgcbToBeSigned: PDWord;

Pokud je to jinak tak jak?

Dik
Libor


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 16:53:19

> Pokud si uzivatel nenastavi vsechny signaly, jelikoz je potrebuje.
> Jinak zalezi na tom, jestli OS maskuje preruseni na UARTu.
> Pokud ano tak to to masinu stejne slozi (obsluha IRQ je dost
> pracna).

v DDK je zdrojak, da sa to pozriet. Nastavuje sa tam maska,
takze zrejme sa IRQ maskuje (co je logicke).

> Souhlas. Jen je otazkou, jak pak pouzijes WaitComEvent.

na overlapping nepotrebujes ziadny WaitCommEvent.
WaitCommEvent a extra thread je nutny len pre
zistovanie eventov ako su CTS, DSR, etc. Napr.
nas ComPort komponent funguje tak, ze zatazuje
system len ked je to potrebne, t.j. ak uzivatel nepouziva
ziadny event, tak sa ani nevytvori ziadny thread.
Overlapping sa pouziva automaticky, tam problem
nie je. Uzivatel snad okrem toho, ze ma okamzitu
odozvu (napr. nemusi cakat sa kym sa vyslu vsetky
udaje) o tom ani nevie, ze ma tam taky domyselny
mechanizmus, aby ta komunikacia mohla plynule
a rychlo fachcit.

> Hmm a jab by mel navrh s overlaped vypadat ?
>
> Ja standartne cekam na tri veci:
> 1. az budu mit co odesilat

na to snad nepotrebujes cakat?

> 2. az odeslu data

zavolas WaitForWriteCompletion (v nasom komponente),
interne sa vola GetOverlappedResult funkcia

> 3. az mi data prijdou

zavolas WaitForReadCompletion (v nasom komponente),
interne sa vola GetOverlappedResult funkcia

Erik


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 16:23:11

> Ja si to nepletu, ale overlaped pri pouziti pri programovani
> async. komunikace (predpokladam, ze se bavime jeste
> porad o komunikaci, a ne o souborech, tam je to uplne o necem
> jinem) pouze pri cekani na udalost na com portu.

o com inom to je? Overlapping je snad vzdy overlapping, nie?

> > aplikacia nikdy neriesi prerusenia, to riesi driver
>
> Jo, jezne ten driver ti nastavi flag pro waitComEvent, ten flag ti
> zpusobi
> udalost ve tve aplikaci, ....

lenze IRQ a udalosti aplikacie nie su 1:1, Windows
napr. neposiela event za kazdym precitanym bajtom.
A obsluha eventu v aplikacii - to uz je davno driver
ukoncil obsluhu IRQ.

> > ked vyrobca modemu nevie napisat alebo pouzit driver, tak to
> > este neznamena, ze overlapping nie je dobry komunikacny mechanizmus
>
> Tohle je ale pristup teoretika, kdyz se vratis do praxe, tak je vsechno
> jinak.
> Schvalne, dokazes donit vyrobce aby to opravil, je ne, tak jsem to
> obesel.

na zaklade jedneho pripadu teraz uz overlapping v praxi nie je dobry?
A to este aj ten jeden pripad je taky, ze tam vobec nezlyhal overlapping
ale nieco celkom ine.

> > > Overlaped pri psani komunikace v samostatnem vlakne je dle
> > meho nazoru
> > > zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
> > a dochazi
> > > k intenzivnimu prepinani kontextu.
> >
> > ked pouzivas overlapping nepotrebujes vytvarat zvlastny
> > thread a zrejme to je aj ucelom overlapped komunikacie (a
> > obecne asynchronnych volani): predist vytvaraniu threadov,
> > lebo synchronizovat thready je daleko vecsi problem ako
> > overlapped komunikacia
>
> Hmm, a vis o cem se tu vlastne bavime ?

ja hovorim toto: treba pouzivat tie mechanizmy, ktore su k dispozicii
a su urcene na riesenie daneho problemu a nevymyslat vlastne
kvazi-mechanizmy, kde to nie je potrebne. Ak nepouzijes overlapping
(to uz je jedno v akom threade) tak musis testovat "rucne", ci
operacia skoncila a zbytocne tym zatazujes system.

> > overlapped umoznuje aplikacii zabranit zbytocnemu cakaniu na
> > vyslanie/prijem udajov, cize nie je ziadny dovod nepouzivat ho.
>
> Jen me opravdu nenapada, k cemu by to mohlo byt dobre pri realizaci
> ser. komunikace kdyz 90% protokolu na ser. linku jsou typu dotaz odpoved

ved overlapping sa da pouzit aj na dotaz-opoved

> (nic jineho na RS485 stejne nechodi).
> Hlavne overlaped je navrzeno pro simultani pristup vice vlaken (ne
> jednoho,
> to by bylo k nicemu) k souboru.

ovperlapping je prikladom asynchronneho volania: spustis nejaku
operaciu a nemusis cakat, kym ta operacia skonci. Mozes medzitym
robit nieco nie (napr. updatovat obrazovku) a az potom pockat
na ukoncenie operacie. Cize dosiahnes vlasne urcite paralelne
spracovanie: zaroven Ti Windows napr. cita udaje do buffera
(co chvilu trva) a zaroven Tvoja aplikacie tento cas vyuzije
na nieco ine (napr. pasik pre uzivatela, nech este caka ;-) ).
Keby nebol k dispozicii overlapping a chcel by si nieco
take dosiahnut, potreboval by si vytvorit zvlastny thread
a potom tie thready komplikovanym sposobom prinutit
aby sa nepredbiehali a neblokovali, atd.

> Napriklad pro DB server je to idealni technika, ale pro COM se to vubec
> nehodi,
> to je proste obchazeni spatne narzeneho API.

to si mozno Ty myslis. Seriova komunikacia je komplikovane
urobena vo Windowse (hlavne tie eventy a specialne funkcie),
ale overloading samotny je podla mna velmi jednoducha
a uzitocna zalezitost.

Erik


Jak pres ADO zjisti pocet ovlivnenych radku

[*] Martin Krim <krim(zv)nzservis(tec)cz> - 15.3.2004 16:21:10

DD,

zajimalo by me jak v Delphi pres ADO zjisti kolik muj aktualizacni prikaz ovlivnil radku, chtel bych udelat podobny vypis tak jako je v QueryAnalyzeru (!!! nepotrebuji vedet jestli doslo k chybe nebo jaky je vypis chyby, to umim :-))

Diky

MK

Programek na mazani log souboru na disku

[*] Frantisek Mlcoch <frantisek.mlcoch(zv)vsb(tec)cz> - 15.3.2004 16:05:08

Asi to sem moc nepatri, ale moc by mi pomhlo to vyresit.

Nevite nekdo o nejake utilite (programu), ktery by fungoval z prikazove radky s
parametry nebo jako sluzba. A umel by podle zadanych parametru (cesta, volne
misto na disku, pocet dnu nebo datum) projit adresare a pod adresare v zadane
ceste a smazat vse co je starsi nez zadane datum (pocet dnu). Pripadne tolik
souboru, aby volne misto na disku, kde se nachazi adresar z cesty, nekleslo pod
zadanou hodnotu.

Staci kdyz to bude umet aspon jedno z toho (soubory starsi nez pocet dnu nebo
velikost volneho mista na disku). Potrebuji totiz mazat log souboru na serveru s
WinNT.

Diky moc F.

seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 15:36:58



> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Petr Vones
> Sent: Monday, March 15, 2004 2:47 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: seriova komunikace a tuhnouci win
>
>
> From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> > Zalezi na co, overlaped pri cekani na znak je celkem k
> nicemu, hodi
> > se pouze na udalost (DSR, CSC, Ring).
>
> Vznikne udalost kdyz byl znak umisten do bufferu.

Pokud si uzivatel nenastavi vsechny signaly, jelikoz je potrebuje.
Jinak zalezi na tom, jestli OS maskuje preruseni na UARTu.
Pokud ano tak to to masinu stejne slozi (obsluha IRQ je dost
pracna).

>
> > Jenze pokud je to zapnuto, a DSR kopituje prubeh na Tx,
> nebo Rx, tak
> > ti pri 115200 prichazi 1 152 000 preruseni za sekundu, to nejsi
> > schopen v aplikaci zvladnout.
>
> Proc vsechny, vzdyt je to jen upozorneni ze v bufferu jsou
> nejaka data a ty vsechny prectu naraz, ne znak po znaku.
> Dokonce i v pripade ze ctes znak po znaku v tom nebyl zadny
> problem (a bylo to nejake stare P 200). Vetsina problemu
> prameni spise ze spatneho navrhu celeho kodu.

Otazkou je, jak rychle komunikujes, pokud je to 1Mbit, tak uz to neni
sranda
a pokud tech komunikaci vice, ...

>
> > Overlaped pri psani komunikace v samostatnem vlakne je dle
> meho nazoru
> > zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
> a dochazi
> > k intenzivnimu prepinani kontextu.
>
> Neni problem mit i 100 threadu, kdyz vetsinu casu stejne nic
> nedelaji ;-)

Souhlas. Jen je otazkou, jak pak pouzijes WaitComEvent.

> Ten timeout je prave neprijemny, protoze nemuzes cekani
> rychle ukoncit kdyz je potreba. Takze mas bud maly timeout,
> potom se zbytecne zatezuje CPU neustalym zjistovanim stavu
> nebo velky kde zase dlouho trva nez tu funkci ukoncis. Tento
> zpusob vlastne spojuje vsechny mozne nevyhody. Overlapped
> sice vypada na prvni pohled vice komplikovane, ale pokud se
> spravne napise je ve vetsine pripadu vysledek lepsi.

Hmm a jab by mel navrh s overlaped vypadat ?

Ja standartne cekam na tri veci:
1. az budu mit co odesilat
2. az odeslu data
3. az mi data prijdou

Coz pri blokujicich operacich je celkem sranda.

Slavek


Dump databaze (extrakce dat, ne struktury)

[*] Tomas Madle <rainbow(zv)replac-bm(tec)cz> - 15.3.2004 15:26:56

> > no jo, to je znacne lepsi zpusob, dik za pouceni
>
> Jo a mel bys vedet, ze kazda zmena tabulky zvedne
> interni pocitadlo zmen o 1. Mas 255 zmen, potom uz
> ti to server nedovoli a musis udelat Backup/Restore,
> ktery pocitadlo vynuluje.


Da se nekde zjistit, jaka je aktualni hodnota totohle pocitadla?> <reklama>
> Zkuseni doporucuji knihu Pavla Cisare. Presny nazev
> ted nevim, ale je to AFAIK jedina kniha o IB/FB,
> ktera vysla v cestine.
> </reklama>


No jo, ja ji mam no, ale obcas si proste neprectu vsechno co bych mel. Jinak
je dobra a hodne pomohla.

Tomas


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 15:14:53

> > Zalezi na co, overlaped pri cekani na znak je celkem k
> nicemu, hodi
> > se pouze na udalost (DSR, CSC, Ring).
>
> overlapped nie je ziadne cakanie na udalost, nemyl si
> overlapped s eventami, kazde je to o niecom inom

Ja si to nepletu, ale overlaped pri pouziti pri programovani
async. komunikace (predpokladam, ze se bavime jeste
porad o komunikaci, a ne o souborech, tam je to uplne o necem
jinem) pouze pri cekani na udalost na com portu.
Vyjimkou muze byt pouziti overlaped pri separatni vlaknech,
jedno pro cteni, druje pro zapis, ale jeste jsem s timto
nesetkal.

>
> > Jenze pokud je to zapnuto, a DSR kopituje prubeh na Tx,
> nebo Rx, tak
> > ti pri 115200 prichazi 1 152 000 preruseni za sekundu, to nejsi
> > schopen v aplikaci zvladnout.
>
> aplikacia nikdy neriesi prerusenia, to riesi driver

Jo, jezne ten driver ti nastavi flag pro waitComEvent, ten flag ti
zpusobi
udalost ve tve aplikaci, ....
Jinak 1mil. preruseni za sekundu je uz celkem problem.
Moje testy rikaji, ze 486 v dosu zvladne neco kolem 80 - 130 tisic
(obsluha cca 30 asm instrukci).

>
> > Zde by napriklad obycejny pooling byl mnohem lepsi.
> > Jinak jsem na WinXP zazil ovladac modemu, ktery pri overlaped vzal
> > 100% strojoveho casu CPU (Pentium 4 M 2.2 GHz). Pri spojeni COM +
> > BlueTooth zase nejde ukoncit (to jsem neresil, oboje je problem
> > spatnych driveru, ale bez overlaped to jede, sice blbe, ale jede).
>
> ked vyrobca modemu nevie napisat alebo pouzit driver, tak to
> este neznamena, ze overlapping nie je dobry komunikacny mechanizmus

Tohle je ale pristup teoretika, kdyz se vratis do praxe, tak je vsechno
jinak.
Schvalne, dokazes donit vyrobce aby to opravil, je ne, tak jsem to
obesel.

>
> > Overlaped pri psani komunikace v samostatnem vlakne je dle
> meho nazoru
> > zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
> a dochazi
> > k intenzivnimu prepinani kontextu.
>
> ked pouzivas overlapping nepotrebujes vytvarat zvlastny
> thread a zrejme to je aj ucelom overlapped komunikacie (a
> obecne asynchronnych volani): predist vytvaraniu threadov,
> lebo synchronizovat thready je daleko vecsi problem ako
> overlapped komunikacia

Hmm, a vis o cem se tu vlastne bavime ?>
> > Problemem te wait funkce je, ze je blbe navrzena, spise by
> se hodilo
> > neco jako select z TCP s timeoutem, aby nebylo nutne tvorit
> to dalsi
> > pomocne vlakno a sychronizacni objekty.
> >
> > Jinak pokud nepotrebujete udalost od pinu, tak opravdu neni
> duvod jit
> > do overlaped (s dobrymy drivery a spravnou architekturou
> komunikace by
> > nemel byt vyrazny rozdil ve funkcnosti).
>
> overlapped umoznuje aplikacii zabranit zbytocnemu cakaniu na
> vyslanie/prijem udajov, cize nie je ziadny dovod nepouzivat ho.

Jen me opravdu nenapada, k cemu by to mohlo byt dobre pri realizaci
ser. komunikace kdyz 90% protokolu na ser. linku jsou typu dotaz odpoved

(nic jineho na RS485 stejne nechodi).
Hlavne overlaped je navrzeno pro simultani pristup vice vlaken (ne
jednoho,
to by bylo k nicemu) k souboru.
Napriklad pro DB server je to idealni technika, ale pro COM se to vubec
nehodi,
to je proste obchazeni spatne narzeneho API.

Slavek


Generator v MS-SQL

[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 15.3.2004 14:46:48


> From: Vlastimil Bardon [mailto:bardon(zv)akord-soft(tec)cz]
> J bych to resil tabulkou do ktere bych si zapsal tu hodnotu a
> procedurou, nebo jeste lepe funkci, ktera by tu hodnotu v

V MSSQL neni mozno ve fci nic menit, funkce nemuze
mit sideeffect -> takze je mozna pouze procedura.
Pokud je insert dokladu provaden v SP muze toto
cislo pridelit tato primo tato SP.

Pavel

> tabulce precetla, inkrementovala a zapsala zpet do tabulky.
> To vse v transakci a pro jistotu s explicitnim zamkem aby
> nemohlo dojit k tomu, ze dva procesy prectou stejnou hodnotu.
>

Jak nainstalovat ActiveX do delphi?

[*] Jaromir Cermak <cermak(zv)procom(tec)cz> - 15.3.2004 14:58:50

Ahoj vsichni

Prosim poradte. Mam D7 a ActivX komponentu napsanou nejspis v C++ Builderu. Vytvoril jsem si balicek, pridal do nej soubor .OCX, balicek jsem zbuildoval a nainstaloval activex na paletu komponent. Podarilo se mi vytvorit formular s touto komponentou, ale prvni volani metody komponenty zahlasi chybu "Nespravnyretezec tridy", co mam jeste udelat nebo kde muze byt problem.
Jaromir Cermak


seriova komunikace a tuhnouci win

[*] Petr Vones <pvones(zv)vol(tec)cz> - 15.3.2004 14:46:47

From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> Zalezi na co, overlaped pri cekani na znak je celkem k nicemu, hodi
> se pouze na udalost (DSR, CSC, Ring).

Vznikne udalost kdyz byl znak umisten do bufferu.

> Jenze pokud je to zapnuto, a DSR kopituje prubeh na Tx, nebo Rx,
> tak ti pri 115200 prichazi 1 152 000 preruseni za sekundu, to nejsi
> schopen v aplikaci zvladnout.

Proc vsechny, vzdyt je to jen upozorneni ze v bufferu jsou nejaka data a ty
vsechny prectu naraz, ne znak po znaku. Dokonce i v pripade ze ctes znak po
znaku v tom nebyl zadny problem (a bylo to nejake stare P 200). Vetsina
problemu prameni spise ze spatneho navrhu celeho kodu.

> Overlaped pri psani komunikace v samostatnem vlakne je dle meho
> nazoru zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
> a dochazi k intenzivnimu prepinani kontextu.

Neni problem mit i 100 threadu, kdyz vetsinu casu stejne nic nedelaji ;-)

> Problemem te wait funkce je, ze je blbe navrzena, spise by se hodilo
> neco jako select z TCP s timeoutem, aby nebylo nutne tvorit to dalsi
> pomocne vlakno a sychronizacni objekty.

Ten timeout je prave neprijemny, protoze nemuzes cekani rychle ukoncit kdyz je
potreba. Takze mas bud maly timeout, potom se zbytecne zatezuje CPU neustalym
zjistovanim stavu nebo velky kde zase dlouho trva nez tu funkci ukoncis. Tento
zpusob vlastne spojuje vsechny mozne nevyhody. Overlapped sice vypada na prvni
pohled vice komplikovane, ale pokud se spravne napise je ve vetsine pripadu
vysledek lepsi.

Petr Vones


seriova komunikace a tuhnouci win

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 14:44:46

> Zalezi na co, overlaped pri cekani na znak je celkem k nicemu, hodi
> se pouze na udalost (DSR, CSC, Ring).

overlapped nie je ziadne cakanie na udalost, nemyl si overlapped s eventami,
kazde je to o niecom inom

> Jenze pokud je to zapnuto, a DSR kopituje prubeh na Tx, nebo Rx,
> tak ti pri 115200 prichazi 1 152 000 preruseni za sekundu, to nejsi
> schopen v aplikaci zvladnout.

aplikacia nikdy neriesi prerusenia, to riesi driver

> Zde by napriklad obycejny pooling byl mnohem lepsi.
> Jinak jsem na WinXP zazil ovladac modemu, ktery pri overlaped
> vzal 100% strojoveho casu CPU (Pentium 4 M 2.2 GHz).
> Pri spojeni COM + BlueTooth zase nejde ukoncit (to jsem neresil,
> oboje je problem spatnych driveru, ale bez overlaped to jede, sice
> blbe, ale jede).

ked vyrobca modemu nevie napisat alebo pouzit driver, tak to
este neznamena, ze overlapping nie je dobry komunikacny
mechanizmus

> Overlaped pri psani komunikace v samostatnem vlakne je dle meho
> nazoru zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
> a dochazi k intenzivnimu prepinani kontextu.

ked pouzivas overlapping nepotrebujes vytvarat zvlastny thread
a zrejme to je aj ucelom overlapped komunikacie (a obecne
asynchronnych volani): predist vytvaraniu threadov, lebo synchronizovat
thready je daleko vecsi problem ako overlapped komunikacia

> Problemem te wait funkce je, ze je blbe navrzena, spise by se hodilo
> neco jako select z TCP s timeoutem, aby nebylo nutne tvorit to dalsi
> pomocne vlakno a sychronizacni objekty.
>
> Jinak pokud nepotrebujete udalost od pinu, tak opravdu neni duvod
> jit do overlaped (s dobrymy drivery a spravnou architekturou komunikace
> by nemel byt vyrazny rozdil ve funkcnosti).

overlapped umoznuje aplikacii zabranit zbytocnemu cakaniu na vyslanie/prijem
udajov, cize nie je ziadny dovod nepouzivat ho.

Erik

Tisk - okraje

[*] Petr Daricek <petr.daricek(zv)seznam(tec)cz> - 15.3.2004 14:16:43

Ahoj,
delam aplikaci, ktera ma tiskovy vystup a nemuzu nikde najit jakym zpusobem nastavit okraje pro tisk. Neco jako je ve wordu, levy okraj pravy okraj atd.
Petr
____________________________________________________________
www.BaterieDoMobilu(tec)cz - nejsirsi sortiment kvalitnich baterii se zarukou za super ceny od 199 Kc, postovne od 2 kusu ZDARMA.
http://ad2.seznam(tec)cz/redir.cgi?instance=72312%26url=http://www.bateriedomobilu(tec)cz

Generator v MS-SQL

[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 15.3.2004 13:56:33

Autoincrement resetovat jde, MSSQL nijak nezajistuje ze cislo v
autoincrement poli je jednoznacne !

Pavel

> From: Jiri Foldyna [mailto:jiri.f(zv)avizo(tec)cz]
> > Muzes to udelat jako autoincrement sloupec a
> > KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU
> > jako vypocitavany sloupec. Pokud ti nevadi mezery, tak je to asi
> > nejjednodusi.
>
> Jako autoinkrement asi ne, protoze ten nejde resetovat (to
> poradove cislo se
> kazdy rok pocita odznova). Asi to udelam hodne pres koleno -
> v transakci
> najdu nejvyssi pouzite cislo v ramci pobocky a roku,
> inkrementuju a zkusim
> pouzit. Jen si nejsem jisty, co se stane, kdyz se o totez pokusi dva
> uzivatele najednou - bude to stacit zabalit do transakce ?
>
> Diky
>
> Jiri Foldyna
> mailto:jiri.f(zv)avizo(tec)cz
>
> > > > Pokud to ma byt nezavisle na transakcich,
> > > > je to nutno napsat do DLL a ulozit do tabulky.
> > > > Pokud to muze byt nezavisle na transakci tak opet jedine
> > do tabulky.
> > > > Primy zapis do sysobject neni doporucitelny, znamena uvolnit
> > > > tuto moznost na DB (back-door).
> > >
> > > Diky, takze pokud to spravne chapu, MS SQL skutecne nic
> > > takoveho nema ?
> > > Myslel jsem, ze jsem jenom treba blbe hledal v dokumentaci.
> > > Potrebuji to pro
> > > generovani unikatni polozky typu
> > > KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU, kde
> > > PORADOVE_CISLO je
> > > inkrementovany 6-timistny integer, diry v rade moc nevadi,
> > > jde spis o urceni
> > > poradi. Chtel jsem, aby to generoval server sam, na
> Oraclu mi to bez
> > > problemu funguje...
> > >
> > > > > potreboval bych v MS SQL 7.5 realizovat neco jako je
> > > > > generator v Oracle
> > > > > (pojmenovany automaticky inkrementovany integer MIMO
> > > > > tabulku). Nevite nekdo,
> > > > > jak na to ?

Generator v MS-SQL

[*] Vlastimil Bardon <bardon(zv)akord-soft(tec)cz> - 15.3.2004 14:10:36

J bych to resil tabulkou do ktere bych si zapsal tu hodnotu a procedurou, nebo jeste lepe funkci, ktera by tu hodnotu v tabulce precetla, inkrementovala a zapsala zpet do tabulky. To vse v transakci a pro jistotu s explicitnim zamkem aby nemohlo dojit k tomu, ze dva procesy prectou stejnou hodnotu.

Ono to vypada hloupe, ze se kvuli tomu musi udelat tabulka navic, ale kdyz to vezmes z pohledu, ze generator je objekt v databazi a tabulka je take objekt v databazi, tak to zas tak moc nevadi. Generator je asi elegantnejsi ale pres tabulku dojdu ke stejnemu vysledku.

-----Original Message-----
From: Jiri Foldyna [mailto:jiri.f(zv)avizo(tec)cz]
Sent: Monday, March 15, 2004 11:38 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Generator v MS-SQL


Ahoj,

potreboval bych v MS SQL 7.5 realizovat neco jako je generator v Oracle
(pojmenovany automaticky inkrementovany integer MIMO tabulku). Nevite nekdo,
jak na to ?

Zdravim

Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 14:10:35

Zalezi na co, overlaped pri cekani na znak je celkem k nicemu, hodi
se pouze na udalost (DSR, CSC, Ring).
Jenze pokud je to zapnuto, a DSR kopituje prubeh na Tx, nebo Rx,
tak ti pri 115200 prichazi 1 152 000 preruseni za sekundu, to nejsi
schopen v aplikaci zvladnout.
Zde by napriklad obycejny pooling byl mnohem lepsi.
Jinak jsem na WinXP zazil ovladac modemu, ktery pri overlaped
vzal 100% strojoveho casu CPU (Pentium 4 M 2.2 GHz).
Pri spojeni COM + BlueTooth zase nejde ukoncit (to jsem neresil,
oboje je problem spatnych driveru, ale bez overlaped to jede, sice
blbe, ale jede).
Overlaped pri psani komunikace v samostatnem vlakne je dle meho
nazoru zbytecnost, jelikoz se pri tom vytvari dalsi pomocne vlakno
a dochazi k intenzivnimu prepinani kontextu.

Problemem te wait funkce je, ze je blbe navrzena, spise by se hodilo
neco jako select z TCP s timeoutem, aby nebylo nutne tvorit to dalsi
pomocne vlakno a sychronizacni objekty.

Jinak pokud nepotrebujete udalost od pinu, tak opravdu neni duvod
jit do overlaped (s dobrymy drivery a spravnou architekturou komunikace
by nemel byt vyrazny rozdil ve funkcnosti).

Slavek

> A v cem by mel byt problem ? Naopak overlapped je ten
> nejlepsi zpusob protoze ti umozni snad cekat na udalost ve
> Wait funkci. Me prijde spise slozitejsi pripad, kdyz ho nepouzijes.

seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 14:14:42

Podle mne to nesouvisi s autodetekci, jak by asi pak fungovala normalni
ser. komunikace, pokud by windows hrabali do prubehu komunikace,
tak by komunikace nefungovala.
Autodetekce muze pusobit problem pouze pokud nic nekomunikuje
, jinak by mel mit program vyhradni pristup k portu.

U MS a Linuxu je ale mozne uplne vse :((

Slavek

>
> no a neda se opravdu nejak primo zakazat ve windows autodetekce
> zarizeni na seriovem portu ?
>

seriova komunikace a tuhnouci win

[*] Petr Vones <pvones(zv)vol(tec)cz> - 15.3.2004 13:36:14

From: "Matejcek Petr" <konference(zv)crhov.komfi(tec)cz>
> slabsi pocitac to neni cca 2GHz , kabel jsem taky zkontroloval a ma
> zapojene jen 3 draty , Delphi 7

A co zkusit to koumikaci napsat v necem jinem ?

Petr Vones

seriova komunikace a tuhnouci win

[*] Matejcek Petr <konference(zv)crhov.komfi(tec)cz> - 15.3.2004 13:36:10

no a neda se opravdu nejak primo zakazat ve windows autodetekce
zarizeni na seriovem portu ?

delphin(zv)post(tec)cz napsal(a):

>>To by melo resit nastaveni komunikace "rizeni toku" na zadne.
>>Stejne je to dnes jedinny pouzitelne reseni (ruzne typy linek,
>>kabelu, protistran).
>>
>>
>
>To jsem si myslel taky, ale neresi. Jsem si 100% jisty, ze jsem nemel
>zapnuto zadne rizeni toku.
>
>
>
>
>

seriova komunikace a tuhnouci win

[*] Petr Vones <pvones(zv)vol(tec)cz> - 15.3.2004 13:34:06

From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> Pak je jeste otazka, zda nebylo pouzit overlaped pristup
> s odchytavanim udalosti.
> Typicky vetsina komponent na ser. komunikaci.
> Tam by mohl byt jeste problem.

A v cem by mel byt problem ? Naopak overlapped je ten nejlepsi zpusob protoze
ti umozni snad cekat na udalost ve Wait funkci. Me prijde spise slozitejsi
pripad, kdyz ho nepouzijes.

Petr Vones


Update SQL StoredProc vs Post

[*] ludek.paral(zv)quick(tec)cz - 15.3.2004 13:23:59

Ahoj,

mne se nejvic osvedcily TIBQuery a TIBUpdateSQL, funguje 100%.Bud pouzijes TIBQuery a v sql das insert nebo pres IBUpd... udelas normalne IBQuery.FieldByName...

Pokud v TIBQuery das v sql "select * from TableName", napojis datasource, das UPdateObject "IBUpdateSQL" atd a pak das v IBUpdateSQL1 kliknes dblclickem, tak se Ti objevi krasny pruvodce, kde muzes nechat "Generate SQL" atd. Navic samozrejme muzes v TIBQuery dat dblclickem moznost pripojit Fields, kde zas muzes dat format zobrazeni, caption, atd

Na TIBQuery muzes napojit TDatasource a pak na db-aware komponenty (pozor ale na rychlost hromadneho zpracovani-nedoporucuji delat u velkych db)

Ludek

seriova komunikace a tuhnouci win

[*] Matejcek Petr <konference(zv)crhov.komfi(tec)cz> - 15.3.2004 13:13:57

slabsi pocitac to neni cca 2GHz , kabel jsem taky zkontroloval a ma
zapojene jen 3 draty , Delphi 7

Petr Vones napsal(a):

>From: "Matejcek Petr" <konference(zv)crhov.komfi(tec)cz>
>
>
>> mam program v delphi ktery komunikuje po seriove lince s
>>programovatelnym automatem. Pouzivam komponenty Async Pro a stava se mi
>>nahodne nasledujici :
>>
>>
>
>AsyncPro zbytecne moc zatezuje system synchronizaci s hlavnim threadem (neni
>treba aby se vsechno provadelo v nem) cimz muze na slabsim pocitaci dojit k
>tomu, ze bude aplikace "tuha". Trochu prekvapive je ze to ovlivnuje i dalsi
>procesy. V jake verzi Delphi to je ?
>
>Petr Vones
>
>
>
>
>

Generator v MS-SQL

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 15.3.2004 13:11:56

> Muzes to udelat jako autoincrement sloupec a
> KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU
> jako vypocitavany sloupec. Pokud ti nevadi mezery, tak je to asi
> nejjednodusi.

Jako autoinkrement asi ne, protoze ten nejde resetovat (to poradove cislo se
kazdy rok pocita odznova). Asi to udelam hodne pres koleno - v transakci
najdu nejvyssi pouzite cislo v ramci pobocky a roku, inkrementuju a zkusim
pouzit. Jen si nejsem jisty, co se stane, kdyz se o totez pokusi dva
uzivatele najednou - bude to stacit zabalit do transakce ?

Diky

Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz

> > > Pokud to ma byt nezavisle na transakcich,
> > > je to nutno napsat do DLL a ulozit do tabulky.
> > > Pokud to muze byt nezavisle na transakci tak opet jedine
> do tabulky.
> > > Primy zapis do sysobject neni doporucitelny, znamena uvolnit
> > > tuto moznost na DB (back-door).
> >
> > Diky, takze pokud to spravne chapu, MS SQL skutecne nic
> > takoveho nema ?
> > Myslel jsem, ze jsem jenom treba blbe hledal v dokumentaci.
> > Potrebuji to pro
> > generovani unikatni polozky typu
> > KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU, kde
> > PORADOVE_CISLO je
> > inkrementovany 6-timistny integer, diry v rade moc nevadi,
> > jde spis o urceni
> > poradi. Chtel jsem, aby to generoval server sam, na Oraclu mi to bez
> > problemu funguje...
> >
> > > > potreboval bych v MS SQL 7.5 realizovat neco jako je
> > > > generator v Oracle
> > > > (pojmenovany automaticky inkrementovany integer MIMO
> > > > tabulku). Nevite nekdo,
> > > > jak na to ?
>
>
>

seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 12:49:53

Pak je jeste otazka, zda nebylo pouzit overlaped pristup
s odchytavanim udalosti.
Typicky vetsina komponent na ser. komunikaci.
Tam by mohl byt jeste problem.
Pripadne by mohlo dojit k tomu, ze signaly DSR, CTS budou kopirovaty
(kapacitni vazba)
Tx, nebo Rx a pokud Win nemaskuji dane preruseni, tak to muze zahltit
libovolny CPU (miliony IRQ se neda rozumne zvladnout).

Slavek

> > To by melo resit nastaveni komunikace "rizeni toku" na
> zadne. Stejne
> > je to dnes jedinny pouzitelne reseni (ruzne typy linek, kabelu,
> > protistran).
>
> To jsem si myslel taky, ale neresi. Jsem si 100% jisty, ze
> jsem nemel zapnuto zadne rizeni toku.

Generator v MS-SQL

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 15.3.2004 12:49:53

> Pokud to ma byt nezavisle na transakcich,
> je to nutno napsat do DLL a ulozit do tabulky.
> Pokud to muze byt nezavisle na transakci tak opet jedine do tabulky.
> Primy zapis do sysobject neni doporucitelny, znamena uvolnit
> tuto moznost na DB (back-door).

Diky, takze pokud to spravne chapu, MS SQL skutecne nic takoveho nema ?
Myslel jsem, ze jsem jenom treba blbe hledal v dokumentaci. Potrebuji to pro
generovani unikatni polozky typu
KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU, kde PORADOVE_CISLO je
inkrementovany 6-timistny integer, diry v rade moc nevadi, jde spis o urceni
poradi. Chtel jsem, aby to generoval server sam, na Oraclu mi to bez
problemu funguje...

Zdravim

Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz

> > potreboval bych v MS SQL 7.5 realizovat neco jako je
> > generator v Oracle
> > (pojmenovany automaticky inkrementovany integer MIMO
> > tabulku). Nevite nekdo,
> > jak na to ?

Generator v MS-SQL

[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 15.3.2004 13:03:55

Muzes to udelat jako autoincrement sloupec a
KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU
jako vypocitavany sloupec. Pokud ti nevadi mezery, tak je to asi
nejjednodusi.

Pavel

> From: Jiri Foldyna [mailto:jiri.f(zv)avizo(tec)cz]
> > Pokud to ma byt nezavisle na transakcich,
> > je to nutno napsat do DLL a ulozit do tabulky.
> > Pokud to muze byt nezavisle na transakci tak opet jedine do tabulky.
> > Primy zapis do sysobject neni doporucitelny, znamena uvolnit
> > tuto moznost na DB (back-door).
>
> Diky, takze pokud to spravne chapu, MS SQL skutecne nic
> takoveho nema ?
> Myslel jsem, ze jsem jenom treba blbe hledal v dokumentaci.
> Potrebuji to pro
> generovani unikatni polozky typu
> KOD_POBOCKY+ROK+MESIC+PORADOVE_CISLO_V_RAMCI_ROKU, kde
> PORADOVE_CISLO je
> inkrementovany 6-timistny integer, diry v rade moc nevadi,
> jde spis o urceni
> poradi. Chtel jsem, aby to generoval server sam, na Oraclu mi to bez
> problemu funguje...
>
> > > potreboval bych v MS SQL 7.5 realizovat neco jako je
> > > generator v Oracle
> > > (pojmenovany automaticky inkrementovany integer MIMO
> > > tabulku). Nevite nekdo,
> > > jak na to ?

seriova komunikace a tuhnouci win

[*] Petr Vones <pvones(zv)vol(tec)cz> - 15.3.2004 12:37:51

From: "Matejcek Petr" <konference(zv)crhov.komfi(tec)cz>
> mam program v delphi ktery komunikuje po seriove lince s
> programovatelnym automatem. Pouzivam komponenty Async Pro a stava se mi
> nahodne nasledujici :

AsyncPro zbytecne moc zatezuje system synchronizaci s hlavnim threadem (neni
treba aby se vsechno provadelo v nem) cimz muze na slabsim pocitaci dojit k
tomu, ze bude aplikace "tuha". Trochu prekvapive je ze to ovlivnuje i dalsi
procesy. V jake verzi Delphi to je ?

Petr Vones


Firebird problemy

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 12:41:52

>
> 1 Kdyz zmenim sloupec z NOT NULL na NULL, Firebird si toho
> casto nevsimne a musim ho restartovat. Delam neco spatne?

Jak to menis ? ALTER TABEL xxx ALTER COLUMN ... ?

>
> 2 Dale pouzivam jako primarni klic typ BIGINT, ale vetsinou,
> kdyz takhle vytvorim vazbu z jine tabulky cizim klicem, tak
> nefunguje (nelze zadat hodnoty). Nekdy ho musim vytvorit jako
> INTEGER a zmenit na BIGINT, ale vesmes neni univerzalni
> postup, vzdycky zabere neco jineho. Nekdy to projde
> bezproblemu napoprve.

Zkus poslat skript (cast skriptu), ktera neprojde.
Kript by mel byt kompatibilni s isql (nebo wisql).

>
> 3. Naplnil jsem si tabulku, zhruba 400 000 vet. V ni je
> sloupec KLIC - CHAR(22). Vsechny vetu vymazu a nastavim na
> sloupci KLIC ze ma byt unikatni a not nul. Po tohle akci si
> muzu zajit na kafe a to poradne velke.
> Disk jede na maximum asi 15minut.

Opet, jek menis NULL a NOT NULL ?
Jinak ty vety se skutecne vymazou az probejne sweep (nekdy i drive,
ale o tom v tvem pripade pochybuji).

>
> 4 Neprisel jsem na zpusob, jak prejmenovat Taulku? Lze to nejak?

Vytvorit novou a data do ni presypat.

Jakou verzi FB pouzivas ?
Jaky nastroj pro FB pouzivas ?

Slavek


seriova komunikace a tuhnouci win

[*] delphin(zv)post(tec)cz - 15.3.2004 12:31:49

> To by melo resit nastaveni komunikace "rizeni toku" na zadne.
> Stejne je to dnes jedinny pouzitelne reseni (ruzne typy linek,
> kabelu, protistran).

To jsem si myslel taky, ale neresi. Jsem si 100% jisty, ze jsem nemel
zapnuto zadne rizeni toku.

Always on top

[*] Petr Daricek <petr.daricek(zv)seznam(tec)cz> - 15.3.2004 12:21:48

> Vite nekdio jak docilit zobrazovani okna stale na vrchu vsech
> ostatnich oken, tzv. always on top?
>
> Diky Jakub

Ahoj,
nevim jestli te spravne chapu, ale ve formularich je vlastnost FormStyle, nastav ji na fsStyOnTop a je to. Samozrejme pokud vytvoris vic takovych oken, tak jedno muze byt prekryte jinym, ktere ma take StayOnTop.
Petr


____________________________________________________________
www.BaterieDoMobilu(tec)cz - nejsirsi sortiment kvalitnich baterii se zarukou za super ceny od 199 Kc, postovne od 2 kusu ZDARMA.
http://ad2.seznam(tec)cz/redir.cgi?instance=72312%26url=http://www.bateriedomobilu(tec)cz

Always on top

[*] Jiri Matejka <matejka(zv)stemmark(tec)cz> - 15.3.2004 12:05:44

Nevim jak moc je to spolehlive, ale zkus pouzit Form.FormStyle:=fsStayOnTop.

Jirka Matejka

----- Original Message -----
From: "Milos J. Hrach" <delphi_konf(zv)post(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, March 15, 2004 11:45 AM
Subject: Always on top


> Vite nekdio jak docilit zobrazovani okna stale na vrchu vsech
> ostatnich oken, tzv. always on top?
>
> Diky Jakub


Firebird problemy

[*] Pavel Cisar <pcb(zv)atlas(tec)cz> - 15.3.2004 12:05:45

Haj hou!

On 15 Mar 2004 at 11:09, Dalibor wrote:

> Ahoj, zacal jsem delat s Firebirdem, ale narazil jsem na par problemu
> s kterymi bych potreboval pomoci
>
> 1 Kdyz zmenim sloupec z NOT NULL na NULL, Firebird si toho casto
> nevsimne a musim ho restartovat. Delam neco spatne?

Firebird zmenu z NOT NULL na NULLABLE nepodlporuje. Ze to nektere
nastroje umi, je jina vec, anzto se hrabou v obsahu systemovych
tabulek. Ze na to Firebird hned nereaguje je vec metadata cache,a je
to v celku normalni.


> 2 Dale pouzivam jako primarni klic typ BIGINT, ale vetsinou, kdyz
> takhle vytvorim vazbu z jine tabulky cizim klicem, tak nefunguje
> (nelze zadat hodnoty). Nekdy ho musim vytvorit jako INTEGER a zmenit
> na BIGINT, ale vesmes neni univerzalni postup, vzdycky zabere neco
> jineho. Nekdy to projde bezproblemu napoprve.

Tady fakt z hlavy nevim. Mozna je to chyba nastroje nebo FB, mozna je
to nekde jinde.

> 3. Naplnil jsem si tabulku, zhruba 400 000 vet. V ni je sloupec KLIC -
> CHAR(22). Vsechny vetu vymazu a nastavim na sloupci KLIC ze ma byt
> unikatni a not nul. Po tohle akci si muzu zajit na kafe a to poradne
> velke. Disk jede na maximum asi 15minut.

A co jsi cekal ? Pro UNIQUE se vytvari index, a vytvoreni indexu si
vynucuje precteni cele tabulky a tudiz kompletni garbage collection
(nenech se zmast tim, ze je vlastne prazda, to je pouze logicky,
fyzicky bude az po GC). Pokud na tabulce jsou i nejake indexy, tak se
u nich take provadi GC. U indexu je GC pekna darda, obzvlaste pokud
je db stranka velka a duplicit hodne.

S pozdravem
Pavel Cisar (ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix(tec)cz
Vse co potrebujete pro Firebird a InterBase


Vyuka programovani - SGP Baltazar?

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.3.2004 12:19:47

Karel Kral wrote:

> Jde mi o to, ze bych sveho 8 leteho syna chtel
> nejak vest k programovani

Kdybys napsal ze "muj 8-lety syn se zacal zajimat o programovani"
tak budiz, ale tohle? To je postoj tak z 19. stoleti :-((

> a uvazuji, zda je SGP Baltazar schudna
> cesta.

Pro 8 let asi ne. Pokud jde o proniknuti do zakladu algoritmizace a
prislusnou
vekovou kategorii, tak bych doporucoval Baltika 3 (www.sgp(tec)cz). Po zvladnuti
problematiky lze pak prejit na Baltazara s tim, ze se dite seznami se
syntaxi jazyka C/C++ a mozna i s JSP. Jako drb: slysel jsem, ze team Ing.
Soukupa pracuje intenzivne na verzi Baltika pro jazyk C#.

Baltik je v podstate pro deti pritazlivejsi verze Karla.
Takze moje volba by byla jednoznacna...

***
A aby to nevyznelo jako reklama ve prospech meho pritele Soukupa, tak jeste
nejaka konkurence:

http://www.gemtree(tec)cz/
http://www.bluej.org/


HTH, pf


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 12:11:46

To by melo resit nastaveni komunikace "rizeni toku" na zadne.
Stejne je to dnes jedinny pouzitelne reseni (ruzne typy linek,
kabelu, protistran).

Slavek


> Stala se mi podobna vec, taktez se projevovala jenom pri
> komunikaci a jenom na nekterych motherboardech. V aplikaci
> jsem pomoci SetCommState vypnul sledovani signalu CTS a DSR a
> naivne si myslel, ze windows bude tyto signaly ignorovat.
> Presto aplikace ve W2K nejpozdeji do pul hodiny vytuhla. Ve
> Win98 se na chvili objevily presypaci hodiny, ale vse
> fungovalo jak ma, ve WXP chvili nereagoval cely system. Cirou
> nahodou jsem zjistil, ze to "dela" 9-ti zilovy kabel, presto
> ze na druhem konci byly zapojeny jenom GND,TXD a RXD. Kdyz
> jsem pouzil jenom 3-zilovy kabel, tak to prestalo a kdyz jsem
> vratil zpatky 9-zilovy kabel a na druhem konci propojil
> CTS-RTS a DSR-DTR, tak to take prestalo. Windows tedy zrejme
> nepretrzite scanuje DSR a RTS asi pro autodetekci a
> naindukuje-li se na CTS a DSR komunikace, tak to nekdy nerozchodi.

Always on top

[*] Milos J. Hrach <delphi_konf(zv)post(tec)cz> - 15.3.2004 11:45:41

Vite nekdio jak docilit zobrazovani okna stale na vrchu vsech
ostatnich oken, tzv. always on top?

Diky Jakub

--
Surfujete pres VOLNY? Tak proc jeste nejste ve VOLNY klubu?
Nyni exkluzivne pro cleny klubu soutez o skvele ceny.
http://klub.volny(tec)cz

Vyfarbovanie substringov v TRichEdit

[*] Ivan Kozak <ivan(zv)boucek(tec)cz> - 15.3.2004 11:51:42


Narazil som na takyto problem: zobraujem cesky text v TRichEdit.

Pod W98 tobolo vzdy OK. AKonahle sme presli na XP, tak sa mi text
"rozsypava", t.j.
akonahle v texte sa objavi pismeno "e" s harkem, "r" s hackem, tak sa
nastaveny font zmeni na nejaky iny, a pri novom objaveni sa kritickych
pismen sa font zmeni naspat.

Na toto som dostal radu. Objavil sa vsak este dalsi problem.

V zaznamoch BLOB potrebujem vyhladavat a v zobraovacom TRichEdite vyfarbit
(alebo inac zvyraznit) vyhladavany retazec.

Na toto vyfarbenie pouzivam standardnu sekvenciu napr.:

SelStart:= 1;
SelLength:= 3;
SelAttributes.Color := clRed;

Problem je v tom, ze akonahle nastavim SelLength nenulove, tak sa vsetko
vyfarbi ako treba, ale pri prechode na dalsie zaznamy zostanu beznadejne
rozhodene fonty a uz sa to neda napravit, ani ked vynulujem SelLength.

Presnejsie to vyzera tak, ze ked je SelLength <> 0 tak pokial sa text
zobrazi, tak nastane to nenavratne poskodenie {alebo nastavenie niecoho},
takze zostanu rozhodene fonty bez ohladu na to, ze neskor SetLength
vynulujem. Ak vsak SetLength stihnem vynulovat este PRED ZOBRAZENIM (napr.
v On Change), tak sa fonty udrzia, ale pismena nie su vyfarbene.

To vyzera na klasicku pascu:-) Neviete niekto poradit, ako z toho von?
Pripadne, poradit nejaky iny mechanizmus vyfarbovanie, nie cez SelXXX? Alebo
pouzit nieco ine namiesto vyfarbovania?

Dik za vsetky napady:-)
Ivan Kozak

=======================
e = "e" s hackem
r = "r" s hackem

Generator v MS-SQL

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 15.3.2004 11:37:36

Ahoj,

potreboval bych v MS SQL 7.5 realizovat neco jako je generator v Oracle
(pojmenovany automaticky inkrementovany integer MIMO tabulku). Nevite nekdo,
jak na to ?

Zdravim

Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz

seriova komunikace a tuhnouci win

[*] delphin(zv)post(tec)cz - 15.3.2004 10:41:25

> pri komunikaci vetsinou kdyz PC neco prijma temer vytuhnou windows
> XP (ne uplne jen nereaguji na klavesnici a mys je takova opila )
> napadlo me ze by winXP mohly detekovat nejake zarizeni tak jsem hledal
> u M$ a nasel toto:

Stala se mi podobna vec, taktez se projevovala jenom pri komunikaci a jenom
na nekterych motherboardech. V aplikaci jsem pomoci SetCommState vypnul
sledovani signalu CTS a DSR a naivne si myslel, ze windows bude tyto signaly
ignorovat. Presto aplikace ve W2K nejpozdeji do pul hodiny vytuhla. Ve Win98
se na chvili objevily presypaci hodiny, ale vse fungovalo jak ma, ve WXP
chvili nereagoval cely system.
Cirou nahodou jsem zjistil, ze to "dela" 9-ti zilovy kabel, presto ze na
druhem konci byly zapojeny jenom GND,TXD a RXD. Kdyz jsem pouzil jenom
3-zilovy kabel, tak to prestalo a kdyz jsem vratil zpatky 9-zilovy kabel a
na druhem konci propojil CTS-RTS a DSR-DTR, tak to take prestalo. Windows
tedy zrejme nepretrzite scanuje DSR a RTS asi pro autodetekci a
naindukuje-li se na CTS a DSR komunikace, tak to nekdy nerozchodi.

seriova komunikace a tuhnouci win

[*] Matejcek Petr <konference(zv)crhov.komfi(tec)cz> - 15.3.2004 11:01:28

Mate nekdo priklad jak to napsat bez komponenty pouze ve vlakne ? jak
tam nastavovat prenos. rychlosti a vsechny mozne parametry?

diky moc PM

Slavomir Skopalik napsal(a):

>Jedinne, co muzete zkusit je monitorovani zatizeni CPU, pripadne
>misto async pro to napsat ve vlakne.
>
> Slavek
>
>
>
>
>> mam program v delphi ktery komunikuje po seriove lince s
>>programovatelnym automatem. Pouzivam komponenty Async Pro a
>>stava se mi
>>nahodne nasledujici :
>>
>> pri komunikaci vetsinou kdyz PC neco prijma temer
>>vytuhnou windows
>>XP (ne uplne jen nereaguji na klavesnici a mys je takova opila )
>>napadlo me ze by winXP mohly detekovat nejake zarizeni tak
>>jsem hledal
>>u M$ a nasel toto:
>>
>>
>>

Hledani zamestnani a cena pracovni sily

[*] ludek.paral(zv)quick(tec)cz - 15.3.2004 11:23:35

Ahoj,

na strankach www.mpsv(tec)cz jsem se dozvedel, ze programatori berou od 17 do 49 tis. hrubeho. Pokud budes hledat praci, musi se clovek sam ohodnotit a pak ocenit firmu, do ktere jde, za kolik je ochotna platit. Poznas to napr. podle jeji fakturacni hodiny. Jinak Te oceni treba u SAP, jinak u pana Vomacky, kterej fakturuje 300,-/hod.

Jinak ja radeji reknu rovnou vic a ptam se za kolik je firma ochotna moje sluzby platit.

Nezapomen, ze nekde se jede na autorske honorare a nekde nabidnou na externi fakturaci.

Ludek


Update SQL StoredProc vs Post

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.3.2004 11:21:34

> Napriklad
> bezpecnost - vkladat a menit data muze pouze SP

mozna is tim usnadnis pridelovani grantu uzivatelum.

> rychlost - SP je predkompilovana + nizzsi datovy tok

predkompilovany jsou triggery taky. insert/update pouzivam
parametrizovany a pri vetsim mnozstvi dat se pomoci prepare
vlastne taky predkompiluje.

nizzsi datovy tok? mel jsem za to, ze kdyz poslu na server
parametrizovany insert (napriklad), tak pak uz se posilaji
jenom sloupce. potom je prepare dotazu ve srovnani s daty
minimalni zatez.

> Pro pouziti SP pro aktualizaci vedou zejmena tyto duvody:
> 1. bezpecnost a jeji jednodusi rizeni,

budiz, viz vyse.

> 2. jednodusi zachovani integrity dat,

to resim triggery a nemyslim, ze SP to zvladne lepe (ale ani hure).
nicmene mi prijde integritni omezeni definovat deklarativne a
triggery jako prirozenejsi.

> 3. lepe se ladi nez triggery.

ja si myslim ze oboji se ladi stejen pracne :o)
vzhledem k nepritomnosti (server side debuderu, alespon
u IB/FB se kterym pracuju).


proste se dmnivam, ze snad krom usnadneni grantu
mi SP prinaseji vice prace a snizujou citelnost.
pokud nevim presne jak, tezko budu hledat jak mam
data vkladat. prakticky tak omezuju moznost pristupu
mimo moji aplikaci (coz se ovsem muze hodit :-).

peca

seriova komunikace a tuhnouci win

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 15.3.2004 11:17:33

> Mate nekdo priklad jak to napsat bez komponenty pouze ve vlakne ? jak
> tam nastavovat prenos. rychlosti a vsechny mozne parametry?

No, se SynaSer je to hracka... to totiz neni zadna komponenta, ale
proste nevizualni trida, takze to v threadu zavolas levou zadni.

A navic to nepouziva asynchronni volani, ale naopak synchronni volani
(neplest si to s asynchronnim a synchronnim prenosem. :-)), takze
pouziti v threadu je obzlast prijemne, nepotrebujes zadne okno na
prijimani messages, atd.
--
Lukas Gebauer.

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

Navazani stahovani souboru z NETu (SYNAPSE?)

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 15.3.2004 11:15:32

> Prave jsem si uvedomil, ze co ted budu resit je navazovani preruseneho spojeni.
> Jde to nejak pomoci SYNAPSE?

Co to je navazovani preruseneho sojeni? jakmile se ti spojeni
prerusi, musis se proste spojit znova. ;-)

pokud jsi mel na mysli navazovani na prerusene stahovani, pak zalezi
jestli to mas na mysli u FTP nebo HTTP?

V pripade FTP se podivej na parametry metody RetrieveFile.

U HTTP se podivej na property RangeStart a RangeEnd.

:-)


--
Lukas Gebauer.

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

Vyuka programovani - SGP Baltazar?

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 15.3.2004 11:01:29

> chtel bych se zeptat, zda nekdo nemate zkusenosti s vyukou programovani
> u deti? Jde mi o to, ze bych sveho 8 leteho syna chtel nejak vest k
> programovani a uvazuji, zda je SGP Baltazar schudna cesta. Nic jineho
> neznam.

IMHO jazyk LOGO je dobry na vyuku programovania, napr.
http://www.input.sk/slogo/

Erik

Pocet zaznamu v BDE

[*] Dusek Karel <dusek(zv)mudk(tec)cz> - 15.3.2004 11:11:31

Table1.RecordCount

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Ing. Jan
> Dubsky - Strojirna Palava
> Sent: Monday, March 15, 2004 9:33 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Pocet zaznamu v BDE
>
>
> Mam databazi ke ktere pristupuji pres BDE. Data zobrazuji
> pomoci DBGrid. Obsah teto tabulky se meni podle toho, jestli
> a jak mam nastaveny filtr. Jak zjistim aktualni pocet
> zaznamu v DBGridu a cislo zaznamu (ve vztahu k tomuto
> aktualnimu poctu) na kterem zaznamu se nachazim
>
> Diky Honza
>
>
>
>
>

Firebird problemy

[*] Dalibor <dalibor(zv)torola(tec)cz> - 15.3.2004 11:09:30

Ahoj, zacal jsem delat s Firebirdem, ale narazil jsem na par problemu s kterymi bych potreboval pomoci

1 Kdyz zmenim sloupec z NOT NULL na NULL, Firebird si toho casto nevsimne a musim ho restartovat.
Delam neco spatne?

2 Dale pouzivam jako primarni klic typ BIGINT, ale vetsinou, kdyz takhle vytvorim vazbu z jine tabulky cizim klicem, tak nefunguje (nelze zadat hodnoty). Nekdy ho musim vytvorit jako INTEGER a zmenit na BIGINT, ale vesmes neni univerzalni postup, vzdycky zabere neco jineho. Nekdy to projde bezproblemu napoprve.

3. Naplnil jsem si tabulku, zhruba 400 000 vet. V ni je sloupec KLIC - CHAR(22). Vsechny vetu vymazu a nastavim na sloupci KLIC ze ma byt unikatni a not nul. Po tohle akci si muzu zajit na kafe a to poradne velke.
Disk jede na maximum asi 15minut.

4 Neprisel jsem na zpusob, jak prejmenovat Taulku? Lze to nejak?


Firebird 15, D7Prof, Win2000/XP

Vyuka programovani - SGP Baltazar?

[*] Pavel Chaloupka <chaloup(zv)cmail(tec)cz> - 15.3.2004 10:41:24

Karel
http://xkarel.sourceforge.net/indexCZ.html
http://www.vssoft(tec)cz/

----- Original Message -----
From: "petr palicka" <palicka.petr(zv)seznam(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, March 15, 2004 9:55 AM
Subject: Re: Vyuka programovani - SGP Baltazar?> Ahoj,
>
> ja jsem odkojenej Karlem, ale to uz asi dneska
> nebudes mit kde behat. No, jestli byla ZX verze,
> tak mozna v nejakym emulatoru ZX spectra, nebo
> tak neco. Ja ho videl na PMD-80, IQ-161 a vlastne
> i snad DOS verzi. Je to vyuka klasickeho proceduralniho
> programovani.
>
> Mozna by ale nebylo od veci ucit ho treba JavaScript,
> kdy si vysledek muze ihned prohlednput v libovolnem
> prohlizeci.
>
> Peca
>
>
>

Navazani stahovani souboru z NETu (SYNAPSE?)

[*] js-delphi(zv)quick(tec)cz - 15.3.2004 10:55:27

Ahoj.
Prave jsem si uvedomil, ze co ted budu resit je navazovani preruseneho spojeni.
Jde to nejak pomoci SYNAPSE?
Diky Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.0.3
programator amater


TIBClientDataSet a join v CommandTextu

[*] Jan Rizek <abxsw(zv)centrum(tec)cz> - 15.3.2004 10:51:26

Jde to - musi se nastavit ProviderFlags, UpdateMode, a obslouzit metody
CDSGetTableName a CDSBeforeUpdateRecord.

:-)

JR
----- Original Message -----
From: "Jan Rizek" <abxsw(zv)centrum(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, March 15, 2004 9:59 AM
Subject: TIBClientDataSet a join v CommandTextu


> Kdyz napisu do CommandTextu select s joinem, tak se sice povede Post ale
> ApplyUpdates skonci s chybou:
>
> 'Unable to resolve records. Table name not found.'.
>
> Lze pouzit joiny v CommandTextu? A jak?
>
> --------------------
> Delphi 6.0, win XP,
>
>
>

HTTPSend - timeout

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 15.3.2004 10:39:23

> Diky za zodpovezeni mych rannich otazek, ale uz tu mam dalsi... Kdyz stahuju dany soubor pres IE, tak dobehne vzdy. Kdyz se o to pokousi pres HTTPSend.GetBinary, tak mi to docela casto nedobehne do konce. (HTTP.HTTPMethod('GET', URL) = FALSE!!!)
> Myslite si, ze by mi mohlo pomoct zmenit hodnotu HTTP.TimeOut ???
> Jestli ano, poradte na kolik - vubec nemam tuseni

To fakt tezko rict, to zalezi na tom, co se tam vlastne ve
skutecnosti deje...

Kdyz ti to volani HTTPgetmethod vrati false, co mas v
http.sock.lasterror?


--
Lukas Gebauer.

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

HTTPSend - timeout

[*] js-delphi(zv)quick(tec)cz - 15.3.2004 10:35:22

Ahoj
Diky za zodpovezeni mych rannich otazek, ale uz tu mam dalsi... Kdyz stahuju dany soubor pres IE, tak dobehne vzdy. Kdyz se o to pokousi pres HTTPSend.GetBinary, tak mi to docela casto nedobehne do konce. (HTTP.HTTPMethod('GET', URL) = FALSE!!!)
Myslite si, ze by mi mohlo pomoct zmenit hodnotu HTTP.TimeOut ???
Jestli ano, poradte na kolik - vubec nemam tuseni
Diky
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.0.3
programator amater


Update SQL StoredProc vs Post

[*] Jakub Martinek <listbox(zv)vakmb(tec)cz> - 15.3.2004 10:21:20

> > Chtel bych se zeptat na spravne ukladani dat do SQL stroje.
>
> Nejsem si jisty, jestli pouzivani SP pro ukladani dat je ta
> nejlepsi cesta. Asi jak kdy, rozhodne bych klasicky insert a
> update tak jednoduse nezatracoval. Urcite se ozve nekdo z
> tabora zastancu ukladani dat (vyhradne) pomoci SP, ale me
> nejak nenapada dostatecne padny duvod k takovemuto reseni.
>
> Peca

Napriklad
bezpecnost - vkladat a menit data muze pouze SP
rychlost - SP je predkompilovana + nizzsi datovy tok

Samozrejme, ze pouziti SP neni zadne dogma. Vseho s mirou.
Presto si myslim, ze pouzivani SP ma mit jednoznacne prioritu.

Jakub Martinek
jmartinek(zv)vakmb(tec)cz

Licencovani GIFu

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 15.3.2004 10:19:19

Puvodni zprava ze dne 15.3.2004:

> Potreboval bych ve sve aplikaci pouzivat obrazky typu GIF. Nevite jak je to
> s jeho licencovanim. Potrebuji je pouze zobrazovat, ne vytvaret nebo
> modifikovat. Predem dekuji.

Podle toho kde myslis. V USA uz licence vyprsela, v CR nikdy
registrovana nebyla. V nejake zemi jeste plati, ted z hlavy nevim, v
jake to je. Kam to chces exportovat?

Petr Zahradnik, pocitacovy expert

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


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

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

Update SQL StoredProc vs Post

[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 15.3.2004 10:13:18

Pro pouziti SP pro aktualizaci vedou zejmena tyto duvody:
1. bezpecnost a jeji jednodusi rizeni,
2. jednodusi zachovani integrity dat,
3. lepe se ladi nez triggery.

Pokud je udrzeni integrity dat jednoduche a pozadavky
na bezpecnost nizke nebo zadne neni duvod pouzit SP.

Pavel

> From: petr palicka [mailto:palicka.petr(zv)seznam(tec)cz]
> Tyslic Jiri wrote:
>
> > Dobry den,
> > Chtel bych se zeptat na spravne ukladani dat do SQL stroje.
>
> Nejsem si jisty, jestli pouzivani SP pro ukladani dat
> je ta nejlepsi cesta. Asi jak kdy, rozhodne bych klasicky
> insert a update tak jednoduse nezatracoval. Urcite se ozve
> nekdo z tabora zastancu ukladani dat (vyhradne) pomoci SP,
> ale me nejak nenapada dostatecne padny duvod k takovemuto
> reseni.

Obnoveni formulare po odlozeni na listu

[*] Ing. Pavel Zilinec <zilinec(zv)psinfos(tec)cz> - 15.3.2004 09:43:12

Zkus Application.ProcessMessages

--
ing. Pavel Zilinec
MailTo:zilinec(zv)email(tec)cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju

Monday, March 15, 2004, 9:27:09 AM, bylo napsano:

PD> Mam zacatecnicky dotaz. Aplikace v okne zobrazuje prubeh cinnosti. Pokud
PD> ale spadne na listu a je zpet obnovena, sice se okno formulare zobrazi,
PD> ale jiz ne komponenty ukazujici prubeh na nem . Nevite co s tim. Dik za
PD> radu.

PD> Petr

TIBClientDataSet a join v CommandTextu

[*] Jan Rizek <abxsw(zv)centrum(tec)cz> - 15.3.2004 09:59:16

Kdyz napisu do CommandTextu select s joinem, tak se sice povede Post ale
ApplyUpdates skonci s chybou:

'Unable to resolve records. Table name not found.'.

Lze pouzit joiny v CommandTextu? A jak?

--------------------
Delphi 6.0, win XP,

Vyuka programovani - SGP Baltazar?

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.3.2004 09:55:16

Ahoj,

ja jsem odkojenej Karlem, ale to uz asi dneska
nebudes mit kde behat. No, jestli byla ZX verze,
tak mozna v nejakym emulatoru ZX spectra, nebo
tak neco. Ja ho videl na PMD-80, IQ-161 a vlastne
i snad DOS verzi. Je to vyuka klasickeho proceduralniho
programovani.

Mozna by ale nebylo od veci ucit ho treba JavaScript,
kdy si vysledek muze ihned prohlednput v libovolnem
prohlizeci.

Peca

seriova komunikace a tuhnouci win

[*] Jiri Virt <virt(zv)volny(tec)cz> - 15.3.2004 09:51:15

jestli to nebude stejny problem, jako kdyz ctu z disketove mechaniky ...
totalne zmrzly Win


Jirka Virt


seriova komunikace a tuhnouci win

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.3.2004 09:47:14

Ja bych nerek, ze je to zpusobeno detekci zarizeni, to bydelalo
problemy pred otevrenim ser. portu.
Problem vytuhavani mysi a klavesnice je na WinXP bezny, dovod
presne neznam, ale dle reakce systemu bych cekal, ze ovladace
pro mys a klavesnici byly presunuty z kernel modu do user, nebo pro
ne byla snizena priorita.
Jedinne, co muzete zkusit je monitorovani zatizeni CPU, pripadne
misto async pro to napsat ve vlakne.

Slavek


> mam program v delphi ktery komunikuje po seriove lince s
> programovatelnym automatem. Pouzivam komponenty Async Pro a
> stava se mi
> nahodne nasledujici :
>
> pri komunikaci vetsinou kdyz PC neco prijma temer
> vytuhnou windows
> XP (ne uplne jen nereaguji na klavesnici a mys je takova opila )
> napadlo me ze by winXP mohly detekovat nejake zarizeni tak
> jsem hledal
> u M$ a nasel toto:
>
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.
com:80/support/kb/articles/q131/9/76.asp&NoWebContent=1
<http://support.microsoft.com/default.aspx?scid=http://support.microsoft
.com:80/support/kb/articles/q131/9/76.asp&NoWebContent=1>

Licencovani GIFu

[*] Vaclav Riha - Soft Consult <vaclav_riha(zv)softconsult(tec)cz> - 15.3.2004 09:43:13

Potreboval bych ve sve aplikaci pouzivat obrazky typu GIF. Nevite jak je to
s jeho licencovanim. Potrebuji je pouze zobrazovat, ne vytvaret nebo
modifikovat. Predem dekuji.

S pozdravem Vaclav Riha


Dump databaze (extrakce dat, ne struktury)

[*] Petr Brant <brant(zv)dcomm(tec)cz> - 15.3.2004 09:41:11

Jmenuje se Interbase/Firebird, kupoval jsem ji asi pred tydnem, maji ji v
Praze v prodejne na Strossmayerove namesti c. 12 a stoji vcetne CD 490 Kc.
Byl jsem o SQL databazich temer naprosto nepoucen, ted uz vim alespon neco a
tato kniha na tom ma nejvetsi podil.

RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://web.redbox(tec)cz/petr.brant


<reklama>
Zkuseni doporucuji knihu Pavla Cisare. Presny nazev
ted nevim, ale je to AFAIK jedina kniha o IB/FB,
ktera vysla v cestine.
</reklama>

OT: Vyuka programovani - SGP Baltazar?

[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 15.3.2004 09:05:06

Ahoj,
chtel bych se zeptat, zda nekdo nemate zkusenosti s vyukou programovani
u deti? Jde mi o to, ze bych sveho 8 leteho syna chtel nejak vest k
programovani a uvazuji, zda je SGP Baltazar schudna cesta. Nic jineho
neznam.
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________


Pocet zaznamu v BDE

[*] Ing. Jan Dubsky - Strojirna Palava <dubsky(zv)s-palava(tec)cz> - 15.3.2004 09:33:10

Mam databazi ke ktere pristupuji pres BDE. Data zobrazuji pomoci DBGrid.
Obsah teto tabulky se meni podle toho, jestli a jak mam nastaveny filtr.
Jak zjistim aktualni pocet zaznamu v DBGridu a cislo zaznamu (ve vztahu
k tomuto aktualnimu poctu) na kterem zaznamu se nachazim

Diky Honza

Dump databaze (extrakce dat, ne struktury)

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.3.2004 09:01:05

Tomas Madle wrote:

> no jo, to je znacne lepsi zpusob, dik za pouceni

Jo a mel bys vedet, ze kazda zmena tabulky zvedne
interni pocitadlo zmen o 1. Mas 255 zmen, potom uz
ti to server nedovoli a musis udelat Backup/Restore,
ktery pocitadlo vynuluje.

<reklama>
Zkuseni doporucuji knihu Pavla Cisare. Presny nazev
ted nevim, ale je to AFAIK jedina kniha o IB/FB,
ktera vysla v cestine.
</reklama>

Peca


Obnoveni formulare po odlozeni na listu

[*] Petr Dedecek <petrd(zv)omega-lbc(tec)cz> - 15.3.2004 09:27:09

Mam zacatecnicky dotaz. Aplikace v okne zobrazuje prubeh cinnosti. Pokud
ale spadne na listu a je zpet obnovena, sice se okno formulare zobrazi,
ale jiz ne komponenty ukazujici prubeh na nem . Nevite co s tim. Dik za
radu.

Petr


HTTPSend (Synapse) - prubeh stahovani, vel. soubor

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 15.3.2004 09:19:07

> procedure TForm1.SockStatus(Sender: TObject; Reason: THookSocketReason;
> const Value: String);

> 1)Vypozoroval jsem, ze pokud pouziju TryStrToInt, tak bych mohl dostat pocet stazenych BYTEu - je to tak? (Je to vcetne "omacky" kolem - nejedna se o velikost souboru, coz je myslim si dobre... :) )

Tento event je volan pro hromadu rozlicnych udalosti, jako treba
vytvareni sockety, pripojovani csockety, zavirani socketu...
informace o poctu prectenych ci zapsanych bytu je jen zlomek z
posilanych udalosti.

tedy spravne se s tim pracuje tak, ze se podivas na hodnotu Reason, a
pokud to je udalost, kterou ocekavas, tak v tu chvili vis, co mas za
data ve Value. v tvem pripade kdyz je reason roven HR_ReadCount, pak
ve Value mas pocet prave stazenych dat. V tu chvili pak muzes pouzit
jednoduse StrToIntDef funkci.

Ty jsi zkosuel rpevadet na cislo uplne vsechno, coz je chyba. Mnoho
udalosti nema ve value cislo, ale nektere maji, treba informace o
zapsanych bytech, coz v tvem pripade msuelo delat zmatek.

> 2)Pokud ano, tak k zobrazeni prubehu uz mi teda staci malickost - vedet, kolik byteu budu stahovat celkem - jak se dostat k tehle informaci??? Velikost stazeneho souboru dostanu az po skonceni downloadu, ale to mi v tomhle nepomuze... Potrebuji to znat
> predem, abych mohl spravne zobrazovat nejaky ProgressBar.

To u HTTP prenosu nekdy ani NEJDE! ;-) data z HTTP mohou byt posilana
tremi moznymu zpusoby:

1. nevis dopredu, jak velky dokument bude. konec dokumentu je poznan
jednoduse podle toho, ze server na konci zavre spojeni. tady zadny
progressbar kreslit nemuzes. Takto jsouposilana data vzdy, kdyz
pouzivas HTTP 1.0.

Pokud klient i server posporuji HTTP 1.1, pak muze dojit k dalsim
moznostem...

2. Server v hlavicce posle velikost posilaneho dokumentu.

3. Pouziva se tzv. CHUNKED prenos, tedy posilany dokument je rozdelen
do 1 az N casti, a vzdy se posle velikost casti, a pak data.. a pak
velikost dalsi casti,atd. Tady valstne dopredu take nevis, jak bude
dokument celkove velky! tto se hodne pouziva, pokud je vystup
generovan treba nejakym skriptem na WWW serveru.

A co je horsi, ty z klienta nikdy nevis, jake z techto tri kodovani
bude pouzito! A pritom smysluplny progressbar muzes kreslit jen v
pripade 2...

Ostatne, podivej se na kdejaky WWW prohlizec a na jeho progress...
Nemas nekdy pocit, ze si ten jejich progressbar nejak casto dela co
chce a ukazuje podivnosti? Uz vis proc. ;-)

No, ale zpet k problemu, pokud mas zavolan Ostatus event s
HR_ReadCount udalosti, a zaroven v HTTP.DownloadSize mas nenulovou
hodnotu, pak mas stesti, a muzes kreslit progressbar. Pokud obsahuj
hodnotu 0, pak mas smulu, je pouzivany takovy penos dat, u kterych
nevis dopredu velikost dat.> 3)Pak mam problem s tim, ze aplikace je pri stahovani uplne tuha... Resite to zvlastnim threadem?

Ano, na to je to udelane.

> 4)Kdyz bych dal uzivateli sanci ;o) prerusit stahovani - jak to udelat? "Jedine", kde se dostanu se svym kodem je do udalosti Sock.OnStatus... muzu v tehle udalosti ukoncit stahovani?

Ano, HTTP.Abort je ta spravna funkce.

> 5)Jak? ;o)
> - pres Sock: Sock.CloseSocket; Sock.Destroy; Sock.AbortSocket;
> nebo
> - pres HTTP: Http.Abort; Http.Destroy;

Viz bod 4.
> 6)Snad jsem neco neprehledl a Lukas se na me nebude zlobit, ale k cemu je mi ten "Reason" (v te udalosti Sock.OnStatus)?? Nejak jsem pro nej nenasel vyuziti...

Viz. bod 1. ;-)
--
Lukas Gebauer.

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

HTTPSend (Synapse) - prubeh stahovani, vel. soubor

[*] Petr Lupinek <plupinek(zv)synthesia(tec)cz> - 15.3.2004 09:01:04


Tady je kus kodu ...

procedure TForm1.HTTP_On_Status (Sender: TObject; Reason:
THookSocketReason; Const Value: string);
begin

.....

if ((Reason = HR_ReadCount) or (Reason = HR_WriteCount)) then
begin
Pocet := Value;
Byty_Celk := Byty_Celk + StrToInt (Pocet);
Form3.Label_Preneseno.Caption := 'Pocet prenesenych bytu : ' +
IntToStr(Byty_Celk);
end;

......

end;


S pozdravem

Ing. Petr Lupinek
datove komunikacni systemy
odbor Informatika
ALIACHEM a.s. o.z SYNTHESIA
tel.: 466825535
mob.: +420 736 505 512


HTTPSend (Synapse) - prubeh stahovani, vel. soubor

[*] js-delphi(zv)quick(tec)cz - 15.3.2004 08:49:02

Ahoj panove.
Zhruba do 03.00 jsem patral jak udelat prubeh stahovani souboru z NETu prostrednictvim SYNAPSE a jejiho objektu THTTPSend, ale neprisel jsem na to. :( Proto prosim o radu.
V historii konference jsem nasel radu Lukase G., ktery psal at se dotycny povesi na HTTP.Sock.OnStatus ... (HTTP:THTTPSend)

procedure TForm1.SockStatus(Sender: TObject; Reason: THookSocketReason;
const Value: String);

To jsem udelal a tohle bezi. Problem mam v tom, ze v promenne Value, kterou dostavam informace o stavu stahovani jdou informace, ktere potrebuju nejak vyfiltrovat, abych se dostal k prubehu stahovani. To je muj problem - nevim jak.

1)Vypozoroval jsem, ze pokud pouziju TryStrToInt, tak bych mohl dostat pocet stazenych BYTEu - je to tak? (Je to vcetne "omacky" kolem - nejedna se o velikost souboru, coz je myslim si dobre... :) )
2)Pokud ano, tak k zobrazeni prubehu uz mi teda staci malickost - vedet, kolik byteu budu stahovat celkem - jak se dostat k tehle informaci??? Velikost stazeneho souboru dostanu az po skonceni downloadu, ale to mi v tomhle nepomuze... Potrebuji to znat predem, abych mohl spravne zobrazovat nejaky ProgressBar.

3)Pak mam problem s tim, ze aplikace je pri stahovani uplne tuha... Resite to zvlastnim threadem?
4)Kdyz bych dal uzivateli sanci ;o) prerusit stahovani - jak to udelat? "Jedine", kde se dostanu se svym kodem je do udalosti Sock.OnStatus... muzu v tehle udalosti ukoncit stahovani?
5)Jak? ;o)
- pres Sock: Sock.CloseSocket; Sock.Destroy; Sock.AbortSocket;
nebo
- pres HTTP: Http.Abort; Http.Destroy;
6)Snad jsem neco neprehledl a Lukas se na me nebude zlobit, ale k cemu je mi ten "Reason" (v te udalosti Sock.OnStatus)?? Nejak jsem pro nej nenasel vyuziti...

Diky za vas cas!
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.0.3
programator amater


Update SQL StoredProc vs Post

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.3.2004 08:47:02

Tyslic Jiri wrote:

> Dobry den,
> Chtel bych se zeptat na spravne ukladani dat do SQL stroje.

Nejsem si jisty, jestli pouzivani SP pro ukladani dat
je ta nejlepsi cesta. Asi jak kdy, rozhodne bych klasicky
insert a update tak jednoduse nezatracoval. Urcite se ozve
nekdo z tabora zastancu ukladani dat (vyhradne) pomoci SP,
ale me nejak nenapada dostatecne padny duvod k takovemuto
reseni.

Peca


seriova komunikace a tuhnouci win

[*] Matejcek Petr <konference(zv)crhov.komfi(tec)cz> - 15.3.2004 08:28:53

DD,

mam program v delphi ktery komunikuje po seriove lince s
programovatelnym automatem. Pouzivam komponenty Async Pro a stava se mi
nahodne nasledujici :

pri komunikaci vetsinou kdyz PC neco prijma temer vytuhnou windows
XP (ne uplne jen nereaguji na klavesnici a mys je takova opila )
napadlo me ze by winXP mohly detekovat nejake zarizeni tak jsem hledal
u M$ a nasel toto:

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q131/9/76.asp&NoWebContent=1
<http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q131/9/76.asp&NoWebContent=1>

chtel bych se zeptat kdyz zmenim boot.ini u winXP zakazu detekci jen
po dobu nabihani windows nebo uplne ?
je boot.ini opravdu ten spravny soubor kde zakazat detekci novych
zarizeni ?

diky PM


zaloha databaze inetbase

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.3.2004 07:44:49


Matejcek Petr wrote:
> pls poradi nekdo jak z programu v delphi udelat zalohu cele databaze
> a jak obnovit databazi ze zalohy?

mas vice mene 2 moznosti. bud poustet primo GBAK
z programu, nebo se mrkni co zvladaji tve komponenty
pro pripojeni k serveru. pokud pouzivas IBX, tak tam
je primo TIBBackuService a TIBRestoreService.

Peca


Update SQL StoredProc vs Post

[*] Tyslic Jiri <jiri.tyslic(zv)opp.tbggroup(tec)com> - 15.3.2004 07:34:48

Dobry den,
Chtel bych se zeptat na spravne ukladani dat do SQL stroje.
Prosel jsem historii konference a vetsina prispevku jednoznacne doporucuje pouzivat ukladani dat pres ulozene procedury. Jiz delsi dobu pouzivam tedy spatny scenar :( (select pres View a zapis primo do tabulky pomoci Post) a rozhodl jsem se tedy polepsit, ale narazil jsem na par problemu se kterymi si nevim rady:

Jak je to s opravnenim?
- pokud jsem pouzival zapis primo do tabulky, mohl jsem si nastavit prava i na jednotlive sloupce, coz nevim jak resit v ulozne procedure.

Jak zredukovat objem prenasenych dat.
- pri aktualizaci ulozenou procedurou musim poslat do databaze, cely radek z cehoz mi vyplynuly dve nevyhody: objem prenasenych dat (pokud jsem pouzival Post, poslala se pouze zmenena hodnota) a protoze pro logovani zmen v databazi jsem pouzival na strane SQL Trigger after post, je tento trigger ted nepouzitelny protoze se updatuje cely radek tzn. jsou zmeneny vsechny polozky. (nakonec jsem to vyresil, ze musim porovnavat v trigru vsechny hodnoty, jestli doslo ke zmene nebo ne, ale neni to ono)

Tak a ted jsem na rozpacich jak to tedy je, co delam spatne?

Diky za kazde nakopnuti

Jirka

Hledani zamestnani a cena pracovni sily

[*] Vlastimil Bardon <bardon(zv)akord-soft(tec)cz> - 15.3.2004 06:46:37

Na polozenou otazku (asi mela byt OT) odpovedet neumim. Ale skus se podivat na www.trexima(tec)cz , traba tam neco zajimaveho objevis.

-----Original Message-----
From: pastrniste [mailto:pastrniste(zv)seznam(tec)cz]
Sent: Sunday, March 14, 2004 3:31 PM

Potreboval bych poradit s tim, jak odpovedet na otazku potencialniho zamestnavatele o predstave, jakou mam o svem platu. Nerad bych placnul castku prilis nizkou a nerad bych zase zamestnavatele vydesil prehnanymi naroky. Jaka je "prumerna" cena me pracovni sily?

Komunikace pres internet, stazeni, rozbaleni - zac

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 14.3.2004 21:44:35

Puvodni zprava ze dne 14.3.2004:

> Tim myslim takove zabezpeceni, ktere ti umozno schovat soubory ke stazeni na
> nedostupne misto (zvenci). Po pripojeni se se spusti na serveru modul, ktery
> muze vyhodnotit, co ti prousti a co ne. Modelovy priklad: Mas aplikaci, a k
> ni trial verzi. Potrebujes zajistit aktualizace jak trial, tak ostre verze.
> Ostra verze se lisi nekolika klicovymi moduly. Po prihlaseni aplikace, ktera
> se chce aktualizovat, serverova cast rozlisi, ktery uzivatel se hlasi a
> podle toho umozni nebo neumozni stahnuti urcitych aktualizaci. No a
> samozrejme ti nikdo nesmi nabourat adresar s aktualizacnimi soubory. Tohle
> nevim, jak udelat v Delphi.

Ne ze bych nemel rad .NET a ne ze by .NET na to nebyl krasny. To
rozhodne ne. Presto .NET neni jedinou cestou a ani tou jedinou
nejjednodussi cestou, jak toho dosahnout. Zabezpeceni vzdy musi
provest server. A je jedno, zda na serveru bezi webova sluzba .NET
nebo cokoliv z ASP.NET nebo jen ASP nebo PHP nebo ISAPI nebo CGI nebo
dokonce i jen bezny HTTP se zabezpecenim NTFS pripadne pres SSL. A je
uplne jedno, jak se to bude obsluhovat z klienta, zda to bude sosat
.NET nebo Delphi nebo Visual Basic nebo cokoliv jineho.

Petr Zahradnik, pocitacovy expert

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


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

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

zaloha databaze inetbase

[*] Matejcek Petr <konference(zv)crhov.komfi(tec)cz> - 14.3.2004 21:24:28

zdravim

pls poradi nekdo jak z programu v delphi udelat zalohu cele databaze
a jak obnovit databazi ze zalohy?
pro bezne zalohovani umim pouzivat gbak ale to uzivatele delat nebudou

diky PM


Komunikace pres internet, stazeni, rozbaleni - zac

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 14.3.2004 21:24:27

> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Lukas Gebauer
> Sent: Friday, March 12, 2004 3:05 PM
>
> > ktere je nastavene na serveru, aniz by zaplakala
> bezpecnost.
>
> A strana serveru? Tim myslis upusteni dvou souboru do
> adresare na libovolnem WWW serveru? No nic, jen jsem tim
> vlastne chtel rict, ze s .NETem jde delat lecos, ale obcas je
> to trosku kanon na vrabce.

Tim myslim takove zabezpeceni, ktere ti umozno schovat soubory ke stazeni na
nedostupne misto (zvenci). Po pripojeni se se spusti na serveru modul, ktery
muze vyhodnotit, co ti prousti a co ne. Modelovy priklad: Mas aplikaci, a k
ni trial verzi. Potrebujes zajistit aktualizace jak trial, tak ostre verze.
Ostra verze se lisi nekolika klicovymi moduly. Po prihlaseni aplikace, ktera
se chce aktualizovat, serverova cast rozlisi, ktery uzivatel se hlasi a
podle toho umozni nebo neumozni stahnuti urcitych aktualizaci. No a
samozrejme ti nikdo nesmi nabourat adresar s aktualizacnimi soubory. Tohle
nevim, jak udelat v Delphi.

S pozdravem

Zbysek Hlinka
E-mail: hlinka zavin. hlinka(tec)cz


DDE komunikace s "cizi" aplikaci - Jak na prijem?

[*] Miroslav Novosad <mnprokonf(zv)quick(tec)cz> - 14.3.2004 18:51:42

Ahoj,

mohli byste me trochu popostrcit?
Mam program na vypocty, kteremu jsem schopny posilat vstupy a mam (od
autora) i definici kanalu, kterym posila vysledky. Koukal jsem na to,
ale nejak mi neni jasne, jak ten vystup ziskat.
Lze vyuzit DDE komponenty z Delphi nebo si musim pochytat DDE zpravy?
Co jsem se dival na priklady, tak vsude (kde jsem koukal...) bylo jen
jak ziskat data od nejake vlastni aplikace.


Miroslav Novosad
mnprokonf(zv)guick(tec)cz


Hledani zamestnani a cena pracovni sily

[*] pastrniste <pastrniste(zv)seznam(tec)cz> - 14.3.2004 15:31:19

Ahoj programatori,
dovolim se obratit se na tuto komunitu s mozna neobvyklym dotazem. Programuji zhruba 20 let, z toho poslednich 7 let profesionalne, delal jsem 3 roky s MSVC++ a posledni 4 roky v Delphi 5 Pro. Ovladam dobre Delphi, umim psat komponenty, delal jsem s databazemi Paradox, v posledni dobe delam i s Firebirdem. Hodlam si najit misto v Praze, protoze v miste meho bydliste je jen velice malo odpovidajicich pracovnich prilezitosti. Potreboval bych poradit s tim, jak odpovedet na otazku potencialniho zamestnavatele o predstave, jakou mam o svem platu. Nerad bych placnul castku prilis nizkou a nerad bych zase zamestnavatele vydesil prehnanymi naroky. Jaka je "prumerna" cena me pracovni sily? Diky predem za vsechny odpovedi, pripadne nabidky zamestnavatelu jsou rovnez vitany.

Zdravim vsechny Petr

Access wrapper

[*] Petr Vones <pvones(zv)vol(tec)cz> - 14.3.2004 14:05:06

From: "Bronislav Klucka" <bronislav.klucka(zv)pro2-soft.com>
> Fajn, ale stale nevim, jak je precist a pomoci Delphi naimportovat

Na Access databazi se pripojis treba pres ADO.

Petr Vones

Access wrapper

[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 14.3.2004 13:49:05

> No, neni nic jednodussiho nez tesne po poklepani na ikonku
> souboru podrzet
> SHIFT a Acces po startu nepusi zadna makra z tohoto souboru a muzes se v
> nem rejpat jak uznas za vhodne!

Fajn, ale stale nevim, jak je precist a pomoci Delphi naimportovat

Brona

Access wrapper

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

No, neni nic jednodussiho nez tesne po poklepani na ikonku souboru podrzet
SHIFT a Acces po startu nepusi zadna makra z tohoto souboru a muzes se v
nem rejpat jak uznas za vhodne!

PS: zapni si ICQ, vcera jsem mel v noci asi hodinu na telefonu tveho
zakaznika...

>mam od zakaznika databazi, ale je v accessu, navic ji nemuzu v Accessu
>otevrit, pac tam ma nejaky autoopen makro (otevre se a zmizi defaultni menu
>accessu a db si tam dosadi menu vlastni). S pozdravem
Tomas Rosa

------------------------=[ pinknet on every screen]=-----------------------
Tomas Rosa
Tomas.Rosa(zv)PinkNet(tec)cz http://www.pnws.org
+420 602 860 704
PinkNet Web Server for Win32 - FREEWARE www.pnws.org
---------------------------------------------------------------------------

Access wrapper

[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 14.3.2004 13:02:30

Zdar,
mam od zakaznika databazi, ale je v accessu, navic ji nemuzu v Accessu
otevrit, pac tam ma nejaky autoopen makro (otevre se a zmizi defaultni menu
accessu a db si tam dosadi menu vlastni). Tuto databazi mam naimportovat do
produktu, ktery pro nej delam... nikdy jsem ale nedelal import dat z
accessove databaze, nevite nekdo, jak v Delphi otevrit mdb soubor, zjistit
jake ma tabulky, struktury tabulek a zjistit obsah tabulek?

pokud by se chtel nekdo podivat, tato db (prazdna) je na
http://pro2-soft.com/db/data.mdb (700kB).


Brona


PC, 1 modem

[*] Petr Spurny <peta.spurny(zv)tiscali(tec)cz> - 14.3.2004 10:26:05

mam docela dobre zkusenosti s Jana Serverem - tusim ze www.janaserver.de
prehledna webova administrace (v cestine) a pro tento ucel si myslim
idealni...

:: petr.spurny ::
:: ICQ #147149157 ::
:: peta.spurny(zv)tiscali(tec)cz ::

Chyby v Delphi 7?

[*] Petr Vones <pvones(zv)vol(tec)cz> - 13.3.2004 17:24:44

From: "Pavel Malinsky" <malinsky(zv)pmcom(tec)cz>
> Je mozne prosim alespon nastinit co bude opraveno.

To zalezi ciste na tom, kolik casu prideli managment programatorum na opravu
chyb, jinak receno "co vsechno ze znamych chyb budou smet opravit". Samozrejme
nejzavaznejsi chyby maji prioritu. Tato zavaznost je ovsem bohuzel casto
dost individualni, takze co je zavazne pro jednoho muze mit jiny vyznam pro
nekoho jineho. Vice viz http://bdn.borland.com/article/0,1410,28497,00.html

Petr Vones


Chyby v Delphi 7?

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 13.3.2004 17:42:47

A kdyz to tam bude (uz jsem tam neco daval, al eje to davno) bude se tim
nekdo
(tedy do doby, dokud mi to k necemu bude) zabivat ?
Jinak tam vetsina tech veci byla.

Slavek

>
> From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> > e stvou predevsim tyto "banality":
>
> Dokud to neni v QC (http://qc.borland.com), nikdo o tom nevi.
> Tohle je zakladni pravidlo jak vubec dosahnout toho, aby bylo
> neco opraveno.
>
> Petr Vones
>
>
>
>
>
>

Datovy prenos - CONNECT

[*] Dalibor <dalibor(zv)torola(tec)cz> - 13.3.2004 17:38:46

Ahoj, pouzivam datove prenosy mezi Modulem TC35 a Nokii D211.
Na komunikaci pouzivam komponentu ComPort (CPortLib7.dpk).
Vse funguje jak ma az na komunikaci ve Win2000, WinXp u NOKIE.
Zacnu datove vytacet, ale pri spojeni mi komponenta nevrati CONNECT.
Vrati mi ji pouze tehdy, kdyz druha strana neco vysle.
Takze mi dojdou data i s tim retezcem CONNECT.
Nevite kde hledat chybu? Jestli v te komponente, nebo nekde jinde?

Zatim jsem na to narazil s Nokii D211 na Win2000, XP
Zkousel jsem na to Huperterminal, tam ten CONNECT dojde bez problemu.


Dekuji za jakoukoliv radu.

Chyby v Delphi 7?

[*] Petr Vones <pvones(zv)vol(tec)cz> - 13.3.2004 17:24:43

From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> e stvou predevsim tyto "banality":

Dokud to neni v QC (http://qc.borland.com), nikdo o tom nevi. Tohle je
zakladni pravidlo jak vubec dosahnout toho, aby bylo neco opraveno.

Petr Vones


Chyby v Delphi 7?

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 13.3.2004 15:20:30

e stvou predevsim tyto "banality":
- code competition se zobrazuje PRES prave psany text, nebo nad (nebo
zcela jinde)
- zamovolne odmazavni refernci mezi moduly v property (k cemu je pad
datamodul ?)
- ruzne samovolne pady IDE, nejde nastavit debug desktop
- chybny preklad, po restartu OK
- problemy s cachovanim unit (smazete dcu, date novy pas (bez zmeny
casu)ale program je
prelozen se starym)
- Jednou disablovani balicek jiz nikdy nezapnete (nutny zasah do reg.).

Bylo by toho vice (napriklad nefunkcni eventy v posledni dvou verzich
IBX, ale alespon se neco deje), nebo
cely websnap a intraweb, tohle povazuji za trial, prerelease verze ( iw
lze upgradovat, ale za podminek,
ze jsem radeji rezignoval a v byvale firme pouziti IW zakazal).

Slavek


> JB> Dela ale jenom pri nedostatku sys prostredku ... jak to
> odstrani to
> JB> opravdu nevim ale neuveritelne mne to stve
>
> Asi to opravdu ma neco spolecnyho se sys. prostredky.
> Doporucuju zvednout max velikost virt. pameti. Tim se to
> uplne nevyresi, ale frekvence vyskytu je daleko mensi.
>
>
> --
> S pozdravem,
> Stanislav PETR
> mailto:stanislav.petr(zv)glux(tec)cz
>
>
>
>
>
>

Chyby v Delphi 7?

[*] Stanislav PETR <stanislav.petr(zv)glux(tec)cz> - 13.3.2004 12:26:17

Dobry den,
12. brezna 2004, 7:31:15, napsal jste:

JB> Hello Dalibor,

D>> Kdyz si dam CTRL+Spacebar u objektu, tak se mi nekdy zobrazi prazdny seznam.
D>> Kdyz uz se mi zobrazi a ja si chci sipkama vybrat tu vlastnost
D>> kterou potrebuji, tak mi to napr. prochazi co druhou polozku.

JB> Dela ale jenom pri nedostatku sys prostredku ... jak to odstrani to
JB> opravdu nevim ale neuveritelne mne to stve

Asi to opravdu ma neco spolecnyho se sys. prostredky. Doporucuju
zvednout max velikost virt. pameti. Tim se to uplne nevyresi, ale
frekvence vyskytu je daleko mensi.


--
S pozdravem,
Stanislav PETR
mailto:stanislav.petr(zv)glux(tec)cz


Datovy prenos - CONNECT

[*] Dalibor <dalibor(zv)torola(tec)cz> - 13.3.2004 11:56:09

Ahoj, pouzivam datove prenosy mezi Modulem TC35 a Nokii D211.
Na komunikaci pouzivam komponentu ComPort (CPortLib7.dpk).
Vse funguje jak ma az na komunikaci ve Win2000, WinXp u NOKIE.
Zacnu datove vytacet, ale pri spojeni mi komponenta nevrati CONNECT.
Vrati mi ji pouze tehdy, kdyz druha strana neco vysle.
Takze mi dojdou data i s tim retezcem CONNECT.
Nevite kde hledat chybu? Jestli v te komponente, nebo nekde jinde?

Zatim jsem na to narazil s Nokii D211 na Win2000, XP
Zkousel jsem na to Huperterminal, tam ten CONNECT dojde bez problemu.


Dekuji za jakoukoliv radu.

Nahlady, thumbnails

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 13.3.2004 11:38:07

> prajem pekny den,
> prosim vas, potreboval by som poradit, nasmerovat. stojim pred ulohou
> naprogramovat aplikaciu typu acdsee. v jvcl je komponenta thumbview,
> tato mi vsak pri vacsom mnozstve nacitavanych obrazkov hubuje na
> nedostatok zdrojov. taktiez pokusy s activex komponentou kodak image
> thumbnail su neuspesne. prosim vas, ma niekto skusenosti s takouto
> aplikaciou, vedel by mi niekto poradit ako na thumbnails-y, pripadne
> odkazat na literaturu, komponentu a podobne?
> vdaka za kazde nakopnutie,
> M.

Pouzil jsem na to pole TMemoryStreamu, v gridu jsem je zobracoval v
OnDrawCell (na W98 tak zobrazuju cca 2500 jpg velikosti 107x80).

Roman


Odemceni windows z delphi

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 13.3.2004 10:05:50

Lukas Zaruba <lukas_zaruba(zv)volny(tec)cz> wrote:
> Potreboval bych radu, jak pokud mi bezi nejaka aplikace a pracovni
> stanice se automaticky po nejake dobe uzamkne ji opet odemknout, jak
> windows odeslat heslo a rict aby se to odemlo....

Pokud mas na mysli automaticke "uzamceni" pomoci screensaveru,
pak to jde normalne vypnout tam kde se nastavuje screensaver.
Myslim ze jde i zabranit spusteni screensaveru tvou aplikaci
(typicky to delaji prehravace filmu). To co chces genericky nejde.

Martin Schayna

radky DBGridu

[*] Jan Harman <jharman(zv)volny(tec)cz> - 13.3.2004 09:51:40

> 1. potreboval bych obarvit radek v DBGridu podle dane hodnoty v radku,
nerpisel jsem na to jak
> 2. a pak bych jeste potreboval mam-li v radku hodnotu napr. 1, 2, 3 tak
aby se misto teto hodnoty zobrazoval text napr. prvni, stredni, posledni...

V OnDrawColumnCell muzes v podstate delat s Gridem co chces, kreslit do neho
obrazky, barvit pismo, pozadi...

Honza


radky DBGridu

[*] Radek Szurman <surad(zv)digijoe(tec)com> - 13.3.2004 09:41:22

Ahoj, mel bych hned dva dostazy po ranu,
1. potreboval bych obarvit radek v DBGridu podle dane hodnoty v radku, nerpisel jsem na to jak

2. a pak bych jeste potreboval mam-li v radku hodnotu napr. 1, 2, 3 tak aby se misto teto hodnoty zobrazoval text napr. prvni, stredni, posledni...

dik Radek

Odemceni windows z delphi

[*] Lukas Zaruba <lukas_zaruba(zv)volny(tec)cz> - 12.3.2004 23:56:06

Potreboval bych radu, jak pokud mi bezi nejaka aplikace a pracovni stanice
se automaticky po nejake dobe uzamkne ji opet odemknout, jak windows odeslat
heslo a rict aby se to odemlo....
Uz si opravdu nevim rady
Predem dekuju za pomoc Lukas Zaruba


ISAPI filtr - 2. pokracovani

[*] Michal Aichinger <michal.aichinger(zv)talk21(tec)com> - 12.3.2004 23:10:03

ale me je jasny, ze byla v IIS6 nahrazena, ale vetsina lidi ma 5, nebo 5.1
a tam je stale ta stara, ze. Takze potrebuju tu starou.

michal

On 12 Mar 2004 at 21:01, Petr Fejfar wrote:

> Petr Fejfar wrote:
>
> > This is a multi-part message in MIME format.
>
> Sorry, to byl pokus o paste textu z SDK, ktery pravil, ze funkce
> HSE_REQ_EXECUTE_CHILD byla v IIS6 nahrazena HSE_REQ_EXEC_URL.
>
> HTH, pf
>
>
>

Vlastni bitmapove fonty

[*] vacuv3as(zv)vsmie(tec)cz - 12.3.2004 20:53:46



Zdravim,
shodou okolnosti jsem stejny problem resil pred nedlouhou dobou.
Nejlepsi je si ho vyvorit ve Fontographeru. Na to jak je drahy, je to docela
fuska.
Ja jsem radsi jako sablonu velikosti fontu pouzil me vyhovujici systemove
fonty a
ty jsem po importu do Fontographeru modifikoval. K samotnemu vytvareni.
Pouzil jsem obycejny MsPaint a do Fontographeru z nej kopiroval pres
clipboard.
Ponekud neprofesionalni, ale s jistym vysledkem. Potom jsem resil,jak
pripojit
font k souboru tak, aby ho ma aplikace mohla pouzivat na kteremkoliv jinem
pocitaci
S uspechem jsem pouzil nasledujici.

S pozdravem, Vit
Vaculik

Include Font as a Resource in *.EXE

From: "Steve Harman" <harmdog(zv)ne.uswest.net>
Include a font in your EXE:
1. Using your favorite text editor, create a *.rc file that describes the
font:

MY_FONT ANYOL1 "Bauhs93.ttf"

The first two parameters can be whatever you want. They get used in your
program later.
2. Then, use the BRCC32.EXE command line compiler that ships with Delphi to
create a *.res file. If your file in step 1 was MyFont.rc, the command from
the DOS prompt would be:

BRCC32 MyFont

The program will append the .rc to the input, and create a file with the
same name except it appends .res: MyFont.res
3. In your program, add a compiler directive to include your newly created
file:

{$R MyFont.res}

This can go right after the default {$R *.DFM} in the implementation
section.
4. Add a procedure to create a file from the resource, then make the Font
available for use. Example:

procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
Res.SavetoFile('Bauhs93.ttf');
Res.Free;
AddFontResource(PChar('Bauhs93.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

5. You can now assign the font to whatever you wish:

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'Bauhaus 93';
end;

Caveats:
The above example provides for no error checking whatsoever. :-)
Notice that the File name is NOT the same as the Font name. It's assumed
that you know the font name associated with the file name. You can determine
this by double clicking on the file name in the explorer window.
I would recommend placing your font file in the C:\WINDOWS\FONTS folder.
It's easier to find them later.
Your newly installed font can be removed programatically, assuming the font
is not in use anywhere:

procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("Bauhs93.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

ISAPI filtr - 2. pokracovani

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 12.3.2004 20:53:47



ISAPI filtr - 2. pokracovani

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 12.3.2004 21:01:53

Petr Fejfar wrote:

> This is a multi-part message in MIME format.

Sorry, to byl pokus o paste textu z SDK, ktery pravil, ze funkce
HSE_REQ_EXECUTE_CHILD byla v IIS6 nahrazena HSE_REQ_EXEC_URL.

HTH, pf


format cisel v DBGrid a BDE - D3

[*] Jan Harman <jharman(zv)volny(tec)cz> - 12.3.2004 20:47:45

> Zdravim vsechny pritomne. Prosim o radu. V D3 vyrobim tabulku DBGRID a
> spojim ji s databazi BDE. Ovsem v tabulce mi cisla ukazuji na hafo
> desetinnych mist i prestoze mam v BDE nastaveny jen dve. V database
desktopu
> to ukazuje OK ale v DBGRID nikoli. poradte, prosim, co s tim.

Zkus to najak tak podobne:

TFloatField(Table1.Fields[0]).DisplayFormat := '0.00';

Honza


Vlastni bitmapove fonty

[*] vacuv3as(zv)vsmie(tec)cz - 12.3.2004 20:37:38



Zdravim,
shodou okolnosti jsem stejny problem resil pred nedlouhou dobou.
Nejlepsi je si ho vyvorit ve Fontographeru. Na to jak je drahy, je to docela
fuska.
Ja jsem radsi jako sablonu velikosti fontu pouzil me vyhovujici systemove
fonty a
ty jsem po importu do Fontographeru modifikoval. K samotnemu vytvareni.
Pouzil jsem obycejny MsPaint a do Fontographeru z nej kopiroval pres
clipboard.
Ponekud neprofesionalni, ale s jistym vysledkem. Potom jsem resil,jak
pripojit
font k souboru tak, aby ho ma aplikace mohla pouzivat na kteremkoliv jinem
pocitaci
S uspechem jsem pouzil nasledujici.

S pozdravem, Vit
Vaculik

Include Font as a Resource in *.EXE

From: "Steve Harman" <harmdog(zv)ne.uswest.net>
Include a font in your EXE:
1. Using your favorite text editor, create a *.rc file that describes the
font:

MY_FONT ANYOL1 "Bauhs93.ttf"

The first two parameters can be whatever you want. They get used in your
program later.
2. Then, use the BRCC32.EXE command line compiler that ships with Delphi to
create a *.res file. If your file in step 1 was MyFont.rc, the command from
the DOS prompt would be:

BRCC32 MyFont

The program will append the .rc to the input, and create a file with the
same name except it appends .res: MyFont.res
3. In your program, add a compiler directive to include your newly created
file:

{$R MyFont.res}

This can go right after the default {$R *.DFM} in the implementation
section.
4. Add a procedure to create a file from the resource, then make the Font
available for use. Example:

procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
Res.SavetoFile('Bauhs93.ttf');
Res.Free;
AddFontResource(PChar('Bauhs93.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

5. You can now assign the font to whatever you wish:

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'Bauhaus 93';
end;

Caveats:
The above example provides for no error checking whatsoever. :-)
Notice that the File name is NOT the same as the Font name. It's assumed
that you know the font name associated with the file name. You can determine
this by double clicking on the file name in the explorer window.
I would recommend placing your font file in the C:\WINDOWS\FONTS folder.
It's easier to find them later.
Your newly installed font can be removed programatically, assuming the font
is not in use anywhere:

procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("Bauhs93.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

ISAPI filtr - 2. pokracovani

[*] Michal Aichinger <michal.aichinger(zv)talk21(tec)com> - 12.3.2004 19:09:31

Tak jsem nainstaloval PSDK a nasel tam i ten soubor httpext.h. Jenze v
nem opet neni vse. Jak muze mit Microsoft v MSDN popsano 32
ServerSupportFunc funkci, kdyz v httpext.h jich je 32 ale jinych?
V httpext.h je definovano:
HSE_REQ_IS_IN_PROCESS
HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK
ale neni k nim zadny popis, a naopak v MSDN jsou popsany
HSE_REQ_GET_REQUEST_HEADER
HSE_REQ_EXECUTE_CHILD
ale pro ne neni urceno mapovani na HSE_REQ_END_RESERVED+???

a prave ja bych nutne potreboval zjistit jaky cislo ma funkce
HSE_REQ_EXECUTE_CHILD. Jelikoz je vse v MSDN psany pro IIS6,
tak me napada, ze by to mohlo byt jedine v nejake stare verzi PSDK.
Nema to nekdo?

diky Michal


> > je 16. Oba se odkazuji na httpext.h ale ten jsem nikde volne na netu
> > nenasel. Nema nekdo soupis vsech konstant HSE_REQ_...?
>
> Je to soucasti Platform SDK v podadresri INCLUDE\

TListView a zobrazovani textu pod velkymi ikonami

[*] Michal Mucha <mail(zv)m-mucha(tec)net> - 12.3.2004 19:07:30

Dobry den,
chtel bych Vas pozadat o radu, jak zaridit, aby se mi pod velkymi ikonami
(ViewStyle=vsIcon) v TListView zobrazoval vzdy cely text a ne jen cast
textu a tri tecky. Mam Deplhi 5.

Dekuji za rady.
Michal Mucha


Chyby v Delphi 7?

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 12.3.2004 18:33:28

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

> > > (ActionManager,...???).
> Nejake opravy v tejto veci sa najdu aj tu
> http://homepages.borland.com/strefethen/index.php?pagename=Mai
> n.Delphi7

ActionManager je priklad. I kdyz sem tenkrat tudle opravu nainstaloval tak
sem po dvou dnech testovani ActionManageru jeho pouziti zavrhnul,
protoze to stejne porad pekne padalo nadrzku, a kor v kombinaci
s MDI prostredim. :((

S pozdravem a dikem
=====================================
> Pavel Malinsky; malinsky(zv)pmcom(tec)cz <
=====================================
> GSM: 602 652 203 | ICQ: 322015967 <
=====================================

Chyby v Delphi 7?

[*] MMS <preas_w(zv)stonline.sk> - 12.3.2004 18:03:25

Ahoj
----- Original Message -----
From: "Jaromir Luhan" <konference(zv)lionet(tec)cz>
> > (ActionManager,...???).
Nejake opravy v tejto veci sa najdu aj tu
http://homepages.borland.com/strefethen/index.php?pagename=Main.Delphi7

Miro

Free MySql vs BDE

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 12.3.2004 16:59:15


> -----Original Message-----
On Behalf Of Erik Salaj, Winsoft

> no a co tak pripojit sa priamo na ten server, namiesto
> zalohovania a rozbalovania zalohy na inom serveri? Nenapisal
> si ucel toho procesu, k comu to vlastne potrebujes.

Ucel je jasny. Prenes aktualni data na vyvojarsky pocitac protoze delat
vyvoj na "ostrych" datech nejde. > > No pokud sis vsiml, jsem v naprosto stejne situaci i u placeneho
> > produktu.
>
> rovnaka situacia? MS azda skrachoval? Alebo snad MS
> prestal podporovat MS SQL? Nefunguje snad MS SQL,
> nemozu ho uzivatelia pouzivat? Neopravuje MS chyby,
> nerobi service packy? Nepripravuje sa nove MS SQL (Yukon),
> ktore bude integrovane s Visual Studiom, s podporou .NET, s
> podporou objektovo- relacneho mapovania, moznostou
> programovat storovane produry v objektovom jazyku, novymi
> administrativnymi nastrojmi a neviem este cim vsetkym

MS SQL mne postavil pred neresitelnou situaci spatne napsanym SP3 a
nehodla ji resit a je mi jedno proc tomu tak je. Chtel jsem jen rici, ze
ani placeny SW neni zcela bez vady.

> a na upgradovanom pocitaci uz tu licenciu nemozes pouzit?
> Alebo chces povedat, ze "licencia" azda moralne za 3 roky
> zastara spolu s pocitacom?

Ano produkt a potazmo tedy i jeho licence moralne zastara.
Mozna ze 3 roky jsem prehnal ale vice nez 5 let v zadnem pripade.

Ludek


MSSQL Detach, Attach database

[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 12.3.2004 16:37:03

Musis je sestrelit, pro attach/deattach musis byt clenem skupiny db_admin !
Bohuzel se ti mohou zase hned hlasit !
Doporuceny postup je proto prejit do Restrict access - "Single user".
Napr. prikazem
ALTER DATABASE 'jmeno databaze'
SET SINGLE_USER WITH ROLLBACK IMMEDIATE

nebo totez s ROLLBACK AFTER xx SECONDS

V DB zustane prihlasen pouze uzivatel ktery prikaz vydal
ostatni jsou nasilne ukonceni.

Pavel

> From: mstevlik(zv)gamo.sk [mailto:mstevlik(zv)gamo.sk]
> > ano, je mozne zistit pripojenych uzivatelov, viz
> > http://www.winsoft.sk/adofaq.htm#Q8.2
> >
> > > Je k tej unite SQLDMO niekde nejaky help?
> >
> > ano, je sucastou MS SQL servera (v Books Online)
> >
> > Erik
>
> No dajme tomu ze zistim ze tam este je niekto pripojeny
> Viem ho nejako zostrelit natvrdo, alebo ho zostrelovat
> nemusim a rovnio
> mozem zavolat detach?
>
> Stevlik Marian
> ISYS programator
>

format cisel v DBGrid a BDE - D3

[*] Roman Lostak <lostak(zv)yssentools(tec)cz> - 12.3.2004 15:42:53

Zdravim vsechny pritomne. Prosim o radu. V D3 vyrobim tabulku DBGRID a
spojim ji s databazi BDE. Ovsem v tabulce mi cisla ukazuji na hafo
desetinnych mist i prestoze mam v BDE nastaveny jen dve. V database desktopu
to ukazuje OK ale v DBGRID nikoli. poradte, prosim, co s tim.

Diky ROman Lostak


MSSQL Detach, Attach database

[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.3.2004 15:40:52

> No dajme tomu ze zistim ze tam este je niekto pripojeny
> Viem ho nejako zostrelit natvrdo, alebo ho zostrelovat nemusim a rovnio
> mozem zavolat detach?

Detach by mal vratit chybovu hlasku (neskusal som
to, ale kedze vracia chybove hlasky, tak predpokladam,
ze i v tomto pripade tomu tak bude).

Co sa tyka zostrelovania, tak zrejme mozes podobne
ako v Enterprise Manageri killnut proces (viz.
SQLServer.KillProcess metoda), pricom
na enumeraciu procesov daneho uzivatela je
urcena SQLServer.EnumProcesses metoda.

Erik


Dump databaze (extrakce dat, ne struktury)

[*] Tomas Madle <rainbow(zv)replac-bm(tec)cz> - 12.3.2004 16:09:01

> 1/ pomoci alter table pridas sloupec float s pracovnim nazvem.
> 2/ pomoci update tabulka set novysloupec = starysloupec preneses data.
> 3/ pomoci alter table dropnes stary sloupec
> 4/ pomoci alter table prejmenujes novy sloupec

no jo, to je znacne lepsi zpusob, dik za pouceni

tomas


format cisel v BDE

[*] Roman Lostak <lostak(zv)yssentools(tec)cz> - 12.3.2004 15:38:47

Prosim o radu. V D3 vyrobim tabulku DBGRID a spojim ji s databazi BDE. Ovsem
v tabulce mi cisla ukazuji na hafo desetinnych mist i prestoze mam v BDE
nastaveny jen dve. V database desktopu to ukazuje OK ale v DBGRID nikoli.
poradte, prosim, co s tim.

Diky ROman Lostak


Jak zobrazit ruzne documenty v jednom OleContainer

[*] Lee Karas <lkaras(zv)maxprocessing(tec)com> - 12.3.2004 15:38:47

Ahoj,
Potrebuji za behu zobrazit (jen pro cteni) documenty jako MS Word, Excel,
Accrobat v me aplikaci. Zvolil jsem proto OleContainer ale nevim jak ji
prinutit tyto documenty zobrazit. V design time dokazi vybrat treba Excel
ale pak to nedokazi dynamicky zmenit trebas na PDF. Nezabyvali jste se nekdo
timto?

Dekuji.

LK.
D7, W2K, MS SQL 2000

Komunikace pres internet, stazeni, rozbaleni - zac

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.3.2004 15:04:39

> Ja tohle resim v .NET, to je na podobne veci primo stavene. Klient se
> spoji se serverem, server posle klientovi aktualni cisla verzi (v XML),
> klient si je porovna se svymi verzemi a pak si vyzada stazeni aktualizaci.
> V .NET to jde docela snadno, ale nemam tuseni, jak to udelat v Delphi.
> Problemem je hlavne strana serveru, jak ji spustit v ramci prostredi ktere
> je nastavene na serveru, aniz by zaplakala bezpecnost. Zrejme je to
> resitelne i v Delphi, presto mi .NET pripada mnohem vhodnejsi.

No to je fakt sila! Tady to vypada, ze v nicem jinem nez v .NETu snad ani
programovat nejde. ;-)

Copak je problem v delphi stahnout informace o verzich na serveru? (treba
i klidne v tom tvem XML?) Ono to jde, a dokonce volanim jedne jedine
funkce, kdyz pouzijes Synapsi! ;-)

Stejne tak stazeni aktualizace, treba i s pomoci SSL, jde take volanim
jedne jedine funkce, a mas to take zabezpecene, takze mi fakt nejak
unika, proc by to zakonite melo byt s .NETem mnohem jednodusi.

A strana serveru? Tim myslis upusteni dvou souboru do adresare na
libovolnem WWW serveru? No nic, jen jsem tim vlastne chtel rict, ze s
.NETem jde delat lecos, ale obcas je to trosku kanon na vrabce.


--
Lukas Gebauer.

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

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