Archív konference Delphi
Zpět na výběr roku archívu nebo přejít na fulltextové vyhledávání v konferenci.
Kompnenty pro bublinkovou napovedu
[*] Development <development(zv)cmail(tec)cz> - 29.8.2004 11:07:26
Ahoj,
> neznate nekdo spolehlive free komponenty pro bublinkovou napovedu?
balloon-2.0, ve W98 i WXP nebyly problemy, doporucuji.
{
Balloon - using Balloon-shaped windows in your Delphi programs
Copyright (C) 2003 JWB Software
Web: http://people.zeelandnet.nl/famboek/delphi/
Email: jwbsoftware(zv)zeelandnet.nl
Changes:
--------
Kai Gossens (01/10/2003)
+ added property AnimationType
+ added property AnimationSpeed
+ added XP-Shadow support in CreateParams
! changed ShowControlBalloon and ShowPixelBalloon to allow only
one balloon for each connected control
! changed durationtime to milliseconds (seems better for me)
}
Pak jeste snad XBaloon:
{*************************************************************}
{ XBaloon Component for Delphi 16/32 }
{ Version: 1.6 }
{ Author: Aleksey Kuznetsov }
{ E-Mail: info(zv)utilmind.com }
{ Home Page: http://www.utilmind.com }
{ Created: January, 20, 1999 }
{ Modified: July, 1, 1999 }
{ Legal: Copyright (c) 1999, UtilMind Solutions }
{*************************************************************}
Mirek
Firebird - rychlost insertu
[*] Tomas Michalik <michalik(zv)proca(tec)cz> - 28.8.2004 18:32:19
Tomas Bradle wrote:
> Zdravim vsechny,
>
> mam aplikaci, ktera zapisuje do protokolu hlaseni o sve cinnosti - do tabuly
> ERRLOG se sloupecky ID(integer), TS(timestamp), MSG(varchar). Behem
> zkusebniho provozu (cca 3 tydny) se tam nahromadilo cca 65 tis. zaznamu. Na
> before insert triggeru mam mechanizmus zjistovani, jestli zaznam se stejnym
> ID jiz existuje
>
> DECLARE VARIABLE CNT INTEGER;
> BEGIN
> IF (NEW.ID IS NULL) THEN
> NEW.ID=gen_id(ID_ERRLOG, 1)*100+STATION_ID();
> SELECT COUNT(*) FROM ERRLOG WHERE ID=NEW.ID INTO :CNT;
> IF (:CNT > 0) THEN
> NEW.ID=-1;
> END
Tam, kde nemusis, se nezdrzuj volanim "select count(*)", ale pouzij
konstrukci "if exists"
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID=gen_id(ID_ERRLOG, 1)*100+STATION_ID();
if (exists (select *
from ERRLOG
where WHERE ID=NEW.ID)) then
NEW.ID=-1;
END
========================
Tomas Michalik
vyvoj IS
ProCA, spol. s r.o.
V Luzich 818
Praha 4 - Libus
140 00, Czech Republic
tel: +420 234646446
fax: +420 234646120
michalik(zv)proca(tec)cz
http://www.proca(tec)cz
Firebird - rychlost insertu
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 28.8.2004 15:38:08
No jo, ja tam ten index opravdu nemam, myslel jsem, ze jo a nenapadlo me se
podivat, takze jako u 90% zavad, zase nejaka "blbost"...
Ted uz je to cca 20 ms.
diky
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Jakub Dusek" <delphi(zv)corexpert.com>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Saturday, August 28, 2004 3:06 PM
Subject: Re: Firebird - rychlost insertu
> Pole ID tabulky ERRLOG je primarni klic? Pokud ne, je na nej vytvoren
> index?
>
> Jakub Dusek
>
Firebird - rychlost insertu
[*] Jakub Dusek <delphi(zv)corexpert(tec)com> - 28.8.2004 15:06:06
Pole ID tabulky ERRLOG je primarni klic? Pokud ne, je na nej vytvoren
index?
Jakub Dusek
----------------------------------------------------------------------
web: http://www.corexpert.com, mobile: +420 604 615 795, ICQ: 86063232
odesilani smsek, vizitek, log a melodii, snadna integrace do Vaseho IS
=> Sms GateKeeper, Sms GateKeeper Service
======================================================================
Saturday, August 28, 2004, 2:42:04 PM, you wrote:
TB> SELECT COUNT(*) FROM ERRLOG WHERE ID=NEW.ID INTO :CNT;
Firebird - rychlost insertu
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 28.8.2004 14:42:04
Zdravim vsechny,
mam aplikaci, ktera zapisuje do protokolu hlaseni o sve cinnosti - do tabuly
ERRLOG se sloupecky ID(integer), TS(timestamp), MSG(varchar). Behem
zkusebniho provozu (cca 3 tydny) se tam nahromadilo cca 65 tis. zaznamu. Na
before insert triggeru mam mechanizmus zjistovani, jestli zaznam se stejnym
ID jiz existuje
DECLARE VARIABLE CNT INTEGER;
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID=gen_id(ID_ERRLOG, 1)*100+STATION_ID();
SELECT COUNT(*) FROM ERRLOG WHERE ID=NEW.ID INTO :CNT;
IF (:CNT > 0) THEN
NEW.ID=-1;
END
a v after insert triggeru mam
DELETE FROM ERRLOG WHERE ID=-1;
tato kombinace prakticky zpusobi, ze pokus o vlozeni jiz existujiciho
zaznamu bude ignorovan. To je jev, ktery se vzhledem k povaze aplikace muze
vyskytnout cca jedenkratza 500-1000 zaznamu a nelze (!!!) jej vyloucit (je
to pripad, kdy (NEW.ID IS NOT NULL)).
Pri odmerovani doby vykonavani jednotlivych insertu (kazdy insert je
samozrejme v samostatne transakci) mi vysla doba cca 800 ms. Po vymazani cca
30 tis zaznamu z cela tabulky (tech nejstarsich) se zkratila doba cca na 200
ms.
Mam dotazy:
1. jaky je duvod tohoto zkraceni ? - chtel bych lepe pochopit cinnost FB
2. je mi jasne, ze uvedeny SELECT count(*) muze byt zasove narocny (?),
existuje neco rychlejsiho ? (o moznosti nechat to spadnout na exception
uvazuji)
3. chci samozrejme udelat nejake automaticke odmazavani, jeste jsem se
nerozhodl jak - jaka by byla nejlepsi metoda ?
diky
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
instalace .net
[*] Martin Falta <martin.falta(zv)atlas(tec)cz> - 28.8.2004 14:28:03
Ahoj,
zkus si ten distribucni balicek napred rozbalit do nejakeho adresare a
potom spustit soubor install.exe.
Distribucni balicek rozbalis takhle (bez uvozovek):
"dotnetfx /C /T:<cela cesta>"
Saturday, August 28, 2004, 2:09:16 AM, you wrote:
C> Moc se omlouvam za offtopic,ale uz jsem prosel spoustu for, MS web,zkousel jsem MS podporu, ale nic.
C> Takze: pri instalaci .NET 1.1 CZ (ne sdk), mi to akorat hodi hlasku s nadpisem "p\" (bez uvozovek) obsahujic "Nelze najit pozadovany prostredek." a skonci.
C> Zkousel jsem zapnout vsechny sluzby, jestli jsem omylem neco duleziteho nevypnul, ale nic.
C> Jak to zprovoznit?
--
Best regards,
Martin mailto:martin.falta(zv)atlas(tec)cz
OT: instalace .net
[*] Cermi <cermiforum(zv)centrum(tec)cz> - 28.8.2004 02:09:16
Moc se omlouvam za offtopic,ale uz jsem prosel spoustu for, MS web,zkousel jsem MS podporu, ale nic.
Takze: pri instalaci .NET 1.1 CZ (ne sdk), mi to akorat hodi hlasku s nadpisem "p\" (bez uvozovek) obsahujic "Nelze najit pozadovany prostredek." a skonci.
Zkousel jsem zapnout vsechny sluzby, jestli jsem omylem neco duleziteho nevypnul, ale nic.
Jak to zprovoznit?
WinXP SP1,D6ent
Zkousel jsem to i na W98, se stejnym vysledkem
Neni mozny ze se "nejak blbe stahnulo"? Stahoval jsem to pres GetRight asi na 3x. Znova to stahovat nechci (modem)
Cermi
ja.cermi(zv)centrum(tec)cz
ICQ 159971304
http://cermi.wz(tec)cz
Sinea a tisk pres terminalovy server
[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 27.8.2004 23:05:04
> From: David Fajfr
>
> Problem ale nastava s tiskem. Tiskarna se mi namapuje a je k
dispozici.
> Zkusebni stranku z properties tiskarny se normalne podari vytisknout.
Ale
> pri prikazu TSestava.PrintTo nebo TSestava.Preview jen problikne
> Pripravuji tisk polozky... a dal se nic nestane.
Preview musi jit vzdy, nezavisle na tom, jaka a jestli vubec nejaka
tiskarna je k dispozici. Nebude problem nekde jinde?
Vaclav Krmela
InnoSetup a kopirovani souboru
[*] Ludek ZITA <konference(zv)sales(tec)cz> - 27.8.2004 17:16:41
Of Martin Schayna
> Jonas Marian wrote:
> > Ve svem programu pouzivam funkci, ktera zkusi na internetu
> najit novou
> > verzi programu a provest upgrade. V programu MujProgram.exe
> je kod pro
> > stazeni souboru Update.exe, ktery spustim a zaroven ukoncim
> > MujProgram.exe pomoci Application.Terminate. Update.exe je
> instalacni
> > program vytvoreny v InnoSetup. Na rychlych pocitacich mi naskakuje
> > hlaska, ze soubor MujProgram.exe nelze prepsat.
> >
> > Je mozne v InnoSetup 4.2.7 nejak toto osetrit ? (vlozit
> nejaky flag u
> > souboru nebo nejakou prodlevu pred kopirovanim souboru)
> >
> > Dekuji Marian
>
> Muzes si v [Code] sekci napr. do InitializeSetup napsat
> cokoliv, tj. napr. pazourske cekani par set ms, nebo treba
> cekani do doby nez zanikne urcite okno, nebo kombinace obeho
> (doporucuji).
Ahoj.
Presne tak, ja to mel
Repeat
Sleep(500)
Until not FindWindow....
Sleep(500)
....
Slo by to asi i elegantneji :)
Ludek
Sinea a tisk pres terminalovy server
[*] David Fajfr <davidfajfr(zv)seznam(tec)cz> - 27.8.2004 16:42:39
Ahoj,
Pokousim se rozjet aplikaci pres Win 2003 server. Jsem pripojeny jako
Terminal User.
Problem ale nastava s tiskem. Tiskarna se mi namapuje a je k dispozici.
Zkusebni stranku z properties tiskarny se normalne podari vytisknout. Ale
pri prikazu TSestava.PrintTo nebo TSestava.Preview jen problikne Pripravuji
tisk polozky... a dal se nic nestane. Nevite nekdo co s tim?
David
InnoSetup a kopirovani souboru
[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 27.8.2004 14:38:30
Jonas Marian wrote:
> Ve svem programu pouzivam funkci, ktera zkusi na internetu najit
> novou verzi programu a provest upgrade. V programu MujProgram.exe je
> kod pro stazeni souboru Update.exe, ktery spustim a zaroven ukoncim
> MujProgram.exe pomoci Application.Terminate. Update.exe je instalacni
> program vytvoreny v InnoSetup. Na rychlych pocitacich mi naskakuje
> hlaska, ze soubor MujProgram.exe nelze prepsat.
>
> Je mozne v InnoSetup 4.2.7 nejak toto osetrit ? (vlozit nejaky flag u
> souboru nebo nejakou prodlevu pred kopirovanim souboru)
>
> Dekuji Marian
Muzes si v [Code] sekci napr. do InitializeSetup napsat cokoliv, tj. napr.
pazourske cekani par set ms, nebo treba cekani do doby nez zanikne
urcite okno, nebo kombinace obeho (doporucuji).
Martin Schayna
indy versus synapse - II
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 27.8.2004 14:14:28
> byt trosku (=dost) jina, nez popisuji nejake principy. Kupodivu jsem
> cast vysvetleni nenasel na Inetu, ale v knize od M.Bacha, principy
> operacniho systemu Unix (zvanou Unixova bible). Uz vim proc. V ni je
> velmi pekne vysvetlen princip fungovani Berkely Socketu, v4.3 (nebo
> tak nejak). Taky me prekvapilo, ze Microsoft skoro presne toto
> implementoval ve svem Winsock. Uz mene me prekvapilo, ze ze se o
Microsoft se nikdy netajil s tim, ze jeho Winsock vychazi z BSD
socketu. Je to na Microsoft velmi prekvapive, ze se nesnazil vytvorit
zcela svoje nove rozhrani, ale misto toho vysel z jineho pouzivaneho
rozhrani, ktere jen 'dovylepsil' o nove funkce pro jeho 'asynchronni'
sockety.
To ma pro nas programatory velky uzitek, protoze pokud pouzivas
blokujici nebo neblokujici sockety, je velmi snadne tvuj kod portovat
na jiny system, ktery pouziva take BSD sockety. Treba na Linux, jak
to dela Synapse.
> podstate dela operacni system. Moji aplikaci to "dava na vedomi" pres
> handler toho socketu. Proto to tak funguje.
Presneji receno, Socket z pohledu Winsocku je nejaka interni
struktura reprezentovana handlem. Ta struktura obsahuje informace o
obou koncich spojeni, obsahuje komunikacni buffery, atd. Tedy kazdy
socket vyzaduje v systemu nejakou nenulovou pamet.
> Jen tak pro zajimavost. Kdyz jsem prolezal zdrojaky Indy,
> prekvapilo me, jak neuveritelne slozite (vsminete si, jak se
> snazim vyhout slovu prasacky) jsou Indy udelany. Muj soukromy
> dojem, prosim nekomentovat.
Mne to neprekvapuje, ja to rikam porad. ;-) Ale je to opet muj
soukromy nazor, se kterym klidne muze kdokoliv nesouhlasit.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
default tiskarna
[*] Vlastimil Zdenek <delphi(zv)gestore(tec)cz> - 27.8.2004 13:42:25
Zdravim vsechny,
muzete mi prosim poradit, jak zjistim index default tiskarny?
V moji aplikaci pouzivam toto:
.......
Tiskarna : String;
WBK := Excel.Workbooks;
......
Tiskarna := Printers.Printer.Printers.Strings[0]; <== zde bych potreboval DEFAULT tiskarnu stanice....
Wokno := FindWindow(PChar(NewSoubor),nil);
SetForegroundWindow(Wokno);
WBK.PrintOut(1,1,1,True,Tiskarna,False,False,1);
......
Diky moc za vse
D5 Ent
Vlasta
odstraneni diakritiky
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 27.8.2004 13:08:23
> potreboval bych z libovolneho textu (zdrojem muze byt RichEdit,
> TMimeMess ze synapse) odstranit diakritiku. Nevite nekdo o nejake
> funkci ci komponente, ktera by to umela?
A proc na to nepouzijes Synapsi, kdyz uz ji pouzivas? ;-)
s := CharsetConversionEx(s, GetCurCP, GetCurCP, Replace_Czech);
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
OT: InnoSetup a kopirovani souboru
[*] Jonas Marian <jonas(zv)komercpoj(tec)cz> - 27.8.2004 13:04:22
Ve svem programu pouzivam funkci, ktera zkusi na internetu najit novou verzi programu a provest upgrade. V programu MujProgram.exe je kod pro stazeni souboru Update.exe, ktery spustim a zaroven ukoncim MujProgram.exe pomoci Application.Terminate. Update.exe je instalacni program vytvoreny v InnoSetup. Na rychlych pocitacich mi naskakuje hlaska, ze soubor MujProgram.exe nelze prepsat.
Je mozne v InnoSetup 4.2.7 nejak toto osetrit ? (vlozit nejaky flag u souboru nebo nejakou prodlevu pred kopirovanim souboru)
Dekuji Marian
Prubeh odesilani souboru pres HTTP pomoci WinInet
[*] Karel Pecinka <k.pecinka(zv)seznam(tec)cz> - 27.8.2004 13:02:22
Cauky,
pouzivam ke stazeni i odesilani souboru protokol HTTPS, knihovnu
WinInet, samozrejme s implementaci specialniho serveru. Funguje mi vse
krasne, jak upload, tak download. Potreboval bych ale zobrazovat
ukazatel prubehu pri uploadu, ale nevim, jak na to. Pozadavek s daty
posilam pomoci httpsendrequest(..). Ukazatel u downloadu mam vyresen
jinak - data prijimam po castech tak, jak prichazeji. Mam i reseni pres
Synapsi, ktere take funguje bezchybne vcetne ukazatele uploadu, jenom v
nekterych pripadech nedojde k HTTP spojeni, zejmena z velkych
zabezpecenych siti.
Byl bych vdecny za jakoukoli radu, jak zapsat mnozstvi odeslanych dat do
nejake globalni promenne.
Diky.
Karel, D5, WinInet
Kontrola telefonickeho pripojeni
[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 27.8.2004 12:18:18
Fajn, ale ja to potrebuji do vlastni aplikace.
----- Original Message -----
From: "Petr Brant" <brant(zv)dcomm(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Friday, August 27, 2004 12:10 PM
Subject: Re: Kontrola telefonickeho pripojeni
> Pokud ti jde o hlidani, aby nejaky ActiveX nepresmeroval volani na "zlutou
> linku", tak na to existuje jiz fura reseni, napr. Optim Access Dial a
mnoho
> dalsich je zdarma ke stazeni.
Kontrola telefonickeho pripojeni
[*] Petr Brant <brant(zv)dcomm(tec)cz> - 27.8.2004 12:10:11
Pokud ti jde o hlidani, aby nejaky ActiveX nepresmeroval volani na "zlutou
linku", tak na to existuje jiz fura reseni, napr. Optim Access Dial a mnoho
dalsich je zdarma ke stazeni.
RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://brant.wz(tec)cz <http://brant.wz(tec)cz> > Nemate nekdo zpusob jak jednoduse ohlidat zmenu telefonniho cisla pri
> vytacenem spojeni? Zkousel jsem GetDialParamsEntry ze 1001tt ale nejak se
> telefonniho cisla nemuzu dopatrat. Nemate nejakou fintu nebo hotove
> reseni?
>
odstraneni diakritiky
[*] Fedor 'fi0dor' Tirsel <fi0dor(zv)fi0dor.info> - 27.8.2004 12:04:11
: Dobry den,
Zdravim,
: potreboval bych z libovolneho textu (zdrojem muze byt RichEdit, TMimeMess ze
: synapse) odstranit diakritiku. Nevite nekdo o nejake funkci ci komponente,
ktera
: by to umela?
ja mam na to takuto funkciu:
//prekonvertuje diakritiku do asci
function slovakToAscii(InStr: string): string;
var i :longint;
kde :smallInt;
const SlovakStr = 'allroacdeeinorstuuuuyzACLLRDAEEINUOORSTUUUYZ';
AsciiStr = 'allroacdeeinorstuuuuyzACLLRDAEEINUOORSTUUUYZ';
begin
result := InStr;
for i := 1 to length(InStr) do
begin
kde := pos(InStr[i], SlovakStr);
if kde > 0 then result[i] := AsciiStr[kde];
end;
end;
S pozdravom...
--
Fedor 'fi0dor' Tirsel
www.fi0dor.info
Kontrola telefonickeho pripojeni
[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 27.8.2004 11:52:10
Nemate nekdo zpusob jak jednoduse ohlidat zmenu telefonniho cisla pri
vytacenem spojeni? Zkousel jsem GetDialParamsEntry ze 1001tt ale nejak se
telefonniho cisla nemuzu dopatrat. Nemate nejakou fintu nebo hotove reseni?
Martin
D5Pro, W2000, XP
odstraneni diakritiky
[*] Petr Kuklik <pkuklik(zv)cerny-ps(tec)cz> - 27.8.2004 11:58:10
Dobry den,
potreboval bych z libovolneho textu (zdrojem muze byt RichEdit, TMimeMess ze synapse) odstranit diakritiku. Nevite nekdo o nejake funkci ci komponente, ktera by to umela?
Diky Petr
Prepinani RTS
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 27.8.2004 11:14:07
A virtualni COM porty pres TCP/IP
> je jiz kapitola sama pro sebe :-)
Jo, ty jsou moje oblibene :))
Pozivam moxa DE211, funguje zde jak RS232, tak RS485 bez problemu.
U tohoto prevodniku je dost velky problem s prikazem purgecom, trva
hodne dlouho (stovky ms).
Pripadne si ted hraju s MOXA NE4000T, ten ma zase zpozdeni
200 ms pri odesilani prijatych byte (seskupovani byte do paketu
na Eth).
Slavek
Prepinani RTS
[*] Jan Masek <jan.masek(zv)mcu(tec)cz> - 27.8.2004 11:00:06
> > To neni az tak uplne pravda. Softwarove to samozrejmne resil
> > lze za predpokladu, ze mate pristup na registry UARTu. Tam je
> > mozne ziskat informaci o odeslani posledniho znaku. Tedy
> > nespolehat na blbe napsane drivery woken, ale na rovnou na
> > HW. Osobne to mam otestovane na W98/ME do rychlosti 115k. Na
>
> Tohle plati POUZE na standartnich COMech, pokud pouzijete
> USB, Eth, .. tak to stejne nebude fungovat.
>
> Pokud se ovsem bavime o klasickych comech (u nb mam jen USB)
> tak mate pravdu.
>
Prominte mi mou pomalost v chapani informacni hodnoty Vaseho prispevku.
Zcela srozumitelne jsem napsal: "za predpokladu, ze mate pristup na registry UARTu".
Tim je snad naprosto jasne a jednoznacne receno, ze to nelze pouzit s virtualnimi nahrazkami.
Co se tyce USB->COM prevodniku - vetsina z nich ma rezim, kdy dokazi automaticky
prepnout smer prenosu. Jenze to chce znat neco o USB, HW a vlastni implementaci USB->COM
prevodniku a nespolehat jen na "pseudo" kompatibilitu se standardnimi COM porty :-)
A virtualni COM porty pres TCP/IP je jiz kapitola sama pro sebe :-)
J.Masek
funkce na zjisteni jmena serveru z cesty k databaz
[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 27.8.2004 10:44:05
Ahoj,
potreboval bych funkci, ktera 100% zjistit jmeno serveru na kterym je
databaze, pripadne aby to vratilo prazdnej retezec. Neco mam, ale
selhala by pri linuxovym serveru.
mozna existuej nejak funkce vIBX, nebo jestli mate nekdo hotovyho a
poskytnete budu rad. jinak si to doplacam, ja jen abych nedelal uz
hotovy veci.
dik
Peca
Service Pack 2 for XP a Delphi 7..skusil uz niekto
[*] Mgr. Robert Jendrisak <delphi(zv)minv.sk> - 27.8.2004 08:41:56
> Puvodni zprava ze dne 26.8.2004:
>
>> A co Delphi7? Jedou?
>
> A co Delphi 5, jedou?
>
> Petr Zahradnik, pocitacovy expert
D5 som neskusal, ale D7 mi idu v poriadku
Werki
indy versus synapse - II
[*] nonsense(zv)volny(tec)cz - 26.8.2004 20:05:07
----- PUVODNI ZPRAVA -----
Od: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>
Komu: delphi-l(zv)clexpert(tec)cz
Predmet: Re: indy versus synapse - II
Datum: 25.8.2004 - 9:23:30
> Achich... tak znova a polopate!
Ano, natvrdlik dekuje ....
>
> na tvem pocitaci mas jeden socket. n druhem pocitaci mas druhy
> socket. Jsou to dva ruzne sockety. jeden je u tebe(tedy lokalni
> socket), druhy je na jinem pocitaci. Dva ruzne sockety. Ok?
>
> Ale i pres to kazdy z techto socketu je definovan jako dvojice
> adres,
> tvoje lokalni adresa a pot a adresa a port druhe strany. Tedy,
> mas
> ctyri udaje... lokalni adresa, lokalni port, vzdalena adresa a
> vzdaleny port. Na rozliseni jednotlivych ocketu v ramci jednoho
> pocitace ti staci, aby se lisila alespon jedna z techto ctyr
> polozek.
Nez zacnu zase mit pritrouble poznamky ....
Mas v podstate pravdu. Je to tak, jak si se mi to snazil (az
doted) vysvetlit. Presneji receno, bezezbytku tak. Aby ale nebylo
vsechno tak zarive jasave, kolega Fejfar mel taky kus pravdy. Ta
potiz (jak jsem utrapen a uhonen zjistil) je v tom, ze se
pouzivaji stejna slova, pokazde s trochu jinym obsahem. A to je
prave ta svinarna. Je si to podobne, ale ne stejne. Pojem socket
z pohledu admistratora relevantnich systemu je chapan opravdu
tak, jak jsem se snazil vysvetlit ve svem (asi) prvnim dotazu.
Pojem socket z pohledu programatora (na API "urovni") je presne
ten, co jsi se snazil natvdlikovi (=me) objasnit. Kdyz jsem
procetl asi tunu papiru (vecery a noce umim travit
prijemneji...), tak se mi (snad) problem trochu objasnil. Po
prekonani zaludnosti v podobe toho, ze veskere popisy datove
struktury tykajici se socketu (ktere jsem vygooglil) opravdu
popisuji pouze jeden par adresa:port. Doslo mi, ze datova
struktura vytvorena jadrem operacniho systemu pro obshulu
sitoveho spojeni, muze byt trosku (=dost) jina, nez popisuji
nejake principy. Kupodivu jsem cast vysvetleni nenasel na Inetu,
ale v knize od M.Bacha, principy operacniho systemu Unix (zvanou
Unixova bible). Uz vim proc. V ni je velmi pekne vysvetlen princip
fungovani Berkely Socketu, v4.3 (nebo tak nejak). Taky me
prekvapilo, ze Microsoft skoro presne toto implementoval ve svem
Winsock. Uz mene me prekvapilo, ze ze se o tomto nijak podrobne
na (ani svych strankach MSDN) nerozepisuje, ani nepopisuje. V
podstate mlcky dodrzuje fukncionalitu Unix systemu vcetne
pojmenovani vetsiny funkci, kdy provazani data na drate->moje
aplikace vede sice pres sockety, ale urceni o jaky socket se
jedna v podstate dela operacni system. Moji aplikaci to "dava na
vedomi" pres handler toho socketu. Proto to tak funguje. Proto
taky dokud se neprovede obslouzeni navratu z funkce Accept (na
strane naslouchaciho serveru) nelze navazat nove spojeni. Duvod
je uz jasny. Diky Lukasi Gebauere !!
P.S.
prosim o spravny obsahovy vyklad slov v uvozovkach....
>
> Jak je to s tim naslouchacim socketem, kde zadna druha strana
> neexistuje? Inu, prazdna IP adresa a port je take preci
hodnota! > Dik
> tomu dokazes rozlisit mezi packety, ktere navazuji spojeni, a
> mezi
> packety, ktere jiz navzano maji.
Ano, jen zopakuji. Ve "spolupraci s operacnim systemem a
prislusnym handlerem toho socketu".
>
> Ver vlastnim ocim! Stahni si ten Ethereal, a zachyt si packety
s > komunikaci s tym serverem, a tam se podivej na vlastni oci,
ze
> mam
> pravdu. ;-)
Uz verim.
A jsem jsem docela rad, ze neumru jako totalni hlupak.
Ethereal a jim "nachytane" pakety byla ta druha pulka, co me
presvedcilo.
Jen tak pro zajimavost. Kdyz jsem prolezal zdrojaky Indy,
prekvapilo me, jak neuveritelne slozite (vsminete si, jak se
snazim vyhout slovu prasacky) jsou Indy udelany. Muj soukromy
dojem, prosim nekomentovat.
Takze, kdyz se tu nekdo kdysi ptal, co je lepsi, jestli Indy,
nebo Synapse, davam jasne hlas Synapsi. A ted uz si umim i
zduvodnit....
A Pak bych rad velmi, ale opravdu velmi, podekoval Lukasovi
Gebauerovi, ze jako jediny mel tu trpelivost a dal si tu praci,
ze mi pomohl s objasnenim tohoto problemu. I kdyz ho moje
natvrdlost asi uz musela stvat... :-)
Takze diky.
Jaroslav nonsense Lukes
--
Hrajte s nami o 1000 Kc kazdy den! Pripojte se pres VOLNY a
tipujte teplotu na vybranem miste v Ceske republice. Uzijte si
leto s VOLNY na strankach http://soutez.volny(tec)cz.
Prepinani RTS
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 26.8.2004 20:01:07
> To neni az tak uplne pravda. Softwarove to samozrejmne resil
> lze za predpokladu, ze mate pristup na registry UARTu. Tam je
> mozne ziskat informaci o odeslani posledniho znaku. Tedy
> nespolehat na blbe napsane drivery woken, ale na rovnou na
> HW. Osobne to mam otestovane na W98/ME do rychlosti 115k. Na
Tohle plati POUZE na standartnich COMech, pokud pouzijete
USB, Eth, .. tak to stejne nebude fungovat.
Pokud se ovsem bavime o klasickych comech (u nb mam jen USB)
tak mate pravdu.
> NT/2000/XP lze toto pouzit pouze za predpokladu, ze
> zabezpecite pristup na registry, coz se necha nekterymi
> obecnymi IO drivery, nebo vlastnim driverem.
Jedine driveverem. V user space si neskrtnete, to bude fungovat
pouze v kanclu. Pridelovani casu na NT je po 10ms na process !
Priorita jen rika jak casto, nikol kolik (server ma toto kvantum jeste
delsi).
Slavek
Prepinani RTS
[*] Jan Masek <jan.masek(zv)mcu(tec)cz> - 26.8.2004 17:46:58
> Tohle se uz tady nekolikrat resilo, nikdy s uspokojivym vysledkem.
> Softwarove to slusne vyresit nejde, prohledejte konferenci, hledejte
> RS485.
> Ja bych to resil hadwarove (automaticky prevodnik), nebo karta.
>
>Windows sice maji zpravu, ze je vystupni fronta prazdna, ale
>ta nechodi jak by clovek cekal, tahle udalost prijde, kdyz je jeste
>posledni znak ve vystupnim bufferu (psal to tusim nekdo od Papoucha).
To neni az tak uplne pravda. Softwarove to samozrejmne resil lze za predpokladu,
ze mate pristup na registry UARTu. Tam je mozne ziskat informaci o odeslani posledniho
znaku. Tedy nespolehat na blbe napsane drivery woken, ale na rovnou na HW.
Osobne to mam otestovane na W98/ME do rychlosti 115k. Na NT/2000/XP lze
toto pouzit pouze za predpokladu, ze zabezpecite pristup na registry, coz se necha
nekterymi obecnymi IO drivery, nebo vlastnim driverem.
J.Masek
Prepinani RTS
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 26.8.2004 17:46:58
> Obdoba je i kdyz pouziju synaser.
> ser.RTS := true;
> ser.SendBuffer((zv)AData, ACnt);
> ser.RTS := false;
I kdybys to nedelal rucne, ale zapnul si misto toho EnableRTSToggle u
Synaseru, problem bude trvat i nadal. Je to proste problem windows
driveru. Ten problem se opravdu zadnou knihovnou rozumne vyresit
neda. Proto mas stejny problem se vsim, co jsi zkusil.
V pripade Synaseru a pouziti metody EnableRTSToggle, to bude fungovat
vyrazne lepe, kdyz to pobezi na W9x.
Nejlepsi reseni je ale pouzit takovy prevodnik, ktery nepotrebuje
zadne explicitni prepinani, protoze se prepina zcela sam automaticky.
Takove prevodniky existuji!
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Prepinani RTS
[*] Jan Harman <jharman(zv)volny(tec)cz> - 26.8.2004 17:16:55
Obdoba je i kdyz pouziju synaser.
ser.RTS := true;
ser.SendBuffer((zv)AData, ACnt);
ser.RTS := false;
nicmene, signal RTS spadne az za 5-15ms po odvysilani posledniho znaku. V te
dobe uz druha strana davno zacala odpovidat, takze nechytnu zacatek.
Myslel jsem ze je to hardwareova zalezitost komunikacniho driveru. Hmm asi
ne:-(
Honza
Prepinani RTS
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 26.8.2004 17:02:54
Tohle se uz tady nekolikrat resilo, nikdy s uspokojivym vysledkem.
Softwarove to slusne vyresit nejde, prohledejte konferenci, hledejte
RS485.
Ja bych to resil hadwarove (automaticky prevodnik), nebo karta.
Windows sice maji zpravu, ze je vystupni fronta prazdna, ale
ta nechodi jak by clovek cekal, tahle udalost prijde, kdyz je jeste
posledni znak ve vystupnim bufferu (psal to tusim nekdo od Papoucha).
Dalsim problemem je casovani ve windows, Vam pak hrozi, za ztratite
zacatek
odpovedi.
Ve windows NELZE cekat presne, lze jen cekat nejmene
nepriklad sleep(10) pozka nejmene 10 ms, ale klidne i 3x tolik
(pokud byl kod odsttranen z pameti a musi se natahnout z disku).
Pokud budete pouzivat nejakou komponentu, doporucuji velmi dukladne
zkontrolovat jeji kod.
Pokud tento program chcete pustit mezi lidi, tak se pripravte na hromadu
problemu, nektere COM porty reaguji uplne jinak (napriklad USB, nebo
Eth, kde jsou velka dopravni zpozdeni).
Slavek
> Normalne v DCB strukture to je RTS_CONTROL_TOGGLE. Ale
> komponenta z AsyncProf ma specialni mod RS485Mode, tak
> pouzivam tento. Potrebuji to pro prepinani smeru RS485 linky.
>
Lze ve FB 1.5 prevest tabulku z radku na sloupce?
[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 26.8.2004 16:36:52
To co chces je transpozice tabulky, v FB urcite nejde (nejake nastroje jsou v ORACLE a neco snad v Accessu).
Pokud to lze udelat na klientovi, zkus se podivat na ActiveX PivotTable.
Pavel
Prepinani RTS
[*] Jan Harman <jharman(zv)volny(tec)cz> - 26.8.2004 16:24:51
> > mam problem s prepinanim RTS. Vyslu blok dat a RTS signal se prepne az
> > za asi 10-15ms. Cas neni vzdy stejny, dokonce se to jednou za cca 30
> > vyslani prepne i spravne, hned za vyslanim posleniho znaku. Nesetkal
> > jste se nekdo s timto problemem prosim? Zkousim uz i ruzne komponenty
> > pro komunikaci pres Com, zacal jsem s AsyncFree...pres jednoduche
> > "OpenFile..." a skoncil jsem u AsyncProfessional. Trapim se s tim uz
> > dva dny a NIC. Mnohokrat dekuji za kazdou pomoc.
>
> Jakym zpusobem to RTS prepinas? jde ti o normalni RTS handshake, nebo
> tim RTS signalem ridis nejaky prevodnik?
RTS signalem potrebuji ridit smer u prevodniku. Ten RTS signal chodi, ale ma
dost velke variabilni zpozdeni. Zkousel jsem na dalsich 3 pocitacich, se
stejnym vysledkem.
Prepinani RTS
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 26.8.2004 16:04:49
> mam problem s prepinanim RTS. Vyslu blok dat a RTS signal se prepne az
> za asi 10-15ms. Cas neni vzdy stejny, dokonce se to jednou za cca 30
> vyslani prepne i spravne, hned za vyslanim posleniho znaku. Nesetkal
> jste se nekdo s timto problemem prosim? Zkousim uz i ruzne komponenty
> pro komunikaci pres Com, zacal jsem s AsyncFree...pres jednoduche
> "OpenFile..." a skoncil jsem u AsyncProfessional. Trapim se s tim uz
> dva dny a NIC. Mnohokrat dekuji za kazdou pomoc.
Jakym zpusobem to RTS prepinas? jde ti o normalni RTS handshake, nebo
tim RTS signalem ridis nejaky prevodnik?
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Prepinani RTS
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 26.8.2004 16:00:49
Jak signal RTS ovladas ? Je to klasicky handshake, nebo ho nastavujes
rucne ?
Nemas to nahodou pro rizeni smeru prenosu RS485 linky ?
Slavek
> Zdravim,
> mam problem s prepinanim RTS. Vyslu blok dat a RTS signal se
> prepne az za asi 10-15ms. Cas neni vzdy stejny, dokonce se to
> jednou za cca 30 vyslani prepne i spravne, hned za vyslanim
> posleniho znaku. Nesetkal jste se nekdo s timto problemem
> prosim? Zkousim uz i ruzne komponenty pro komunikaci pres
> Com, zacal jsem s AsyncFree...pres jednoduche "OpenFile..." a
> skoncil jsem u AsyncProfessional. Trapim se s tim uz dva dny
> a NIC. Mnohokrat dekuji za kazdou pomoc.
>
> Honza
>
>
>
>
>
>
Prepinani RTS
[*] Jan Harman <jharman(zv)volny(tec)cz> - 26.8.2004 16:10:50
Normalne v DCB strukture to je RTS_CONTROL_TOGGLE. Ale komponenta z
AsyncProf ma specialni mod RS485Mode, tak pouzivam tento.
Potrebuji to pro prepinani smeru RS485 linky.
> Jak signal RTS ovladas ? Je to klasicky handshake, nebo ho nastavujes
> rucne ?
> Nemas to nahodou pro rizeni smeru prenosu RS485 linky ?
>
> Slavek
>
>
> > Zdravim,
> > mam problem s prepinanim RTS. Vyslu blok dat a RTS signal se
> > prepne az za asi 10-15ms. Cas neni vzdy stejny, dokonce se to
> > jednou za cca 30 vyslani prepne i spravne, hned za vyslanim
> > posleniho znaku. Nesetkal jste se nekdo s timto problemem
> > prosim? Zkousim uz i ruzne komponenty pro komunikaci pres
> > Com, zacal jsem s AsyncFree...pres jednoduche "OpenFile..." a
> > skoncil jsem u AsyncProfessional. Trapim se s tim uz dva dny
> > a NIC. Mnohokrat dekuji za kazdou pomoc.
> >
> > Honza
> >
> >
> >
> >
> >
> >
>
>
>
Service Pack 2 for XP a Delphi 7..skusil uz niekto
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 26.8.2004 15:00:43
Puvodni zprava ze dne 26.8.2004:
> A co Delphi7? Jedou?
A co Delphi 5, jedou?
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Service Pack 2 for XP a Delphi 7..skusil uz niekto
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 26.8.2004 14:56:42
A co Delphi7? Jedou?
Mgr. Robert Jendrisak napsal(a):
> Ahoj
>
> Nainstaloval som teraz SP2 pre XP a vsimol som si, ze mi SQL explorer
> nezobrazi memo pre zadavanie
> SQL dotazu pri prihlaseni na databazu. Ma niekto podobny postreh? Mozno je
> to len specificka zalezitost na mojom
> kompe.
>
> Dik
>
> Werki
>
>
>
>
>
>
>
--
______________________________________________________
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
______________________________________________________
Prepinani RTS
[*] Jan Harman <jharman(zv)volny(tec)cz> - 26.8.2004 14:50:42
Zdravim,
mam problem s prepinanim RTS. Vyslu blok dat a RTS signal se prepne az za
asi 10-15ms. Cas neni vzdy stejny, dokonce se to jednou za cca 30 vyslani
prepne i spravne, hned za vyslanim posleniho znaku. Nesetkal jste se nekdo s
timto problemem prosim? Zkousim uz i ruzne komponenty pro komunikaci pres
Com, zacal jsem s AsyncFree...pres jednoduche "OpenFile..." a skoncil jsem u
AsyncProfessional. Trapim se s tim uz dva dny a NIC.
Mnohokrat dekuji za kazdou pomoc.
Honza
Service Pack 2 for XP a Delphi 7..skusil uz niekto
[*] Mgr. Robert Jendrisak <delphi(zv)minv.sk> - 26.8.2004 14:32:40
Ahoj
Nainstaloval som teraz SP2 pre XP a vsimol som si, ze mi SQL explorer
nezobrazi memo pre zadavanie
SQL dotazu pri prihlaseni na databazu. Ma niekto podobny postreh? Mozno je
to len specificka zalezitost na mojom
kompe.
Dik
Werki
Lze ve FB 1.5 prevest tabulku z radku na sloupce?
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 26.8.2004 14:26:39
> Nebo obecneji: lze si v SQL vytvorit z jednotlivych radku
> sloupce? (v T_SEZNAM_VELICIN je ve VELICINA jmeno sloupce a v
> HODNOTA je jeho hodnota a ja bych zadal pouze: select * from
> nejaka_procedura_nebo_neco
> (jako_parametr_ID_3_cislo_21) ).
Moc te sice nechapu, ale zkusim odpovedet.
Pokud chces mit dynamicky pocet sloupcu, tak musis dynamicky generovat
dotaz.
Pak to samozrejme jde, napriklad takto:
SELECT
( SELECT tValue FROM table2 WHERE tKye='PRUMER' AND id=T1.id),
( SELECT tValue FROM table2 WHERE tKye='PLOCHA' AND id=T1.id),
( SELECT tValue FROM table2 WHERE tKye='xxx' AND id=T1.id),
( SELECT tValue FROM table2 WHERE tKye='yyy' AND id=T1.id)
FROM table1 T1 WHERE id=zzz
nebo obdobne
pokud je tKye primarni klic.
SELECT
( SELECT tValue FROM table2 WHERE tKye='PRUMER' ),
( SELECT tValue FROM table2 WHERE tKye='PLOCHA' ),
( SELECT tValue FROM table2 WHERE tKye='xxx'),
( SELECT tValue FROM table2 WHERE tKye='yyy')
FROM rdb$database
Je to odpoved ?
Slavek
Lze ve FB 1.5 prevest tabulku z radku na sloupce?
[*] little_bobes(zv)centrum(tec)cz - 26.8.2004 13:50:36
Zdravim,
predem se omlouvam za krkolomny subjekt, ale nevim, jak jinat toto nazvat.
Dostala se mi do ruky zhruba nasledujici databaze (FB 1.5):
T_SEZNAM_KODU
KOD SL1 SL2 ID_1
==== === === ===
POL1 neco neco 1
POL2 neco neco 2
POL3 neco neco 3
...
T_SEZNAM_VELICIN
VELICINA HODNOTA ID_2
======== ======== ===
BARVA ZELENA 11
BARVA BILA 12
VYROBCE XY123 13
PRUREZ 10 14
...
T_SEZNAM_TYPU
TYP ID_3
==== ===
KABEL 21
MOTOR 22
...
T_PRIRAZENI_TYP_VELICINA
S_ID_3 S_ID_2
===== =====
21 11
21 13
21 14
22 12
22 13
...
T_PROPOJ_KOD_TYP
S_ID_1 S_ID_3
===== =====
1 21
3 22
...
Nyni bych potreboval ciste pomoci SQL (nejakou procedurou) vytvorit
nasledujici vystup (napr. pro ID_3 = 21)
KOD SL1 SL2 ID_1 BARVA VYROBCE PRUREZ
==== === === === ====== ======== =======
POL1 neco neco 1 ZELENA XY123 10
Je mi jasne, ze pro kazde ID_3 muze byt pocet velicin ruzny, ale ja to
potrebuji vzdy pouze pro jedno ID_3.
Je vubec toto ciste pomoci SQL mozne?
Nebo obecneji: lze si v SQL vytvorit z jednotlivych radku sloupce?
(v T_SEZNAM_VELICIN je ve VELICINA jmeno sloupce a v HODNOTA je jeho hodnota
a ja bych zadal pouze: select * from nejaka_procedura_nebo_neco
(jako_parametr_ID_3_cislo_21) ).
Diky i za sebemensi rady a nazory.
S pozdravem
Bob (D4 c/s, FB1.5)
Problem s NetApi32.dll na Win 9X! WAS: Jak zjistit
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 26.8.2004 13:34:35
Super, to bylo presne ono. Na zjisteni aktualniho uzivatele jsem nakonec
pouzil funkci GetLocalUserName z JCL a uz je to OK.
Diky
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Ondrej Kelle
>
> >> Win32 Error. Code 203. System nenalezl zadanou systemovou
> >> promennou.
>
> Aha, tak som si to precital pozornejsie ;-)
> 203 = ERROR_ENVVAR_NOT_FOUND
>
> to bude ten riadok
> L_username.Caption := GetEnvVar('USERNAME');
>
> skratka na tych Windows taka premenna nie je definovana.
> Tu si sa na vlastnej kozi presvedcil o tom, ze je lepsie pouzit
> API funkciu,
> ak taka na dany ucel existuje.
>
Problem s NetApi32.dll na Win 9X! WAS: Jak zjistit
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 26.8.2004 11:24:26
>> Win32 Error. Code 203. System nenalezl zadanou systemovou
>> promennou.
Aha, tak som si to precital pozornejsie ;-)
203 = ERROR_ENVVAR_NOT_FOUND
to bude ten riadok
L_username.Caption := GetEnvVar('USERNAME');
skratka na tych Windows taka premenna nie je definovana.
Tu si sa na vlastnej kozi presvedcil o tom, ze je lepsie pouzit API funkciu,
ak taka na dany ucel existuje.
GetUserName by mala fungovat vsade rovnako.
HTH
TOndrej
Problem s NetApi32.dll na Win 9X! WAS: Jak zjistit
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 26.8.2004 11:18:21
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Ondrej Kelle
> > Win32 Error. Code 203. System nenalezl zadanou systemovou promennou.
>
> Zaujimave, na ktorom riadku sa objavi ta hlaska?
Problem trochu je, ze programuji na Win 2000 (zde je vse OK). Programek pak
testuji i na Win 98 a zde je problem.
Udelal jsem si za kazdym radkem vlastni hlasku, ze tuda program projel.
program Project1;
uses
Forms, Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
ShowMessage('START');
Application.Initialize;
ShowMessage('Application.Initialize;');
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Obe hlasky se objevily, ale hlasky v CreateForm uz ne, nastala chyba. Jde to
neja otestovat kde to krachne, kdyz na PC s Win 98 nemam Deplhi (delam v D5
ent).
> Nemas nahodou este niekde v projekte zabudnute tie staticke deklaracie?
>
Ne, nejsou tam.
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
Model prace s FB
[*] Lauko Stefan <laukosw(zv)naex.sk> - 26.8.2004 10:58:19
----- Original Message -----
From: "Robert Fujak" <robof(zv)inmail.sk>> Prosim o pomoc pri "nakopnuti" ako zacat.
> Mam DB FireBird k datam pristupujem cez SP.
> Moj problem spociva v tom, ze sa neviem rozbehnut v tom ako pristupovat k
> datam v mojej aplikacii.
> Nechcem pouzivat DB komponenty, ale len pristupovat k datam cez
> IBStoredProc. (INSERT/UPDATE/SELECT).
> Dost sa tu popisovalo napisanie a vyuzitie vlastneho tzv. "framework-u".
> Prosim, mozete mi aspon naznacit ako to mam napisat, ja si uz pomaly
neviem
Ahoj,
je mnoho sposobov a zalezi na cielovej aplikacii.
Moj nazor:
- ja pouzivam IBDataSet je to urcity framework ktory tazko prepises na
vlastny co sa tyka pristupu k datam (nakoniec sa dostanes k podobnemu ako
IBDataSet). Tam si mozes zvolit vlastne
select/insert/update/delete/refresh - SQL na kazdy sa pouzije IBSql
(zvlast). Mozes kludne napr. zadat do SelectSQL 'select * from
TvojaSPvracajucaZaznamy(X,Y..)' atd.( v kazdom XxxxSQL mozes vyuzit SP)
- dalsie komponenty (ktore nepoznam) IBO...
- pripadne zahod Delphi a ked chces uplne vsetko programovat rucne mozes
vyuzit napr. Apache-PHP-Firebird :-)
Lauko.
Problem s NetApi32.dll na Win 9X! WAS: Jak zjistit
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 26.8.2004 10:30:17
[snip]
> Pokud programek spustim na Win2000 nabo XP vse je OK. Na Win
> 98 se objevi hlaska:
>
> Win32 Error. Code 203. System nenalezl zadanou systemovou promennou.
Zaujimave, na ktorom riadku sa objavi ta hlaska?
Nemas nahodou este niekde v projekte zabudnute tie staticke deklaracie?
> Hlaska se zrejme tyka promenne LOCALGROUP_MEMBERS_INFO_1 a funkce
> NetLocalGroupGetMembers, ktere nejsou na Win 9X dostupne.
To asi nie. Ten kod v pripade, ze bezi na Windows 9x, netapi32.dll vobec
nepouziva.
HTH
TOndrej
Problem s NetApi32.dll na Win 9X! WAS: Jak zjistit
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 26.8.2004 10:14:16
Podle predesleho sub. jsem provedl nasledujici upravu:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
JclSecurity, StdCtrls, JclSysInfo;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
L_username: TLabel;
L_privilege: TLabel;
ListBox1: TListBox;
Label3: TLabel;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
NetLocalGroupGetMembers: function (
servername: PWideChar;
localgroupname: PWideChar;
level: DWORD;
var bufptr: Pointer;
prefmaxlen: DWORD;
var entriesread: DWORD;
var totalentries: DWORD;
var resumehandle: DWORD): Integer; stdcall;
NetUserGetInfo: function (
servername: PWideChar;
localgroupname: PWideChar;
level: DWORD;
var bufptr: Pointer): Integer; stdcall;
NetApiBufferFree: function (buffer: Pointer): Integer; stdcall;
NetApiDllHandle: HWND;
public
{ Public declarations }
end;
type
PLOCALGROUP_MEMBERS_INFO_1 = ^LOCALGROUP_MEMBERS_INFO_1;
LOCALGROUP_MEMBERS_INFO_1 = record
lgrmi1_sid: PSID;
lgrmi1_sidusage: SID_NAME_USE;
lgrmi1_name: LPWSTR;
end;
function GetEnvVar(const Name:String):String;
var
Form1: TForm1;
ListUsers,ListGroups: TStringList;
implementation
{$R *.DFM}
procedure GetLocalGroupUsers(lpwServer, lpwGroup : PWideChar);
type
TUserArray = array of LOCALGROUP_MEMBERS_INFO_1;
var
pBuffer: Pointer;
cbRead,cbTotal,Res,hRes: Cardinal;
i: Integer;
UserName: PWideChar;
begin
hRes := 0;
repeat
Res := Form1.NetLocalGroupGetMembers(lpwServer, lpwGroup, 1, pBuffer,
1024, cbRead, cbTotal, hRes);
if (Res = 0) or (Res = ERROR_MORE_DATA) then
begin
for i := 0 to cbRead-1 do
begin
UserName := TUserArray(pBuffer)[i].lgrmi1_name;
Form1.ListBox1.Items.Add(WideCharToString(lpwGroup)+':'+UserName);
ListUsers.Add(UserName);
ListGroups.Add(WideCharToString(lpwGroup));
end;
Form1.NetApiBufferFree(pBuffer);
end;
until Res<>ERROR_MORE_DATA;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
L_username.Caption := GetEnvVar('USERNAME');
Label3.Caption := GetWindowsVersionString;
case Win32Platform of
VER_PLATFORM_WIN32_WINDOWS: Label4.Caption := 'Win 9X, ME';
VER_PLATFORM_WIN32_NT:
begin
NetApiDllHandle := LoadLibrary(PChar('NETAPI32.DLL'));
if NetApiDllHandle <>0 then
begin
Label4.Caption := 'Win NT, 2K, XP';
(zv)NetLocalGroupGetMembers :=
GetProcAddress(NetApiDllHandle,'NetLocalGroupGetMembers');
(zv)NetApiBufferFree :=
GetProcAddress(NetApiDllHandle,'NetApiBufferFree');
if ((zv)NetLocalGroupGetMembers<>nil) and ((zv)NetApiBufferFree<>nil) then
begin
ListUsers := TStringList.Create;
ListGroups := TStringList.Create;
try
GetLocalGroupUsers('', 'Administrators'); // prazdny retazec je
lokalny stroj
GetLocalGroupUsers('', 'Power Users');
GetLocalGroupUsers('', 'Users');
L_privilege.Caption :=
ListGroups.Strings[ListUsers.IndexOf(L_username.Caption)];
finally
ListUsers.Free;
ListGroups.Free;
end;
end;
end;
end;
end;
end;
function GetEnvVar(const Name:String):String;
var L:Dword;
begin
L:=GetEnvironmentVariable(PChar(Name),nil,0);
SetString(Result,nil,L);
if GetEnvironmentVariable(PChar(Name),PChar(Result),L) <> L-1 then
begin
RaiseLastWin32Error;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if NetApiDllHandle<>0 then
FreeLibrary(NetApiDllHandle);
end;
end.
Je to jen testovaci programek pro reseni problemu v prechazajicim sub.
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Ing. Igor Vodicka
>
> Jinymi slovy, potrebuji pri spusteni programu zjistit (na Win 9X
> test nemusi
> probehnout), ze aktualni uzivatel je minimalne "power users".
> Program totiz
> potrebuje prava pro zapis do slozek v progam files, kde ja nainstalovany.
>
Pokud programek spustim na Win2000 nabo XP vse je OK. Na Win 98 se objevi
hlaska:
Win32 Error. Code 203. System nenalezl zadanou systemovou promennou.
Hlaska se zrejme tyka promenne LOCALGROUP_MEMBERS_INFO_1 a funkce
NetLocalGroupGetMembers, ktere nejsou na Win 9X dostupne.
Existuje nejaky ekvivalent pro Win 9X nebo nevite nekdo jak z toho ven?
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
Jak odchtytit exception
[*] Petr Brant <brant(zv)dcomm(tec)cz> - 26.8.2004 09:08:11
Je na to udalost Application.OnException. Nebo si stahni JCL a pouzij
ExceptDlg, jen se musi upravit parametry linkeru (vytvorit MAP soubor). Pak
budes mit nejen vypis zasobniku, ale i seznam zavedenych modulu atd. Osobni
a velmi dobra zkusenost.
RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://brant.wz(tec)cz <http://brant.wz(tec)cz>
> pri ladeni programu se mi obcas stane, ze mi na chvili vyskoci okno s
> chybovou hlaskou, ktera sama po chvilce zmizi, bohuzel si ji nestihnu
> precist.
> Exisuje nejaka moznost odchytit globalne pripadne vyjimky a obslouzit si
> je??
>
Jak odchtytit exception
[*] tomsir1.edu(zv)mail.cez(tec)cz - 26.8.2004 09:02:10
Ahoj,
pri ladeni programu se mi obcas stane, ze mi na chvili vyskoci okno s
chybovou hlaskou, ktera sama po chvilce zmizi, bohuzel si ji nestihnu
precist.
Exisuje nejaka moznost odchytit globalne pripadne vyjimky a obslouzit si je
??
Diky Radek
Model prace s FB
[*] Robert Fujak <robof(zv)inmail.sk> - 26.8.2004 01:39:41
Zdravim Vas.
Prosim o pomoc pri "nakopnuti" ako zacat.
Mam DB FireBird k datam pristupujem cez SP.
Moj problem spociva v tom, ze sa neviem rozbehnut v tom ako pristupovat k
datam v mojej aplikacii.
Nechcem pouzivat DB komponenty, ale len pristupovat k datam cez
IBStoredProc. (INSERT/UPDATE/SELECT).
Dost sa tu popisovalo napisanie a vyuzitie vlastneho tzv. "framework-u".
Prosim, mozete mi aspon naznacit ako to mam napisat, ja si uz pomaly neviem
rady. (popripade na mailto:robof(zv)inmail.sk )
Dik
Robo.
synchronizace zmen v DB (FB)
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 21:15:20
No to nevim.. :-) A jaky pekny a myslim, ze urcite free program, toto umi?
:-)>
> Ja bych to resil na urovni datoveho modelu.
> CASE Studio - reverse engineering z obou databazi.
> A pak tyto dva modely porovnat.
> Rozdily tak dostanu prehledne na urovni modelu, nikoli na urovni databaze.
>
> viz kurz CASE Studio 2: Datove modelovani
>
> Honza
FB a dlouhe ulozene procedury
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 25.8.2004 21:15:20
Komponenta TIBDatabase :))
Transakce nestaci :((
Slavek
> > Aby mohly prikazy bezet zaroven MUSU byt ve vice vlaknech, nebo
> > procesech. A pokud pristupuji k DB z vice vlaken, tak co vlakno, to
> > samostatna databaze.
>
> Myslel jste samostatna transakce? OK asi Vam rozumim.. :-)
FB a dlouhe ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 20:55:18
> Aby mohly prikazy bezet zaroven MUSU byt ve vice vlaknech, nebo
> procesech.
> A pokud pristupuji k DB z vice vlaken, tak co vlakno, to samostatna
> databaze.
Myslel jste samostatna transakce? OK asi Vam rozumim.. :-)
SQL - Dotaz na vyber kazdeho 2 nebo 3 zaznamu
[*] jsdelphi(zv)creatix(tec)cz - 25.8.2004 20:17:15
> -----Original Message----- [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Marek
> Subject: SQL - Dotaz na vyber kazdeho 2 nebo 3 zaznamu
>
> jak vyberu kazdy 2 nebo 3 nebo x zaznam z tabulky pomoci sql Marek
Napriklad v ORACLE to jde takto:
Priklad pro kazdy 2. zaznam:
=====================
select * from
(select rownum/2 as r1, round(rownum/2) as r2, a.* from agency a)
where r1 = r2
Jan Skopovy
FB a dlouhe ulozene procedury
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 25.8.2004 18:43:09
Co takle si to poradne precist ?
Aby mohly prikazy bezet zaroven MUSU byt ve vice vlaknech, nebo
procesech.
A pokud pristupuji k DB z vice vlaken, tak co vlakno, to samostatna
databaze.
Pokud pristupujes z jednoho vlakna, tak si soubezne nic nepustis.
Slavek
> > V jedne transakci by mel bezet zaroven POUZE jeden prikaz,
> dokonce by
> > tohle melo platit i o connection.
>
> To znamena, ze pro kazdy dataset - napr. IBClientDataset
> pouzivate jinou transakci? To mi prijde dost silene..
>
> Pokud pouziji jen jednu transakci, tak mohu provest 10 kroku
> s 10 datasety a na konec to vsechno odvolat jednim
> rollback-em.. Ve vasem pripade bych musel rollback volat 10x.
> A nevim zda je uplne ciste volat 10x commit. Zda pokazde
> projde. Po pravde receno nevim, zda je mozne, aby commit neprosel..
FB a dlouhe ulozene procedury
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 25.8.2004 17:21:03
> To je ten duvod - pokud zmenim updatem redek, ktery potom
> bude menit Ul.p., tak dojde ke konfliktu.. Chtel jsem se
> nejak vyhnout zamykani radku, ale asi to nejde.. Kazdy radek
> musi byt oznacen, zda je zamknuty ci nikoliv. Nebo to musi
> byt ulozeno nekde jinde v DB.. Jsou s tim starosti, tak me
> zajimalo, zda se to neda nejak obejit..
Pokud pouzijes SNAPSHOT transakci, tak neni co resit.
Proste ten kdo prijde pozdeji, tak padne.
O nic se nemusis starat.
Pokud chces mermomoci zamykat radky, tak pomoci fake update,
tj. provedes update, ale ni nezmenis.
UPDATE tabl SEL id=id WHERE ...
Jo, jeste doporucuji NOWAIT pro transakce :).
Slavek
FB a dlouhe ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 17:17:02
> V jedne transakci by mel bezet zaroven POUZE jeden prikaz,
> dokonce by tohle melo platit i o connection.
To znamena, ze pro kazdy dataset - napr. IBClientDataset pouzivate jinou
transakci? To mi prijde dost silene..
Pokud pouziji jen jednu transakci, tak mohu provest 10 kroku s 10 datasety a
na konec to vsechno odvolat jednim rollback-em.. Ve vasem pripade bych musel
rollback volat 10x. A nevim zda je uplne ciste volat 10x commit. Zda pokazde
projde. Po pravde receno nevim, zda je mozne, aby commit neprosel..
FB a dlouhe ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 17:13:02
> (pokud nebude provadet update toho sameho radku).
>
> Proboha proc ?
>
To je ten duvod - pokud zmenim updatem redek, ktery potom bude menit Ul.p.,
tak dojde ke konfliktu.. Chtel jsem se nejak vyhnout zamykani radku, ale asi
to nejde.. Kazdy radek musi byt oznacen, zda je zamknuty ci nikoliv. Nebo to
musi byt ulozeno nekde jinde v DB.. Jsou s tim starosti, tak me zajimalo,
zda se to neda nejak obejit..
FB a dlouhe ulozene procedury
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 25.8.2004 16:45:00
>
> Pokud to pustim v jedne transakci, tak se to provede po sobe,
V jedne transakci by mel bezet zaroven POUZE jeden prikaz,
dokonce by tohle melo platit i o connection.
> pokud ve dvou ruznych, tak se to provede asynchrone. Je to tak?
ANO, ale jinak to zaroven ani pustit nejde (tedy, aby to bylo ciste).
Slavek
FB a dlouhe ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 16:32:59
Pokud to pustim v jedne transakci, tak se to provede po sobe, pokud ve dvou
ruznych, tak se to provede asynchrone. Je to tak?
FB a dlouhe ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 16:20:57
Vsechny zdravim,
pokud pustim (zavolam) ulozenou proceduru, ktera trva napriklad 3 minuty, a behem techto 3 minut zavolam nejaky update, jak to FB zpracuje? vykona update az po skonceni ulozene procedury nebo ji prerusi, vykona update a pak ji dokonci?
Rekl bych, ze update by se mel vykonat az po skonceni U.P. Ale je to tak?
Neni na to nejake nastavovatko? :-)
JR
zpracovani zpravy
[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 25.8.2004 16:10:57
Ahoj,
mam frame s TDBRTFEditorem. Ten ma tu nectnost, ze kdyz ztraci focus,
snazi se postnout vetu a to presto, ze neni v editacnim rezimu a ani
zadna veta v datech neexistuje!
v tuhle chvili nemuzu pouzit nic jinyho, tak jsem si chtel pro zmenu
odchytit zpravu CMEnter a pokud neni zadna platna veta, tak nepovolit
vstup. Jenze, ja tu zpravu sice odchytim, ale nedokazu zabranit jejimu
nasledovnemu predani te ******* komponente.
Potrebuju poradit, jak tu zpracovanou message spolknout, aby uz mi
dal nesla?
dik. peca
Jak nejlepe udelat timeout urcite operace v thread
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 15:42:55
delphin(zv)post(tec)cz wrote:
>> Clovece mas pravdu - ono to vskutku funguje - Delphi u typu
>> DWORD/CARDINAL z nejakeho duvodu netestuje preteceni, takze nedojde
>> k Range Check Error, zatimco u typu WORD a BYTE ano. To jsou veci....
>
> To se da zapnout/vypnout {$Q+-}a {$R+-}
Asi jak komu a jak kdy :-)
- alespon me D6.02prof bere u direktivy $Q posledni hodnotu
v unit, prestoze je v helpu popisovana se scope local,
takze tu direktivu nepouzivame. napr.
...
{$Q-}
Vypocet A; // Vyvola EIntOverflow !!!
{$Q+}
Vypocet B;
a naopak
{$Q+}
Vypocet A; // Nevyvola EIntOverflow !!!
{$Q-}
***
A zapnuti $R+ rozsah u dword nekontroluje vubec (k memu prekvapeni)
- zrejme si rekli, ze co je v registru EAX, to se taky vejde do pameti
a v zasade maji pravdu :-)
pf
SQL - Dotaz na vyber kazdeho 2 nebo 3 zaznamu
[*] Jan Sebelik <honza(zv)haes(tec)cz> - 25.8.2004 14:56:50
> -----Original Message-----
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Marek
> Subject: SQL - Dotaz na vyber kazdeho 2 nebo 3 zaznamu
>
> jak vyberu kazdy 2 nebo 3 nebo x zaznam z tabulky pomoci sql
> Marek
No, nevim jak ktera databaze...
Principialne ale pracujeme s relacnimi databazemi.
A relace je mnozina, tedy jeji prvky principialne nemaji poradi.
No, slo by to ale pres ulozenou proceduru.
Treba IB/FB:
i=0;
for select... into ... do begin
if (i je delitelne tremi) then suspend;
i = i+1;
end
(viz nas kurz SQL)
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 569 (mobil 776 347 735)
====================================
FB a packages pro ulozene procedury
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 25.8.2004 14:38:48
Dobry den,
uvazuje se v nove verzi FB o baliccich pro ulozene procedury? Respektive, jde nejak nahradit balicky, co se pouzivaji v Oracle? Mit ulozene procedury roztridene..
Jak nejlepe udelat timeout urcite operace v thread
[*] delphin(zv)post(tec)cz - 25.8.2004 14:02:45
> Clovece mas pravdu - ono to vskutku funguje - Delphi u typu DWORD/CARDINAL
> z nejakeho duvodu netestuje preteceni, takze nedojde k Range Check Error,
> zatimco u typu WORD a BYTE ano. To jsou veci....
To se da zapnout/vypnout {$Q+-}a {$R+-}
SQL - Dotaz na vyber kazdeho 2 nebo 3 zaznamu
[*] Marek <marek.rakowski(zv)trz(tec)cz> - 25.8.2004 13:36:43
ahoj,
jak vyberu kazdy 2 nebo 3 nebo x zaznam z tabulky pomoci sql
Marek
Jak nejlepe udelat timeout urcite operace v thread
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 13:36:43
delphin(zv)post(tec)cz wrote:
> Jak presne to nefunguje ?
> O tom, jestli to funguje nebo nefunguje se muzeme snadno presvedcit:
Clovece mas pravdu - ono to vskutku funguje - Delphi u typu DWORD/CARDINAL
z nejakeho duvodu netestuje preteceni, takze nedojde k Range Check Error,
zatimco u typu WORD a BYTE ano. To jsou veci....
pf
indy versus synapse - II
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 12:56:40
Lukas Gebauer wrote:
> kazdy trouba. Kdyz tomu tak dobre rozumis, proc jsi to puvodnimu
> tazateli nevysvetlil sam?
Asi proto, ze jsem puvodni dotaz cetl az po Tobe a v konferenci vzdy doctu
cely thread, nez odpovidam. Ja bych mu misto nepresnych
popisu pastnul popis funkce Accept().
> Je totiz uplne jedno, jak socket definuje RFC na popis TCP spojeni,
> protoz my se bavime o socketu z pohledu API.
Ano, ty se bavis o prvku rozhrani, ale ze to tak stejne chape puvodniho
tazatel
uz tak zrejme neni, proto by IMHO bylo vhodne v popisu tohle jasne
odlisovat.
pf
indy versus synapse - II
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 25.8.2004 12:18:37
> Tak ti nevim, kdo v tom dela zmatky, kdyz mluvi o spojeni
> a oznacuje ho jako socket :-? Pak neni divu, ze nejste
> schopni se domluvit o takove banalite.
Pokud mas pocit, ze jsem to vysvetlil blbe, tak to vysvetli lepe. To
ty ale neumis, tak sis pockal, az se to pokusi vysvetlit neko jiny, a
pak ho chytas za slovicka a delas chytreho. Promin, ale tohle umi
kazdy trouba. Kdyz tomu tak dobre rozumis, proc jsi to puvodnimu
tazateli nevysvetlil sam?
Je totiz uplne jedno, jak socket definuje RFC na popis TCP spojeni,
protoz my se bavime o socketu z pohledu API. Dle tve definice je
socket definovan jako adresa+port. Jenze v pocitaci mas mnoho RUZNYCH
socketu, ktere maji uplne STEJNOU adresu i port. Jak chces definovat
a rozlisovat dva sockety od sebe podle stenych hodnot? Definovat a
potazmo rozlisovat je od sebe muzes jen podle hodnot, ktere jsou pro
kazdy socket jine.
A temito hodnotami je prave par lokalni adresy a vzdalene adresy.
Podle toho poznas, ke kteremu socketu patri jake TCP spojeni, tedy v
prenesenem slova smyslu je ten socket definovan prave parem adres a
portu, protoze to je teprve hodnota, podle ktere muzes jednotlive
sockety u TCP protokolu od sebe rozlisit.
Mas-li jiny nazor, vysvetli si to sam a lepe. Kdyz uz venuji svuj
volny cas na vysvetlovani, chci jej venovat lidem, kteri to opravdu
potrebuji, ale ne rejpalum. To opravdu budu radeji delat neco
uzitecnejsiho. Tesim se, jak od ted bude konference zaplavena tvymi
ukazkovymi vysvetlenimi, ktera budou naprosto bez jakychkoliv
nepresnosti, a vsichni je na prvni precteni pochopi. Budeme jen
vsichni radi! ;-)
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Jak nejlepe udelat timeout urcite operace v thread
[*] delphin(zv)post(tec)cz - 25.8.2004 12:10:37
> > Tohle funguje s GetTickCount i kdyz dojde po 47 dnech k preteceni.
> >
> > var TimeStamp:cardinal;
> >
> > TimeStamp:=GetTickCount;
> > repeat
> > ...
> > if (GetTickCount-TimeStamp)>5000 then break;
> > ...
> > until podminka;
>
> Kdyz dojde k preteceni v ramci mereni periody tj. kdyz nastavis TimeStamp
> pred pretecenim a vypocet GetTickCount-Timestamp vyhodnotis
> po preteceni, tak to nefunguje. Musis udelat zaporny prenos.
Jak presne to nefunguje ?
O tom, jestli to funguje nebo nefunguje se muzeme snadno presvedcit:
var TimeStamp,TickCount,Result:cardinal;
begin
TimeStamp:=$FFFFFFFF;
TickCount:=$00000000;
Result:=TickCount-TimeStamp;
TickCount TimeStamp Result
$00000000-$FFFFFFFF=$00000001
$00000001-$FFFFFFFF=$00000002
$00000001-$FFFFFFFE=$00000003
$00000002-$FFFFFFFE=$00000004
$00000002-$FFFFFFFD=$00000005
atd ...
Jak nejlepe udelat timeout urcite operace v thread
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 25.8.2004 12:06:36
Jo tohle presne jsem mel na mysli, takze vlastne staci zjistit jestli novy
TickCount je mensi nez ten, od ktereho se pocita a potom staci provest
korekci napr.:
korig_tc:=int64(GetTickCount)+high(DWORD)+1;
nebo se mylim ?
diky za pomoc
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Petr Fejfar" <development(zv)callnet(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, August 25, 2004 11:22 AM
Subject: Re: Jak nejlepe udelat timeout urcite operace v threadu
> delphin(zv)post(tec)cz wrote:
>
> > Tohle funguje s GetTickCount i kdyz dojde po 47 dnech k preteceni.
> >
> > var TimeStamp:cardinal;
> >
> > TimeStamp:=GetTickCount;
> > repeat
> > ...
> > if (GetTickCount-TimeStamp)>5000 then break;
> > ...
> > until podminka;
>
> Kdyz dojde k preteceni v ramci mereni periody tj. kdyz nastavis TimeStamp
> pred pretecenim a vypocet GetTickCount-Timestamp vyhodnotis
> po preteceni, tak to nefunguje. Musis udelat zaporny prenos.
>
> pf
>
>
>
>
Jeste problem s thready
[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 25.8.2004 11:40:34
Ahoj,
ja to resim tak, ze si jeste vytvorim dalsi event a kdyz chci thread
ukoncit, tak ji (ho,to?) nastavim, tim dosahnu ukonceni
WaitForMultipleObjects a nasledni i normalniho ukonceni metody execute
thredu.
Vaclav Sazima
tomsir1.edu(zv)mail.cez(tec)cz wrote:
>... ted mam funkcni WaitForMultipleObjects ..
> Problem nastal v tom, ze kdyz za behu threadu uzavru aplikaci, vyskoci mi
> Acces Violation s tim, ze dochazi k zapisu do nepovolene pameti. Prisel
> jsem na to, ze pote co v OnCloseQuery hl. formu zavolam Terminate tech
> threadu, dojde jeste k volani Synchronize
>
> Jak mam zabezpecit, aby pred nastavenim CanClose = true byly opravdu
> vsechny thready ukonceny ??
>
> Diky Radek
Kompnenty pro bublinkovou napovedu
[*] Sebesta Jan <sebesta(zv)cube(tec)cz> - 25.8.2004 11:42:34
Tusim ze http://www.tmssoftware.com neco je
Honza
-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of David Fajfr
Sent: Wednesday, August 25, 2004 10:55 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Kompnenty pro bublinkovou napovedu
Ahoj,
neznate nekdo spolehlive free komponenty pro bublinkovou napovedu? Neco jako
ma WinXP kdyz dojde k pripojeni/odpojeni od site... Ale aby to pokud mozno
fungovalo i pod W95-98.
Diky za kazdou radu.
David
Jeste problem s thready - vyreseno / zatim :o) /
[*] tomsir1.edu(zv)mail.cez(tec)cz - 25.8.2004 11:34:33
Diky vsem za pomoc, uz to mam vyresene, hlavni problem byl v tom, ze jsem v
onech threadech mel smycku obsluhujici TBlockSocket ze Synapse a thread
cekal, dokud Socket neskonci na timeout, pote mi chtel pres Synchronize
vypsat hlasku do jiz neexistujiciho Mema :O(
Pred volanim Thread.Terminate musim zavolat Thread.Socket.Free a je to bez
AV ...
Radek
"Petr Vones" <konference(zv)petrvones.net>(zv)clexpert(tec)cz on 25.08.2004 11:06:31
Odpovezte prosim - delphi-l(zv)clexpert(tec)cz
Odeslano kym: delphi-l-owner(zv)clexpert(tec)cz
Komu: delphi-l(zv)clexpert(tec)cz
Kopie:
Predmet: Re: Jeste problem s thready
From: <tomsir1.edu(zv)mail.cez(tec)cz>
> Jak mam zabezpecit, aby pred nastavenim CanClose = true byly opravdu
> vsechny thready ukonceny ??
V zasade musis volat sekvenci:
Terminate
WaitFor
Pricemz jejich podoba uz zavisi na konkretni implementaci (napriklad
Terminate
nastavi nejdeiv priznak Terminated a pak event na ktery se ceka v threadu,
nebo samostatny event ktery indikuje pozadavek ukonceni threadu apod.)
Petr Vones
Jak nejlepe udelat timeout urcite operace v thread
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 11:22:32
delphin(zv)post(tec)cz wrote:
> Tohle funguje s GetTickCount i kdyz dojde po 47 dnech k preteceni.
>
> var TimeStamp:cardinal;
>
> TimeStamp:=GetTickCount;
> repeat
> ...
> if (GetTickCount-TimeStamp)>5000 then break;
> ...
> until podminka;
Kdyz dojde k preteceni v ramci mereni periody tj. kdyz nastavis TimeStamp
pred pretecenim a vypocet GetTickCount-Timestamp vyhodnotis
po preteceni, tak to nefunguje. Musis udelat zaporny prenos.
pf
Jeste problem s thready
[*] Petr Vones <konference(zv)petrvones(tec)net> - 25.8.2004 11:06:31
From: <tomsir1.edu(zv)mail.cez(tec)cz>
> Jak mam zabezpecit, aby pred nastavenim CanClose = true byly opravdu
> vsechny thready ukonceny ??
V zasade musis volat sekvenci:
Terminate
WaitFor
Pricemz jejich podoba uz zavisi na konkretni implementaci (napriklad Terminate
nastavi nejdeiv priznak Terminated a pak event na ktery se ceka v threadu,
nebo samostatny event ktery indikuje pozadavek ukonceni threadu apod.)
Petr Vones
Jak nejlepe udelat timeout urcite operace v thread
[*] delphin(zv)post(tec)cz - 25.8.2004 10:56:30
> jde mi o to, jak nejlepe udelat mereni ubehnuteho casu, myslel jsem treba
> pomoci GetTickCount, ale 47 dni se mi zda malo, kdyz jde o nepretrzity
> provoz. Mate nekdo neco vyzouseneho ?
Tohle funguje s GetTickCount i kdyz dojde po 47 dnech k preteceni.
var TimeStamp:cardinal;
TimeStamp:=GetTickCount;
repeat
...
if (GetTickCount-TimeStamp)>5000 then break;
...
until podminka;
Now nelze pouzit, protoze cas jednak meni uzivatele, pak automaticka
synchronizace ve WinXP a take zmena letniho a zimniho casu.
Kompnenty pro bublinkovou napovedu
[*] David Fajfr <davidfajfr(zv)seznam(tec)cz> - 25.8.2004 10:54:30
Ahoj,
neznate nekdo spolehlive free komponenty pro bublinkovou napovedu? Neco jako
ma WinXP kdyz dojde k pripojeni/odpojeni od site... Ale aby to pokud mozno
fungovalo i pod W95-98.
Diky za kazdou radu.
David
spousteni aplikace pres mail
[*] Benda Lukas <bendal(zv)volny(tec)cz> - 25.8.2004 10:52:30
>pokud se zna cesta k programu, tak na to staci davka, problem by mohl
>nastat u zapnuteho zabezpeceni Outlooku (nepristupne jakekoliv spustitelne
>prilohy), jak to vypnout pro ruzne Outlooky je ruzne a nekdy dost
>krkolomne.
>
A to nesmi uzivatel pouzivat Exchange, MozilaMail, Bat, Paegas, nebo
Lotus. A dokonce ani snad nejpouzivanejsiho - web clienta:))) Tohe
reseni je neschudne, jedine mozne je .bat souboru, nebo dobre
informovany uzivatel, treba po telefonu.
Jeste problem s thready
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 25.8.2004 10:44:28
Zrejme pouzivas free on terminate -> thread se sam zrusi pri ukonceni.
Mas dve moznosti:
1. zakazat volani synchronize po zavolani teminate
2. pouzit WaitFor (vypnout free on terminate) funkci, ktera pocka, nez
je thread ukoncen.
Slavek
>
> navazu na muj predchozi dotaz ... ted mam funkcni
> WaitForMultipleObjects .. a vytvarim nejake thready. V nich
> potom oteviram TCP spojeni a udalosti jako napr. chyby
> posilam v metode Synchronize do Mema na hlavnim formulari ...
> Problem nastal v tom, ze kdyz za behu threadu uzavru
> aplikaci, vyskoci mi Acces Violation s tim, ze dochazi k
> zapisu do nepovolene pameti. Prisel jsem na to, ze pote co v
> OnCloseQuery hl. formu zavolam Terminate tech threadu, dojde
> jeste k volani Synchronize
>
> Jak mam zabezpecit, aby pred nastavenim CanClose = true byly
> opravdu vsechny thready ukonceny ??
>
Jeste problem s thready
[*] Ales Vasicek <vasicek(zv)ecommerce(tec)cz> - 25.8.2004 10:38:27
Ahoj,
zkus volat jeste Thread.WaitFor; napr:
MujThread.Terminate;
MujThread.WaitFor;
MujThread.Free;
Ales
> -----Original Message-----
> From: tomsir1.edu(zv)mail.cez(tec)cz [mailto:tomsir1.edu(zv)mail.cez(tec)cz]
> ...
> Problem nastal v tom, ze kdyz za behu threadu uzavru
> aplikaci, vyskoci mi
> Acces Violation s tim, ze dochazi k zapisu do nepovolene
> pameti. Prisel
> jsem na to, ze pote co v OnCloseQuery hl. formu zavolam Terminate tech
> threadu, dojde jeste k volani Synchronize
>
> Jak mam zabezpecit, aby pred nastavenim CanClose = true byly opravdu
> vsechny thready ukonceny ??
Managed extenstions for VCL - .Net interop for Del
[*] Petr Vones <konference(zv)petrvones(tec)net> - 25.8.2004 10:36:27
From: "Karel Kral" <kralkonf(zv)purus(tec)cz>
> Tohle by mohlo nekoho zajimat, pripade pokud s tim mate nekdo
> zkusenosti, napiste:
>
> http://www.managed-vcl.com/
Osobne bych touto cestou nesel :-) Pokud je potreba nejakym zpusobem dostat
data do Win32 aplikace z .NET (serveru) tak bych nejdrive zkusil web service.
Petr Vones
Jeste problem s thready
[*] tomsir1.edu(zv)mail.cez(tec)cz - 25.8.2004 10:32:26
Ahoj,
navazu na muj predchozi dotaz ... ted mam funkcni WaitForMultipleObjects ..
a vytvarim nejake thready. V nich potom oteviram TCP spojeni a udalosti
jako napr. chyby posilam v metode Synchronize do Mema na hlavnim formulari
...
Problem nastal v tom, ze kdyz za behu threadu uzavru aplikaci, vyskoci mi
Acces Violation s tim, ze dochazi k zapisu do nepovolene pameti. Prisel
jsem na to, ze pote co v OnCloseQuery hl. formu zavolam Terminate tech
threadu, dojde jeste k volani Synchronize
Jak mam zabezpecit, aby pred nastavenim CanClose = true byly opravdu
vsechny thready ukonceny ??
Diky Radek
Jak zjistit informace o aktualnim uzivateli?
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 25.8.2004 10:30:26
> Jak to resit, aby se na Win 9X dana dll "nepouzivala", daji
> se pouzit nejake direktivy nebo prepinace?
Nahrad si to staticke linkovanie dynamickym, t.j. namiesto deklaracii
"external" pouzi LoadLibrary a GetProcAddress.
Priklady najdes aj vo VCL.
HTH
TOndrej
Jak zjistit informace o aktualnim uzivateli?
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 25.8.2004 10:10:24
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Robert Suska
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics,
> Controls, Forms,
> Dialogs, StdCtrls;
>
> type
> TForm1 = class(TForm)
> ListBox1: TListBox;
> Button2: TButton;
> procedure Button2Click(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> type
> PLOCALGROUP_MEMBERS_INFO_1 = ^LOCALGROUP_MEMBERS_INFO_1;
> LOCALGROUP_MEMBERS_INFO_1 = record
> lgrmi1_sid: PSID;
> lgrmi1_sidusage: SID_NAME_USE;
> lgrmi1_name: LPWSTR;
> end;
>
> function NetLocalGroupGetMembers(
> servername: PWideChar;
> localgroupname: PWideChar;
> level: DWORD;
> var bufptr: Pointer;
> prefmaxlen: DWORD;
> var entriesread: DWORD;
> var totalentries: DWORD;
> var resumehandle: DWORD): Integer; stdcall; external 'netapi32.dll';
>
> function NetApiBufferFree(buffer: Pointer): Integer; stdcall; external
'netapi32.dll';
Pokud funkci NetApiBufferFree pouziji v programu na Win 2000 nebo XP tak vse
funguje OK.
Na Win 9X se ale objevuje hlaseni, ze "Soubor EXE je propojen na chybejici
export NETAPI32.DLL:NetApiBufferFree", tzn. ze v dane DLL funkce neni.
Jak to resit, aby se na Win 9X dana dll "nepouzivala", daji se pouzit nejake
direktivy nebo prepinace?
Mohla by se take NETAPI32.DLL kopirovat s programem na cilovy pocitac, ale
nevim jak je to s (c). Navic pokus o premazani NETAPI32.DLL novejsi verzi
byl odmitnut.
Jinymi slovy, potrebuji pri spusteni programu zjistit (na Win 9X test nemusi
probehnout), ze aktualni uzivatel je minimalne "power users". Program totiz
potrebuje prava pro zapis do slozek v progam files, kde ja nainstalovany.
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
indy versus synapse - II
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 10:06:24
Lukas Gebauer wrote:
>> Jen jestli ten pojem socket nejake nepretezujes ;-)
>
> Prosim, nedelej v tom jeste vetsi zmatky.
Tak ti nevim, kdo v tom dela zmatky, kdyz mluvi o spojeni
a oznacuje ho jako socket :-? Pak neni divu, ze nejste
schopni se domluvit o takove banalite.
pf
indy versus synapse - II
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 25.8.2004 09:40:22
> Jen jestli ten pojem socket nejake nepretezujes ;-)
Prosim, nedelej v tom jeste vetsi zmatky.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
indy versus synapse - II
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 09:16:20
Lukas Gebauer wrote:
> na tvem pocitaci mas jeden socket. n druhem pocitaci mas druhy
> socket. Jsou to dva ruzne sockety. jeden je u tebe(tedy lokalni
> socket), druhy je na jinem pocitaci. Dva ruzne sockety. Ok?
>
> Ale i pres to kazdy z techto socketu je definovan jako dvojice adres,
> tvoje lokalni adresa a pot a adresa a port druhe strany.
Jen jestli ten pojem socket nejake nepretezujes ;-)
RFC 793 (TCP specification):
socket
An address which specifically includes a port identifier, that
is, the concatenation of an Internet Address with a TCP port.
connection
A logical communication path identified by a pair of sockets.
pf
Jak nejlepe udelat timeout urcite operace v thread
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 25.8.2004 09:12:20
Tomas Bradle wrote:
> treba pomoci GetTickCount, ale 47 dni se mi zda malo, kdyz jde o
> nepretrzity provoz.
Tak udelej to, co se pri odcitani bezne dela: vypujc si dalsi rad tj. 2^32.
A nebo to muzes nahradit:
- Now a TDateTime
- QueryPerformanceCounter (taky muze pretect)
Co pouzit zalezi na tom, jake mas na TO pozadavky.
HTH, pf
indy versus synapse - II
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 25.8.2004 09:00:19
> Joo, jen asi pouzivame kazdy jiny slovnik. Precti si co jsi
> napsal. Server vytvari DALSI socket. Ergo, server uz jeden socket
> vytvoril a na nem nasloucha. Ergo, je to v podstate dle meho popisu
> -viz minuly prispevek, body 1-4. A me by zajimalo (hlavne ze
> zvedavosti), JAKY je ten dalsi socket (=adresa:port). Ze se jedna o
> nahodne zvoleny port vim, chci zjistit o jaky konkretne.... to jsem se
> puvodne ptal.
Je to dalsi socket, ale zadny nahodne zvoleny port tam neni. takze
nemas co zjistovat. To, co ti vraci Indy nebo synapse jako lokalni
socket neni zadna chimera... je to skutecne pravda!
> Mam pocit, ze terminologickych nepresnosti je tady vice nez je
> asi zdravo. Jestlize je socket definovan jako dvojce
> lokalni/vzdalena adresa:port, co je to teda za terminus v bode
> b1) a b2) ?? V te chvili by prece u klienta jeste zadny socket
> nemel existovat, jelikoz jeste nenavazal spojeni. Prave se o to
> snazi.... Navic, termin lokalni socket mi v uvedenem kontextu
> nejak nedava smysl, maximalne tak polovina socketoveho spojeni.
> Ale kde je ta druha pulka??
Achich... tak znova a polopate!
na tvem pocitaci mas jeden socket. n druhem pocitaci mas druhy
socket. Jsou to dva ruzne sockety. jeden je u tebe(tedy lokalni
socket), druhy je na jinem pocitaci. Dva ruzne sockety. Ok?
Ale i pres to kazdy z techto socketu je definovan jako dvojice adres,
tvoje lokalni adresa a pot a adresa a port druhe strany. Tedy, mas
ctyri udaje... lokalni adresa, lokalni port, vzdalena adresa a
vzdaleny port. Na rozliseni jednotlivych ocketu v ramci jednoho
pocitace ti staci, aby se lisila alespon jedna z techto ctyr polozek.
Jak je to s tim naslouchacim socketem, kde zadna druha strana
neexistuje? Inu, prazdna IP adresa a port je take preci hodnota! Dik
tomu dokazes rozlisit mezi packety, ktere navazuji spojeni, a mezi
packety, ktere jiz navzano maji.
> Je tedy mozne mit ruzne sockety, ktere maji uplne stejnou lokalni
> adresu i port, pokud jsou odlisne adresy ci porty vzdaleneho
> pocitace.
> ??????
Ano, prave u TCP to tak presne funguje.
Ta lokalni adresa, kterou ti vraci indy, Synapse, nebo ktrou pise
kerio, je skutecne presne takova.
To co sis myslel, je velmi rozireny omyl, ba dokonce i ja sam jsem se
jej kdysi dopustil. ;-)))
Ostatne, overit to jde velmi snadno... pust si jakekoliv
zahytavanipacketu (treba pres free ethereal), a pak se podivej do
obsahu jednotlivych pakcetu, jak vypadaji ty adresy...zjistis, ze se
skutecne komunikuje pres stejnou adresu i port, na kterem se navazalo
spojeni.
> Nejsem si tak jisty.
> Uz je to delsi dobu, ale (matne) si vzpominam, ze kdyz jsem se
> ptal (zprostredkovane) hochu z Keria, tak se mi dostalo odpovedi, ze
> kerio zobrazuje socket(=adresa:port) na kterem se komunikace navazala,
> aby bylo mozne jednoduse poznat, ze jde napr. o ssh komunikaci.
> Socket, na kterem pak probihaji vlastni prenosy/komunikace je z
> pohledu evidence o jakou sluzbu jde nezajimave....
To se maji hosi z Keria cim chlubit. ;-)
Ver vlastnim ocim! Stahni si ten Ethereal, a zachyt si packety s
komunikaci s tym serverem, a tam se podivej na vlastni oci, ze mam
pravdu. ;-)
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Problem s WaitForMultipleObjects a thready
[*] tomsir1.edu(zv)mail.cez(tec)cz - 25.8.2004 08:20:17
hm, odpovim si sam, uz jsem na to prisel musi se zmenit odkaz na
(zv)HandleArray[0] ...
i := WaitForMultipleObjects(FThreadCount, (zv)HandleArray[0], True,
INFINITE);
Radek
i := WaitForMultipleObjects(FThreadCount, (zv)HandleArray, True, INFINITE);
Problem s WaitForMultipleObjects a thready
[*] tomsir1.edu(zv)mail.cez(tec)cz - 25.8.2004 07:56:12
Ahoj, mam nasledujici kod :
for i := 0 to FThreadCount - 1 do
begin
ThreadArray[i] := TTCPThread.Create;
HandleArray[i] := ThreadArray[i].Handle;
end;
i := WaitForMultipleObjects(FThreadCount, (zv)HandleArray, True, INFINITE);
MainForm.Memo1.Lines.Add('Konec');
V jednotlivych threadech volam metodu synchronize ve ktere do mema vypisuji
stav beziciho threadu.
Domnival jsem se ze touto konstrukci docilim toho, ze se budou nejprve
vypisovat hlasky z bezicich threadu a nakonec, po skonceni vsech threadu
se vypise hlaska Konec ... zrejme mam nekde chybu, mozna jsem nepochopil
funkci WaitForMultipleObjects ...
diky za rady :O)
Radek
Cestina v dbf souboru
[*] Sebesta Jan <sebesta(zv)cube(tec)cz> - 25.8.2004 07:08:09
Vse najdes v BDE Administratoru.
JS
-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of delphi(zv)spst(tec)cz
Sent: Tuesday, August 24, 2004 3:39 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Cestina v dbf souboru
Dobry den.
Mam napsany program, ktery taha data z dbf souboru pomoci Query a
DataSource.
Stala se vsak nasledujici vec. Doslo ke zmene kodovani dbf souboru. Je mozne
pomoci nejakeho nastaveni provest napravu.
Predem moc dekuji JN
Jak nejlepe udelat timeout urcite operace v thread
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 25.8.2004 00:49:46
Zdravim vsechny,
mam aplikaci, ktera zabezpecuje uzivatelsky interface k rizeni
technologickych operaci. Jadro rizeni je v samostatnem threadu, pres
synchronize se volaji odezvy do jiz zmineneho uzivatelskeho interface
(hlavni thread aplikace).
Ted bych potrebaval poradit, jak nejlepe udelat testovani timeoutu urcitych
bloku ridiciho kodu, napr.:
zacatek_timeoutu;
repeat
...
until podminka or je_timeout
nebo jinak:
zacatek_timeoutu;
repeat
...
if je_timeout then break;
...
until podminka;
jde mi o to, jak nejlepe udelat mereni ubehnuteho casu, myslel jsem treba
pomoci GetTickCount, ale 47 dni se mi zda malo, kdyz jde o nepretrzity
provoz. Mate nekdo neco vyzouseneho ?
diky
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
indy versus synapse - II
[*] nonsense(zv)volny(tec)cz - 24.8.2004 20:39:29
Tak to jsi spravne nepochopil. ;-)
a) jestli je server blokujici nebo neblokujici, tak to zalezina
necem uplne jinem. Tyto rerminy se pouzivaji na popis vztahu
mezi tvum
programem a APi zajistujici socketovou komunikci.
No, mam pocit, ze jsem se opravdu nepresne vyjadril. Popis - viz
vyse je vicemene opsany z nejakych administratorskych manualu,
kdyz se konfuguruji nektere sluzby treba na Linuxu. Jsou tam
pouzivany opradu presne tyhle terminy i s vysvetlenim....
b) TCP na strane serveru vypada takto:
1. Klient z nejakeho sveho lokalniho socketu se snazi otevrit
spojeni na ten tvuj port 2020. Spojeni odchazi z nejakeho
vetsinounahodne
zvoleneho portu, dejme tomu treba z portu 1500.
2. Server spojeni prijme, a vytvori si dalsi socket, kterym
obsluhuje tveho klienta. tento socket ma ale skutecne stejny
port s tim
naslouchacim, tedy port 2020! Ale socket je jiny.
Joo, jen asi pouzivame kazdy jiny slovnik. Precti si co jsi
napsal. Server vytvari DALSI socket. Ergo, server uz jeden socket
vytvoril a na nem nasloucha. Ergo, je to v podstate dle meho
popisu -viz minuly prispevek, body 1-4. A me by zajimalo (hlavne
ze zvedavosti), JAKY je ten dalsi socket (=adresa:port). Ze se
jedna o nahodne zvoleny port vim, chci zjistit o jaky
konkretne.... to jsem se puvodne ptal.
3. klient zadny dalsi socket nevytvari, pouziva porad ten, ktery
pouzil na iniciovani spojeni. Klientovi nevadi, ze na strane
serveru jej obsluhuje jiny socket nez ktery prijmul spojeni,
protoze on
posila data na porad stejnou adresu i port.
4. neumreli a komunikuji.; -)
Musis si uvedomit, ze socket ja na kazdem pocitaci definovan jako
dvojice adresa:port a adresa:port. Tedy lokalni adresa a port a
adresa a port druheho pocitace.
Mam pocit, ze terminologickych nepresnosti je tady vice nez je
asi zdravo. Jestlize je socket definovan jako dvojce
lokalni/vzdalena adresa:port, co je to teda za terminus v bode
b1) a b2) ?? V te chvili by prece u klienta jeste zadny socket
nemel existovat, jelikoz jeste nenavazal spojeni. Prave se o to
snazi.... Navic, termin lokalni socket mi v uvedenem kontextu
nejak nedava smysl, maximalne tak polovina socketoveho spojeni.
Ale kde je ta druha pulka?? Navic, borlandi help rika toto:
A full description of a socket connection includes the addresses
of the sockets on both ends of the connection. You can describe
the ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
address of each socket endpoint by supplying both the IP address
or host and the port number.
Before you can make a socket connection, you must fully describe
the sockets that form its endpoints. Some of the information is
available from the system your application is running on. For
instance, you do not need to describe the local IP address of a
client socket--this information is available from the operating
system.
The information you must provide depends on the type of socket
you are working with. Client sockets must describe the server
they want to connect to. Listening server sockets must describe
the port that represents the service they provide.
Mluvi o soketech v mnoznem cisle. proto jsem to chapal tak, ze
kazda strana si otevre svuj socket a pak vznikne scketove
spojeni...
Je tedy mozne mit ruzne sockety, ktere maji uplne stejnou lokalni
adresu i port, pokud jsou odlisne adresy ci porty vzdaleneho
pocitace.
??????
>> si otevrou spojeni se serverem. Server tyto akceptuje, vsechny
>> zdanlive na stejnem socketu (tak to alespon tvrdi KPF).
Zdanlive... ve skutecnosti jsou to ruzne sockety, protoze se lisi
adresa a port druhe strany. Na lokalni strane jsou ty adresy a
porty skutecne stejne, neni to zadna chyba ani zaludnost. To co
rika Kerio je jednoduse pravda.
Nejsem si tak jisty.
Uz je to delsi dobu, ale (matne) si vzpominam, ze kdyz jsem se
ptal (zprostredkovane) hochu z Keria, tak se mi dostalo odpovedi,
ze kerio zobrazuje socket(=adresa:port) na kterem se komunikace
navazala, aby bylo mozne jednoduse poznat, ze jde napr. o ssh
komunikaci. Socket, na kterem pak probihaji vlastni
prenosy/komunikace je z pohledu evidence o jakou sluzbu jde
nezajimave....
kazdopadne diky za reakci.
Jaroslav nonsense lukes
--
Zrychlete si az 7x nacitani www stranek a obrazku pres vytacene
pripojeni pomoci VOLNY internet akceleratoru. Stazeni a pouzivani
je ZDARMA. http://akcelerator.volny(tec)cz
Synchronizace zmen v databazi - MS SQL
[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 24.8.2004 16:37:13
Pro MSSQL pouzivam Red Gate SQL comapare http://www.red-gate.com,
je schopen porovnat jak struktury tak i data a vygenerovat skript(y), ( data porovnava pouze na shodnych strukturach).
Lze vybrat jake skripty se budou synchronizovat v nove verzi (ja ji nemam) umi porovnavat i DTS.
Funguje to docela dobre, ale nutno podotknout, ze pokud to dostatecne rozebehnete od sebe, tak to jiz nikdy neslozite, protoze skripty selzou (FK, triggery,..)
Proste DB musi byt smysluplne podobne.
Pavel
> V threadu Synchronizace zmen v databazi jsem se docetl o produktu
> Database comparer - ale ten je pouze pro Firebird. Nevite o necem
> podobnem pro Microsoft SQL? Potreboval bych to jak sul.
>
Synapse a zprava z FTP serveru
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 24.8.2004 16:27:12
> pomoci Synapse vytvarim FTP klienta. Problem je stale v tom, ze pokud
> mi server posle message, veskere operace se zhrouti. Myslel jsem, ze
> tato chyba byla uz v nove verzi (no. 33) opravena. V historii je
> uvedeno: DoStatus can report multiline replyes. Nemelo to prave
> vyresit tento problem? Pouzivam BulletProof FTP server.
Dik za log, posilam sem i pro ostatni vysledek meho zkoumani:
Tento server poslal onu message nejak takto:
Responce: False Value: CWD /Web/help/
Responce: True Value: 214 Tohle je zprava, ktera byla poslana
Responce: False Value: TYPE A
Responce: True Value: 250 CWD command successful. "/Web/help" is
current directory.
Responce: False Value: EPSV 1
Responce: True Value: 200 Type set to A.
Jak je videt, ona neocekavana zprava od serveru vypada uplne stejne
jako normalni odpoved na FTP prikaz. Proto ji Synapse vzala jako
odpoved na posledni prikaz, a tim doslo k rozhozeni.
Slo tedy o neocekavanou a nevyzadanou odpoved, a podivejte se, co o
takovychto odpovedich pise RFC:
" Spontaneous Replies
Sometimes "the system" spontaneously has a message to be sent to a
user (usually all users). For example, "System going down in 15
minutes". There is no provision in FTP for such spontaneous
information to be sent from the server to the user. It is recommended
that such information be queued in the server-PI and delivered to the
user-PI in the next reply (possibly making it a multi-line reply)."
Je tady jasne receno, ze FTP protokol zadne spontalni odpovedi
NEPODPORUJE ("no provision"), a tak neni mozne mit Synapsi za zle, ze
ji takovato nevyzadana odpoved vyvedla z miry.
Chyba je podle mne jednoznacne na strane FTP serveru, a osobne bych
doporucil "BulletProof FTP server" opravdu, ale opravdu nepouzivat.
:-/
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synchronizace zmen v databazi - MS SQL
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 24.8.2004 16:13:11
Puvodni zprava ze dne 24.8.2004:
> | Posilam soukromym mailem...
> Potreboval bych to taky...
Tak mi to preci nepis sem... :)
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Synchronizace zmen v databazi - MS SQL
[*] Martin Pavera <martin.pavera(zv)cmail(tec)cz> - 24.8.2004 16:11:10
| > V threadu Synchronizace zmen v databazi jsem se docetl o produktu
| > Database comparer - ale ten je pouze pro Firebird. Nevite o necem
| > podobnem pro Microsoft SQL? Potreboval bych to jak sul.
|
| Posilam soukromym mailem...
|
| Petr Zahradnik, pocitacovy expert
Potreboval bych to taky...
Dekuji
Martin Pavera
Refresh network drive ve Windows 98
[*] Pavol Stugel, NETGraphics <palo(zv)netgraphics.sk> - 24.8.2004 16:05:10
skus ... kde f: file;
FlushFileBuffers(TFileRec(f).Handle);
palo
indy versus synapse - II
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 24.8.2004 15:53:07
> jestli jsem to dobre pochopil, tak neblokujici server by mel
> pracovat (asi) nasledujicim zpusobem:
> 1. klient se pokusi navazat spojeni na portu (prepokladejme port 2020)
> serveru, ktery na tomto nasloucha.
> 2. server klientovi odpovi neco v tom smyslu, ze akceptuje jeho
> pozadavky, ale jelikoz je neblokujici, navrhne klientovi jiny port, na
> kterem bude probihat nasledna komunikace. Aby na naslouchanem portu
> mohl "zatukat" jiny klient.
> 3. klient toto akceptuje a vytvori si svuj novy socket dle parametru,
> ktere dostal od serveru.
> 4. a pokud neumreli, komunikuji dodnes (po tomto "novem" spojeni).
Tak to jsi spravne nepochopil. ;-)
a) jestli je server blokujici nebo neblokujici, tak to zalezina necem
uplne jinem. Tyto rerminy se pouzivaji na popis vztahu mezi tvum
programem a APi zajistujici socketovou komunikci.
b) TCP na strane serveru vypada takto:
1. Klient z nejakeho sveho lokalniho socketu se snazi otevrit spojeni
na ten tvuj port 2020. Spojeni odchazi z nejakeho vetsinounahodne
zvoleneho portu, dejme tomu treba z portu 1500.
2. Server spojeni prijme, a vytvori si dalsi socket, kterym obsluhuje
tveho klienta. tento socket ma ale skutecne stejny port s tim
naslouchacim, tedy port 2020! Ale socket je jiny.
3. klient zadny dalsi socket nevytvari, pouziva porad ten, ktery
pouzil na iniciovani spojeni. Klientovi nevadi, ze na strane serveru
jej obsluhuje jiny socket nez ktery prijmul spojeni, protoze on
posila data na porad stejnou adresu i port.
4. neumreli a komunikuji.; -)
Musis si uvedomit, ze socket ja na kazdem pocitaci definovan jako
dvojice adresa:port a adresa:port. Tedy lokalni adresa a port a
adresa a port druheho pocitace.
Je tedy mozne mit ruzne sockety, ktere maji uplne stejnou lokalni
adresu i port, pokud jsou odlisne adresy ci porty vzdaleneho
pocitace.
> si otevrou spojeni se serverem. Server tyto akceptuje, vsechny
> zdanlive na stejnem socketu (tak to alespon tvrdi KPF).
Zdanlive... ve skutecnosti jsou to ruzne sockety, protoze se lisi
adresa a port druhe strany. Na lokalni strane jsou ty adresy a porty
skutecne stejne, neni to zadna chyba ani zaludnost. To co rika Kerio
je jednoduse pravda.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synchronizace zmen v databazi - MS SQL
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 24.8.2004 15:51:07
Puvodni zprava ze dne 24.8.2004:
> V threadu Synchronizace zmen v databazi jsem se docetl o produktu
> Database comparer - ale ten je pouze pro Firebird. Nevite o necem
> podobnem pro Microsoft SQL? Potreboval bych to jak sul.
Posilam soukromym mailem...
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Cestina v dbf souboru
[*] delphi(zv)spst(tec)cz - 24.8.2004 15:39:05
Dobry den.
Mam napsany program, ktery taha data z dbf souboru pomoci Query a
DataSource.
Stala se vsak nasledujici vec. Doslo ke zmene kodovani dbf souboru. Je mozne
pomoci nejakeho nastaveni provest napravu.
Predem moc dekuji JN
Synchronizace zmen v databazi - MS SQL
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 24.8.2004 15:43:06
V threadu Synchronizace zmen v databazi jsem se docetl o produktu
Database comparer - ale ten je pouze pro Firebird. Nevite o necem
podobnem pro Microsoft SQL? Potreboval bych to jak sul.
----
Predstavuji si to tak, ze tento porovna metadata (pripadne data) dvou
databazi a jednu zmeni (prida sloupecky, ulozene procedury a apod.) k
obrazu te druhe.. V uplne idealnim pripdae by nabidl rozdily v techto
dvou databazich a uzivatel (tedy ja :-) ) bych si mohl vybrat, co v
ktere upgradnu.
--
______________________________________________________
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
______________________________________________________
indy versus synapse - II
[*] nonsense(zv)volny(tec)cz - 24.8.2004 15:28:58
ahoj vespolek,
celkem se zajmem sleduji "zurivou" polemiku, co je lepsi. A co
je blokujici a co ne. Zkusil jsem si vlastni prikladek na dane
tema, mysleno blokujici versus neblokujici server.
jestli jsem to dobre pochopil, tak neblokujici server by mel
pracovat (asi) nasledujicim zpusobem: 1. klient se pokusi navazat
spojeni na portu (prepokladejme port 2020) serveru, ktery na
tomto nasloucha. 2. server klientovi odpovi neco v tom smyslu, ze
akceptuje jeho pozadavky, ale jelikoz je neblokujici, navrhne
klientovi jiny port, na kterem bude probihat nasledna komunikace.
Aby na naslouchanem portu mohl "zatukat" jiny klient. 3. klient
toto akceptuje a vytvori si svuj novy socket dle parametru, ktere
dostal od serveru. 4. a pokud neumreli, komunikuji dodnes (po
tomto "novem" spojeni).
Tak, to jenom abychom si sjednotili slovnik (doufam)....
Pomoci Indy (to znam dele a lepe nez synapsi) jsem si vytvoril
(velmi) jednoducheho servera a klienta. Spustim server, ten zacne
nasloucha na danem portu. Spustim nekolik instanci klienta a
vsechny si otevrou spojeni se serverem. Server tyto akceptuje,
vsechny zdanlive na stejnem socketu (tak to alespon tvrdi KPF).
Otazky
a) jde z Indy "vyloudit" informaci na jakem socketu skutecne
komunikuje (predpokladam, ze funguje vyse popsany mechanismus).
Nejak se mi to nedari, asi indy zas tak dobre neumim... :-( b)
lze pro popsany rezim cinnosti pouzit i synapsi ??
prosim, poradte zmatene lesni vcelce....
diky
--
Hrajte s nami o 1000 Kc kazdy den! Pripojte se pres VOLNY a
tipujte teplotu na vybranem miste v Ceske republice. Uzijte si
leto s VOLNY na strankach http://soutez.volny(tec)cz.
Indy versus Synapse - II.
[*] nonsense(zv)volny(tec)cz - 24.8.2004 15:22:58
ahoj vespolek,
celkem se zajmem sleduji "zurivou" polemiku, co je lepsi. A co
je blokujici a co ne. Zkusil jsem si vlastni prikladek na dane
tema, mysleno blokujici versus neblokujici server.
jestli jsem to dobre pochopil, tak neblokujici server by mel
pracovat (asi) nasledujicim zpusobem: 1. klient se pokusi navazat
spojeni na portu (prepokladejme port 2020) serveru, ktery na
tomto nasloucha. 2. server klientovi odpovi neco v tom smyslu, ze
akceptuje jeho pozadavky, ale jelikoz je neblokujici, navrhne
klientovi jiny port, na kterem bude probihat nasledna komunikace.
Aby na naslouchanem portu mohl "zatukat" jiny klient. 3. klient
toto akceptuje a vytvori si svuj novy socket dle parametru, ktere
dostal od serveru. 4. a pokud neumreli, komunikuji dodnes (po
tomto "novem" spojeni).
Tak, to jenom abychom si sjednotili slovnik (doufam)....
Pomoci Indy (to znam dele a lepe nez synapsi) jsem si vytvoril
(velmi) jednoducheho servera a klienta. Spustim server, ten zacne
nasloucha na danem portu. Spustim nekolik instanci klienta a
vsechny si otevrou spojeni se serverem. Server tyto akceptuje,
vsechny zdanlive na stejnem socketu (tak to alespon tvrdi KPF).
Otazky
a) jde z Indy "vyloudit" informaci na jakem socketu skutecne
komunikuje (predpokladam, ze funguje vyse popsany mechanismus).
Nejak se mi to nedari, asi indy zas tak dobre neumim... :-( b)
lze pro popsany rezim cinnosti pouzit i synapsi ??
prosim, poradte zmatene lesni vcelce....
diky
--
Hrajte s nami o 1000 Kc kazdy den! Pripojte se pres VOLNY a
tipujte teplotu na vybranem miste v Ceske republice. Uzijte si
leto s VOLNY na strankach http://soutez.volny(tec)cz.
Refresh network drive ve Windows 98
[*] Marian Nykel <m.any(zv)centrum(tec)cz> - 24.8.2004 15:18:57
Zdravim vsechny,
pri instalaci aplikace (z nasdilene CD na siti) potrebuji, aby uzivatel vymenil CD
(instalujeme ze 2 CD). Kdyz CD vymeni, zkontrolujeme podle obsahu urciteho souboru
(tento soubor se jmenuje stejne a je umisten na stejnem miste na prvnim i na druhem
CD), zda jde o spravne CD. Jenze ve Windows 98 nam pri nacteni souboru nacte obsah
puvodniho souboru z prvniho CD, takze se nepohnu dal, protoze program hlasi, ze v
mechanice je prvni CD...
Zrejme to nacita z nejake "sitove cache" - nevite nekdo, jak to "refreshnout", at mi
nacte spravny obsah?
Diky za nakopnuti.
MN
synchronizace zmen v DB (FB)
[*] Jan Sebelik <honza(zv)haes(tec)cz> - 24.8.2004 14:50:55
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Jan Rizek
> Subject: synchronizace zmen v DB (FB)
>
> neexistuje nejaky mocny nastroj na synchronizaci zmen v
> databazi - FB? Predstavuji si to tak, ze tento mocny nastroj
> porovna metadata (pripadne data) dvou databazi a jednu zmeni
> (prida sloupecky, ulozene procedury a apod.) k obrazu te druhe..
> V uplne idealnim pripdae by nabidl rozdily v techto dvou
> databazich a uzivatel (tedy ja :-) ) bych si mohl vybrat, co v
> ktere upgradnu.
Ja bych to resil na urovni datoveho modelu.
CASE Studio - reverse engineering z obou databazi.
A pak tyto dva modely porovnat.
Rozdily tak dostanu prehledne na urovni modelu, nikoli na urovni databaze.
viz kurz CASE Studio 2: Datove modelovani
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 569 (mobil 776 347 735)
====================================
Delphi Informant konci
[*] Petr Vones <konference(zv)petrvones(tec)net> - 24.8.2004 14:18:53
http://www.lemanix.com/nick/archive/2004/08/19/1121.aspx
Petr Vones
Synapse a zprava z FTP serveru
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 24.8.2004 14:16:52
> Priklad: Prochazim-li pomoci mojeho FTP klienta adresarovou strukturu,
> vse funguje v poradku, do doby, nez mi ftp server posle message. Pote
> mam v logu pouze chybove hlasky a nelze zmenit ani aktualni adresar.
> Pokud prave probiha stahovani souboru a prijde message, stahovani
> dobehne v poradku, ale pote se objevi stejny problem. Uz jsem to tady
> jednou resil a ty jsi rikal, ze je to chyba v synapsi. Cekal jsem, ze
> v nove verzi to bude opraveno.
Vtip je v tom, ze ja to cekal taky, ze to bude opraveno.
Prosim, posli mi na soukromy mail log udelany pomoci
TFTPSend.onstatus, ja se na to podivam.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synapse a zprava z FTP serveru
[*] Tomas Juricek <krusty(zv)razdva(tec)cz> - 24.8.2004 14:10:52
> Co to znamena 'se zhrouti'?
> Synapsi nedelaji vubec problemy miltiline zpravy od serveru, tebou
> zminovany fix se tyka jen monitorovani prikazu, kdy u drivejsich
> verzi nebyly monitorovany vsechny radky serverove odpovedi.
> Zpracovany ale vsechny byly pokazde.
Priklad: Prochazim-li pomoci mojeho FTP klienta adresarovou strukturu, vse
funguje v poradku, do doby, nez mi ftp server posle message. Pote mam v logu
pouze chybove hlasky a nelze zmenit ani aktualni adresar. Pokud prave
probiha stahovani souboru a prijde message, stahovani dobehne v poradku, ale
pote se objevi stejny problem.
Uz jsem to tady jednou resil a ty jsi rikal, ze je to chyba v synapsi. Cekal
jsem, ze v nove verzi to bude opraveno.
Tomas Juricek
Synapse a zprava z FTP serveru
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 24.8.2004 13:52:50
> pomoci Synapse vytvarim FTP klienta. Problem je stale v tom, ze pokud
> mi server posle message, veskere operace se zhrouti. Myslel jsem, ze
> tato chyba byla uz v nove verzi (no. 33) opravena. V historii je
> uvedeno: DoStatus can report multiline replyes. Nemelo to prave
> vyresit tento problem? Pouzivam BulletProof FTP server.
Co to znamena 'se zhrouti'?
Synapsi nedelaji vubec problemy miltiline zpravy od serveru, tebou
zminovany fix se tyka jen monitorovani prikazu, kdy u drivejsich
verzi nebyly monitorovany vsechny radky serverove odpovedi.
Zpracovany ale vsechny byly pokazde.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
synchronizace zmen v DB (FB)
[*] Viktor Doubek <viktordoubek(zv)centrum(tec)cz> - 24.8.2004 13:36:41
> neexistuje nejaky mocny nastroj na synchronizaci zmen v databazi - FB? Predstavuji si to tak, ze tento mocny nastroj porovna metadata (pripadne data) dvou databazi a jednu zmeni (prida sloupecky, ulozene procedury a apod.) k obrazu te druhe.. V uplne idealnim pripdae by nabidl rozdily v techto dvou databazich a uzivatel (tedy ja :-) ) bych si mohl vybrat, co v ktere upgradnu.
Samozrejme existuje: IBExpert a jeho funkce Database comparer - myslim, zes uplne presne popsal, jak to funguje - vznikne z toho rozdilovy script, kterym dostanes databazi do stejneho stavu jako tu cilovou a s tim si uz muzes delat co uznas za vhodne. Jedine co si nejsem jist, jestli to je i v te free personal edition. Zdar VD.
synchronizace zmen v DB (FB)
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 24.8.2004 13:20:39
Dobry den,
neexistuje nejaky mocny nastroj na synchronizaci zmen v databazi - FB? Predstavuji si to tak, ze tento mocny nastroj porovna metadata (pripadne data) dvou databazi a jednu zmeni (prida sloupecky, ulozene procedury a apod.) k obrazu te druhe.. V uplne idealnim pripdae by nabidl rozdily v techto dvou databazich a uzivatel (tedy ja :-) ) bych si mohl vybrat, co v ktere upgradnu.
Existuje neco takoveho?
Dekuji za pripadne odpovedi
JR
synchronizace zmen v DB (FB)
[*] Fedor 'fi0dor' Tirsel <fi0dor(zv)fi0dor.info> - 24.8.2004 13:34:41
: Neexistuje nejaky mocny nastroj na synchronizaci zmen v databazi - FB?
: Predstavuji si to tak, ze tento mocny nastroj porovna metadata (pripadne data)
: dvou databazi a jednu zmeni (prida sloupecky, ulozene procedury a apod.) k
: obrazu te druhe.. V uplne idealnim pripdae by nabidl rozdily v techto dvou
: databazich a uzivatel (tedy ja :-) ) bych si mohl vybrat, co v ktere upgradnu.
:
: Existuje neco takoveho?
Existuje :), napr. ako plugin do IB Experta
(http://www.h-k.de/index2.php?var_content=plugins&var_lang=englisch&var_produkt=
ibe), pripadne sa pozrite na
http://www.clevercomponents.com/products/dbcvcl/dbcvcl.asp, daco by sa naslo aj
tu
http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1093342924:161614&page=ibp_contrib_download
(pozor na zalomenie odkazov)
S pozdravom...
--
Fedor 'fi0dor' Tirsel
www.fi0dor.info
Synapse a zprava z FTP serveru
[*] Tomas Juricek <krusty(zv)razdva(tec)cz> - 24.8.2004 13:28:40
Zdravim,
pomoci Synapse vytvarim FTP klienta. Problem je stale v tom, ze pokud mi
server posle message, veskere operace se zhrouti. Myslel jsem, ze tato chyba
byla uz v nove verzi (no. 33) opravena. V historii je uvedeno: DoStatus can
report multiline replyes. Nemelo to prave vyresit tento problem?
Pouzivam BulletProof FTP server.
Tomas Juricek
synchronizace zmen v DB (FB)
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 24.8.2004 13:22:40
www.clevercomponents.com - Database comparer. Funguje velice dobre...
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Jan Rizek
> Sent: Tuesday, August 24, 2004 1:21 PM
>
> neexistuje nejaky mocny nastroj na synchronizaci zmen v
> databazi - FB? Predstavuji si to tak, ze tento mocny nastroj
IDE Delphi 7 a vetsi rozliseni monitoru
[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 24.8.2004 12:04:34
DD,
> A nemas nahodou nastavene "Desktop speedsettings" ???
> Musis to na vetsim rozliseni znovu rozmistit a ulozit pod stejnym
> nazvem...
samozrejme, ze mam :-) . Diky za nakopnuti.
D. Toman
IDE Delphi 7 a vetsi rozliseni monitoru
[*] Josef Zvonicek <prosoft(zv)prosoft(tec)cz> - 24.8.2004 12:08:34
Rozmisti si okna uloz si je pod nejakym jmenem a pak toto jmeno nastav jako
'DEBUG Desktop'.
-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Dalibor Toman
Sent: Tuesday, August 24, 2004 11:06 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: IDE Delphi 7 a vetsi rozliseni monitoru
DD,
bojuju s nasledujicicim problemem - na monitoru 1600 x 1200 edit okna
krasne drzi nastavenou maximalni velikost. Ale pri debugovani programu se
zmensi velikost oken se zdrojakem na (zrejme) predchozi rozliseni (cca 1200
na neco). Jakmile krokovani prerusim skoci okna zase na plnou velikost. V
souboresch s projektem jsem nikde nenasel, ze by se dala extra definovat
velikost oken pri debugovani...
Nema nekdo tip co s tim?
D. Toman
IDE Delphi 7 a vetsi rozliseni monitoru
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 24.8.2004 11:14:31
A nemas nahodou nastavene "Desktop speedsettings" ???
Musis to na vetsim rozliseni znovu rozmistit a ulozit pod stejnym nazvem...
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Dalibor Toman
> Sent: Tuesday, August 24, 2004 11:07 AM
>
> bojuju s nasledujicicim problemem - na monitoru 1600 x 1200 edit okna
> krasne drzi nastavenou maximalni velikost. Ale pri debugovani programu
> se zmensi velikost oken se zdrojakem na (zrejme) predchozi rozliseni
> (cca 1200 na neco). Jakmile krokovani prerusim skoci okna zase na
> plnou velikost. V souboresch s projektem jsem nikde nenasel, ze by se
> dala extra definovat velikost oken pri debugovani...
IDE Delphi 7 a vetsi rozliseni monitoru
[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 24.8.2004 11:06:30
DD,
bojuju s nasledujicicim problemem - na monitoru 1600 x 1200 edit okna
krasne drzi nastavenou maximalni velikost. Ale pri debugovani programu
se zmensi velikost oken se zdrojakem na (zrejme) predchozi rozliseni
(cca 1200 na neco). Jakmile krokovani prerusim skoci okna zase na
plnou velikost. V souboresch s projektem jsem nikde nenasel, ze by se
dala extra definovat velikost oken pri debugovani...
Nema nekdo tip co s tim?
D. Toman
Jak zjistit informace o aktualnim uzivateli?
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 24.8.2004 10:40:28
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Robert Suska
>
> procedure GetLocalGroupUsers(lpwServer, lpwGroup : PWideChar);
> type
> TUserArray = array of LOCALGROUP_MEMBERS_INFO_1;
> var
> pBuffer: Pointer;
> cbRead,cbTotal,Res,hRes: Cardinal;
> i: Integer;
> begin
> hRes := 0;
> repeat
> Res := NetLocalGroupGetMembers(lpwServer, lpwGroup, 1, pBuffer, 1024,
> cbRead, cbTotal, hRes);
> if (Res = 0) or (Res = ERROR_MORE_DATA) then
> begin
> for i := 0 to cbRead-1 do
> Form1.ListBox1.Items.Add(TUserArray(pBuffer)[i].lgrmi1_name);
> NetApiBufferFree(pBuffer);
> end;
> until Res<>ERROR_MORE_DATA;
> end;
Diky za typ. Upravil jsem si tuto proceduru na novou funkci:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
JclSecurity, StdCtrls, JclSysInfo;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
L_username: TLabel;
L_privilege: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
P_USER_INFO_1 = ^_USER_INFO_1;
_USER_INFO_1 = record
usri1_name: LPWSTR;
usri1_password: LPWSTR;
usri1_password_age: DWORD;
usri1_priv: DWORD;
usri1_home_dir: LPWSTR;
usri1_comment: LPWSTR;
usri1_flags: DWORD;
usri1_script_path: LPWSTR;
end;
function NetUserGetInfo(
servername: PWideChar;
localgroupname: PWideChar;
level: DWORD;
var bufptr: Pointer): Integer; stdcall; external 'netapi32.dll';
function NetApiBufferFree(buffer: Pointer): Integer; stdcall; external
'netapi32.dll';
function GetEnvVar(const Name:String):String;
var
Form1: TForm1;
implementation
{$R *.DFM}
function GetGroupCurrentUser(lpwServer, lpwUserName : PWideChar): string;
type
TGroupArray = array of _USER_INFO_1;
var
pBuffer: Pointer;
Res: Cardinal;
begin
Res := NetUserGetInfo(lpwServer, lpwUserName, 1, pBuffer);
if (Res = 0) or (Res = ERROR_MORE_DATA) then
begin
case TGroupArray(pBuffer)[0].usri1_priv of
0 : Result := 'USER_PRIV_GUEST';
1 : Result := 'USER_PRIV_USER';
2 : Result := 'USER_PRIV_ADMIN';
else
Result := 'other';
end;
NetApiBufferFree(pBuffer); //Tady mi to konci chybou
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
Var
Buffer: PWideChar;
begin
L_username.Caption := GetEnvVar('USERNAME');
L_privilege.Caption := GetGroupCurrentUser('',
StringToWideChar(L_username.Caption,Buffer,20));
end;
function GetEnvVar(const Name:String):String;
var L:Dword;
begin
L:=GetEnvironmentVariable(PChar(Name),nil,0);
SetString(Result,nil,L);
if GetEnvironmentVariable(PChar(Name),PChar(Result),L) <> L-1 then
begin
// RaiseLastOSError;
RaiseLastWin32Error;
end;
end;
end.
Ale konci mi to chybou. Delam neco spatne? Podivejte se prosim na to nekdo.
Predem moc diky.
Igor Vodicka
jak zjistit, ze se vypinaji win v onclos
[*] j.binder(zv)albacon(tec)cz - 24.8.2004 09:44:24
> potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
> programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
> Peca
V OnCloseQuery to podle me nejde, resil bych to odchycenim wm_endsession v Application.Onmessage
Zdravi Jiri Binder
jak zjistit, ze se vypinaji win v onclose(query)?
[*] Marian Nykel <m.any(zv)centrum(tec)cz> - 24.8.2004 09:58:25
Zdravim,
zkus si odchytit zpravy o ukoncovani windows a v jejich zpracovani provest, co
potrebujes - neco takoveho:
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
...
procedure TfrmApp.WMEndSession(var Msg: TMessage);
begin
//neco...
end;
procedure TfrmApp.WMQueryEndSession(var Msg: TMessage);
begin
//neco...
end;
Zdravi
MN
petr palicka wrote:
> Zdravim,
> potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
> programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
>
> dekuji
>
> Peca
jak zjistit, ze se vypinaji win v onclose(query)?
[*] Robert Suska <robert.suska(zv)fnusa(tec)cz> - 24.8.2004 09:42:23
Ahoj
Musis reagovat na spravy WM_QUERYENDSESSION alebo WM_ENDSESSION. Pokial
chces "zastavit" napr. restart tak musis osetrit spravu WM_QUERYENDSESSION.
Viac info tu
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/wm_queryendsession.asp
a tu
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/wm_endsession.asp
a konkretny priklad
private
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message
WM_QueryEndSession;
end;
Implementation
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if MessageDlg('Close Windows now?',
mtConfirmation,
[mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;
S pozdravom,
Robo
> potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
> programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
>
> dekuji
>
> Peca
jak zjistit, ze se vypinaji win v onclose(query)?
[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 24.8.2004 09:26:22
Zdravim,
potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
dekuji
Peca
Jak zjistit informace o aktualnim uzivateli?
[*] Robert Suska <robert.suska(zv)fnusa(tec)cz> - 24.8.2004 08:52:20
Ahoj
asi takto
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
PLOCALGROUP_MEMBERS_INFO_1 = ^LOCALGROUP_MEMBERS_INFO_1;
LOCALGROUP_MEMBERS_INFO_1 = record
lgrmi1_sid: PSID;
lgrmi1_sidusage: SID_NAME_USE;
lgrmi1_name: LPWSTR;
end;
function NetLocalGroupGetMembers(
servername: PWideChar;
localgroupname: PWideChar;
level: DWORD;
var bufptr: Pointer;
prefmaxlen: DWORD;
var entriesread: DWORD;
var totalentries: DWORD;
var resumehandle: DWORD): Integer; stdcall; external 'netapi32.dll';
function NetApiBufferFree(buffer: Pointer): Integer; stdcall; external
'netapi32.dll';
var
Form1: TForm1;
{$R *.dfm}
implementation
procedure GetLocalGroupUsers(lpwServer, lpwGroup : PWideChar);
type
TUserArray = array of LOCALGROUP_MEMBERS_INFO_1;
var
pBuffer: Pointer;
cbRead,cbTotal,Res,hRes: Cardinal;
i: Integer;
begin
hRes := 0;
repeat
Res := NetLocalGroupGetMembers(lpwServer, lpwGroup, 1, pBuffer, 1024,
cbRead, cbTotal, hRes);
if (Res = 0) or (Res = ERROR_MORE_DATA) then
begin
for i := 0 to cbRead-1 do
Form1.ListBox1.Items.Add(TUserArray(pBuffer)[i].lgrmi1_name);
NetApiBufferFree(pBuffer);
end;
until Res<>ERROR_MORE_DATA;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.Add('Skupina - Administrators');
GetLocalGroupUsers('', 'Administrators'); // prazdny retazec je lokalny
stroj
ListBox1.Items.Add('');
ListBox1.Items.Add('');
ListBox1.Items.Add('Skupina - Power Users');
GetLocalGroupUsers('', 'Power Users');
ListBox1.Items.Add('');
ListBox1.Items.Add('');
ListBox1.Items.Add('Skupina - Users');
GetLocalGroupUsers('', 'Users');
end;
end.
S pozdravom,
Robo
> Diky, ano to vsechno funguje (mimochodem seznam vsech variables se da
> zjistit funkci GetEnvironmentVars z JCL), ale jeste bych potreboval
zjistit
> informaci do jake skupiny uzivatelu patri aktualini uzivatel, tj.
> administrators, power users, users nebo guest.
>
> Pokousel jsem se vyuzit funkci NetUserGetInfo, ale nejak mi to neslo.
Pouzil
> nekdo uz tuto funkci, byl bych vdecny za maly prikladek.
>
> Ing. Igor Vodicka
> informacni systemy
> Nakladatelstvi Sagit
> Tel.: 59 6786 001
> HTTP://www.sagit(tec)cz/
Jak zjistit informace o aktualnim uzivateli?
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 24.8.2004 08:38:17
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Josef Straka
> Nalogovany uzivatel by sel zjistit treba takto:
>
> function NalogovanyUzivatel:String;
> var User: PChar;
> L : Dword;
> begin
> L := 1024;
> User := StrAlloc(Succ(L));
> if GetUserName(User, L) then
> Result := StrPas(User)
> else Result := '?';
> end;
>> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Ing. Miroslav Vopalecky
> Je mozne pouzit nasledujici funkci, ktera vrati promennou:
>
> function GetEnvVar(const Name:String):String;
> var L:Dword;
> begin
> L:=GetEnvironmentVariable(PChar(Name),nil,0);
> SetString(Result,nil,L);
> if GetEnvironmentVariable(PChar(Name),PChar(Result),L) <> L-1 then
> begin
> RaiseLastOSError;
> //RaiseLastWin32Error;
> end;
> end;
>
> a jeji volani:
> Uzivatel := GetEnvVar('USERNAME');
> CestaTemp:= GetEnvVar('TEMP');
Diky, ano to vsechno funguje (mimochodem seznam vsech variables se da
zjistit funkci GetEnvironmentVars z JCL), ale jeste bych potreboval zjistit
informaci do jake skupiny uzivatelu patri aktualini uzivatel, tj.
administrators, power users, users nebo guest.
Pokousel jsem se vyuzit funkci NetUserGetInfo, ale nejak mi to neslo. Pouzil
nekdo uz tuto funkci, byl bych vdecny za maly prikladek.
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
Jak zjistit informace o aktualnim uzivateli?
[*] Ing. Miroslav Vopalecky <m.vopalecky(zv)tiscali(tec)cz> - 24.8.2004 07:50:12
Ahoj.
Je mozne pouzit nasledujici funkci, ktera vrati promennou:
function GetEnvVar(const Name:String):String;
var L:Dword;
begin
L:=GetEnvironmentVariable(PChar(Name),nil,0);
SetString(Result,nil,L);
if GetEnvironmentVariable(PChar(Name),PChar(Result),L) <> L-1 then
begin
RaiseLastOSError;
//RaiseLastWin32Error;
end;
end;
a jeji volani:
Uzivatel := GetEnvVar('USERNAME');
CestaTemp:= GetEnvVar('TEMP');
S pozdravem Mirek Vopalecky, D7 W2000
-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Ing. Igor Vodicka
Sent: Monday, August 23, 2004 2:37 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Jak zjistit informace o aktualnim uzivateli?
Ahoj vsichni!
Potreboval bych zjistit jmeno prihlaseneho uzivatele do windows a jeho
zarazeni do skupiny, zda je administrator, power users nebo users (D5 ent).
Nevite jak na to? Existuje nejaka funkce v JCL?
Predem diky
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
Vysunuti CD na siti
[*] Ing. Ludek Florian <ludek.florian(zv)bluerose(tec)cz> - 23.8.2004 15:53:10
Cauec,
kdysi davno jsem si s takovyma ptakovinama hral. Napsal jsem si primitivni
FTP server a mohl jsem na dalku otvirat i zavirat CD, spoustet aplikace,
atd. Pak to slo do supliku, nekde bych to vyhrabal, kdyby byl zajem.
Bye Ludan
> > existuje nejaka moznost ovladani CD mechaniky, ktera neni mistni, nybrz
> > je namapovana ze site? Potrebuji jen vysunout CD.
>
> Mozna nekoho napadne lepsi moznost.
> Me napada DCOM.
> Tedy napsat server (pobezi na pocitaci s CD),
> ktery otevira mechaniku a zavolat jeho sluzbu z mistniho pocitace.
ADMIN: Vysunuti CD na siti
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 23.8.2004 15:13:07
Puvodni zprava ze dne 23.8.2004:
> zavolej spravci site,at zmackne cudlik :)
NAPOMENUTI ADMINISTRATORA KONFERENCE DELPHI ZA PRISPEVEK S NULOVOU
INFORMACNI HODNOTOU
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Vysunuti CD na siti
[*] Lahoda Radek <lahodar(zv)uniplet(tec)cz> - 23.8.2004 15:09:06
zavolej spravci site,at zmackne cudlik :)
R.Lahoda
...---...
Blizi se cipova totalita, pak prijde Apokalypsa
http://www.vesmirni-lide(tec)cz/lucid/index3.htm
http://www.vesmirni-lide(tec)cz/lucid/apokalypsa.htm
> Zdravim vsechny,
> existuje nejaka moznost ovladani CD mechaniky, ktera neni mistni, nybrz
> je namapovana ze site? Potrebuji jen vysunout CD.
>
> Diky
> MN
>
>
>
Vysunuti CD na siti
[*] Jan Sebelik <honza(zv)haes(tec)cz> - 23.8.2004 15:07:06
expert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Marian Nykel
> Sent: Monday, August 23, 2004 12:25 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Vysunuti CD na siti
>
> Zdravim vsechny,
> existuje nejaka moznost ovladani CD mechaniky, ktera neni mistni, nybrz
> je namapovana ze site? Potrebuji jen vysunout CD.
Mozna nekoho napadne lepsi moznost.
Me napada DCOM.
Tedy napsat server (pobezi na pocitaci s CD),
ktery otevira mechaniku a zavolat jeho sluzbu z mistniho pocitace.
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 569 (mobil 776 347 735)
====================================
Jak zjistit informace o aktualnim uzivateli?
[*] Josef Straka <strakajosef(zv)seznam(tec)cz> - 23.8.2004 14:57:05
Nalogovany uzivatel by sel zjistit treba takto:
function NalogovanyUzivatel:String;
var User: PChar;
L : Dword;
begin
L := 1024;
User := StrAlloc(Succ(L));
if GetUserName(User, L) then
Result := StrPas(User)
else Result := '?';
end;
Straka Josef
mail: strakajosef(zv)quick(tec)cz
www: http://strakaj.zde(tec)cz
----- Original Message -----
From: "Ing. Igor Vodicka" <vodicka(zv)sagit(tec)cz>
> Potreboval bych zjistit jmeno prihlaseneho uzivatele do windows a
jeho
> zarazeni do skupiny, zda je administrator, power users nebo users
(D5 ent).
> Nevite jak na to? Existuje nejaka funkce v JCL?
Jak zjistit informace o aktualnim uzivateli?
[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 23.8.2004 14:37:04
Ahoj vsichni!
Potreboval bych zjistit jmeno prihlaseneho uzivatele do windows a jeho
zarazeni do skupiny, zda je administrator, power users nebo users (D5 ent).
Nevite jak na to? Existuje nejaka funkce v JCL?
Predem diky
Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/
Managed extenstions for VCL - .Net interop for Del
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 23.8.2004 14:11:02
Tohle by mohlo nekoho zajimat, pripade pokud s tim mate nekdo
zkusenosti, napiste:
http://www.managed-vcl.com/
--
______________________________________________________
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
______________________________________________________
IntraWeb
[*] Petr Vones <konference(zv)petrvones(tec)net> - 23.8.2004 12:42:54
From: "Pavel Poles" <delphi(zv)noni(tec)cz>
> Intraweb pouzit pomerne uspesne. Nehlede na to ze v Delphi uz umis
> programovat
> a vnecem jinem (PHP, ASP) treba ne tolik...
To je prave vyhoda ASP.NETu ze tam taky pouzivas jiz "znamy" jazyk. Stejne se
ale nevyhnes alespon zakladni znalosti HTML a JavaScriptu, a samozrejme celeho
.NETu.
Petr Vones
IntraWeb
[*] Pavel Poles <delphi(zv)noni(tec)cz> - 23.8.2004 12:36:54
> Ahoj, zkouseli jste nekdo Intraweb? Ma cenu se touhle technologii zabyvat?
No ja jsem v tom delal pomerne rozsahly projekt a shrnul bych to asi takto:
- Pokud budes delat vzhledove jednoduche stranky pototm asi neni problem
Intraweb pouzit. Napr oproti WebBrokeru mas poresene Sessions, Jednoduse
se da udelat vlasdtni HTTP server (polozenim jedine komponenty na form), a
zakladni
visualisace je opravdu velmi jednoducha.
- Na co jsem narazil jako na nejvetsi problem je velikost generovaneho html.
Vzhledem k tomu ze se Intraweb snazi byt co nejvic universalni tak do html
cpe
obrovske mnozstvi tagu a Javascriptu a podobnych veci, coz ve finale ma ten
efekt, ze se stranky strasne pomalu natahuji, a pro kazdou malo zmenu se
natahuji znova a znova (pri spatnem zachazeni se dokonce ani obrazky nedrzi
v cache)
- Vsechny vyse popsane problemy se mi, rekl bych pomerne uspesne, podarilo
vyresit
ale byla to prace dost casto spis nez v Delphi v Javascriptu a v CSS.
- Obecne bych rekl ze pokud nepotrebujes moc graficky hezkou stranku, pak
lze
Intraweb pouzit pomerne uspesne. Nehlede na to ze v Delphi uz umis
programovat
a vnecem jinem (PHP, ASP) treba ne tolik...
Pavel Poles
NT service - jak na to ? - Vyreseno
[*] Jiri Betunak <kindrik(zv)centrum(tec)cz> - 23.8.2004 12:26:53
> Pod jakym uctem ti Service bezi?
> Neblokuje ti to Firewall - bud tveho pocitace - nebo okolnich pocitacu?
Ano ano je to pravda jsem na hlavu byl to firewall dekuji za nakopnuti
Jiri B.
Win XP ,Delphi7
Vysunuti CD na siti
[*] Marian Nykel <m.any(zv)centrum(tec)cz> - 23.8.2004 12:24:53
Zdravim vsechny,
existuje nejaka moznost ovladani CD mechaniky, ktera neni mistni, nybrz
je namapovana ze site? Potrebuji jen vysunout CD.
Diky
MN
NT service - jak na to ?
[*] Jiri Sedivec <jsedivec(zv)tiscali(tec)cz> - 23.8.2004 12:14:52
Dovolim si jeste citovat z jednoho e-mailu - z jine konference. Kdysi davno
mi pod Service nefungovalo nasdileni slozek - Petr Lazecky mi neco malo
napsal o tom jak se vlastne Service chova. Docela uzitecny text - alespon
pro me:
==============
Snazim se na toto tema sesmolit nekolik clanecku protoze mam pocit ze tema
security je zde probirano pomerne casto. LocalSystem je velmi silny ucet na
lokalni stanici (ucet se silou administratora) ale s minimalnimi pravy na
siti. V praxi to znamena nekolik problemu. Napriklad, vy jste na pocitaci
prihlasen pod svym uctem. Napisete aplikaci a vse funguje jak ma. Vase
aplikace zapisuje neco do registry pod HKCU (HK Current User). Zaroven Vase
aplikace pristupuje na jine pocitace na siti.
Jakmile zapouzdrite tuto aplikaci pod Windows NT service bezici jako
LocalSystem tak bezite v kontextu uplne jineho uzivatele s uplne jinymi
pravy. Obecne by to tedy nemel byt problem na lokalni stanici protoze
LocalSystem je velmi silny ucet. Ale...
LocalSystem neuvidi Vas HKCU vetev v registry. Takze cokoliv tam zapisujete
ci ctete je nedostupne. Pristup po siti je mozny pokud na cilove stanici
povolite pristup pro ucet MACHINE$ (kde MACHINE je jmeno pocitace na kterem
bezi Vase service). To funguje pouze na W2K a vyssi. Na NT 4.0 to nefunguje
protoze na tomto systemu nelze priradit prava uctu "pocitac" zatimco na W2K
je pocitacovy ucet ucet jako kazdy jiny. Obecne, pristup na sit jako
LocalSystem bude vzdy problematicky a bude vyzadovat jiste usili na strane
aplikace vzhledem k "sile" LocalSystem na siti.
Dale, LocalSystem "neuvidi" veskere namapovane sitove spojeni ktere vidite
Vy pri vyvoji Vasi aplikace. Pokud pristupujete k souborum ke kterym nema
LocalSystem prava (napriklad nejake Vami vytvorene soubory) tak to
samozrejme selze opet. Podobne problemy zazijete pri pouziti certifikatu z
certificate store protoze certificate store je opet mapovan pro kazdeho
uzivatele zvlast. Stejne pro MAPI profily, pripojene tiskarny, DNS pripojeni
a buh vi co jeste.
Dalsi zajimave problemy souvisi s faktem ze LocalSystem bezi ve sve vlastni
windows station. V praxi to napriklad znamena ze neuvidite zadny dialogovy
box ktery Vase aplikace zobrazi a tutiz neni jak tento dialogovy box
odmacknout a tutiz Vas program sedi a ceka a nic nedela... Zde ja navaznost
na debugging sluzeb bezicich pod LocalSystem. Stejny problem. Pokud
napriklad chcete debugovat Vasi NT service v dobe inicializace ( a tudiz
neni mozne pouzit Attach to...) tak se debugger sice spusti ale opet nebude
videt protoze pobezi v uplne jine window station. Sice uvidite debugger v
Windows NT Task Manageru ale to je tak vse. Problem debugovani resi volba
"Allow service interact with desktop" (doporucuji pouze pro debogovani, pak
vypnout protoze se jedna o bezpecnosti vrata, ne diru). Problem message boxu
musite vyresit Vy napriklad logovanim do event logu.
Jak vidite, LocalSystem ma sva kouzla... A to vse co jsem tu zminil "jenom"
kvuli bezpecnosti...
Petr Lazecky,
Microsoft
NT service - jak na to ?
[*] Jiri Sedivec <jsedivec(zv)tiscali(tec)cz> - 23.8.2004 12:08:51
----- Original Message -----
Subject: NT service - jak na to ?
> - Nevite tedy nekdo pls jak ho donutit aby chodil i na ip adresu meho
> stroje ? tj aby se na nej slo pripojit i s jine masiny ?
> {
> - A pokud aplikaci predelam do klasicke win32 app tak to ftp jede v pohode
> a bez problemu
> }
Pod jakym uctem ti Service bezi?
Neblokuje ti to Firewall - bud tveho pocitace - nebo okolnich pocitacu?
NT service - jak na to ?
[*] Jiri Betunak <kindrik(zv)centrum(tec)cz> - 23.8.2004 11:54:50
Zdravim konference,
Pisi si servis app pro win XP je to neco jako jednoduchy ftp server .
No a narazil jsem na problem s kterym si vubec ale vubec nevim rady, tak
bych Vas chtel pozadat o pomoc
Popis problemu:
- pokud muj servis jede lze se na nej bez problemu pripojit ale pouze s
mojeho stroje tjst s localhostu
- Nevite tedy nekdo pls jak ho donutit aby chodil i na ip adresu meho
stroje ? tj aby se na nej slo pripojit i s jine masiny ?
{
- A pokud aplikaci predelam do klasicke win32 app tak to ftp jede v pohode
a bez problemu
}
Predem diky za jakoukoliv radu
Jiri B.
WinXP,Delphi 7
Stahnuti www.sazka.cz
[*] Lahoda Radek <lahodar(zv)uniplet(tec)cz> - 23.8.2004 11:46:49
nebo pouzijte http://elis.sazka(tec)cz/index.php, zasilaji to na email
R.Lahoda
----------------------------------------------------------------------
http://www.vesmirni-lide(tec)cz/lucid/apokalypsa.htm
> Zdravim vsechny,
>
> Chci si udelat "automat" na stahovani vysledku losovani Sportky. Chci si
> pravidelne z http://www.sazka(tec)cz/vysledky/sportka/aktualni.php3 ukladat
> losovana cisla I. a II tahu, a z tabulky vyher jednotlive vyhry v Kc dle
> poradi. Sazka zverejnuje na
> http://www.sazka(tec)cz/set/generated_vysledky/sportka-nedele.dbf pouze
losovana
> cisla, ale bez dosazenych vyher.
>
Stahnuti www.sazka.cz - jeste jine pouziti Synapse
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 23.8.2004 11:10:39
> kdyz uz jsi to nakousnul, tak bych se chtel zeptat jeste na jine
> pouziti Synapse (nebo jestli ma nekdo jiny napad): Potreboval bych
> periodicky sledovat obsah stranky, ktera je aktualne zobrazena v
> prohlizeci (typicky MSIE). Je nejaka cesta, jak dostat textovy obsah
> framu v IE do nejakeho textoveho pole (treba Memo, to je jedno)? Slo
> by to i pres zdrojovy text, ve kterem je hledana informace take.
Toto je opravdu zcela jina oblast pusobnosti, ktera se Synapse
nedotyka. A ja sam do IE tak nedelam, abych dokazal poradit. ;-(
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Stahnuti www.sazka.cz - jeste jine pouziti Synapse
[*] Mira <ondrisek(zv)seznam(tec)cz> - 23.8.2004 10:38:04
Zdravim Lukasi,
kdyz uz jsi to nakousnul, tak bych se chtel zeptat jeste na jine pouziti
Synapse (nebo jestli ma nekdo jiny napad):
Potreboval bych periodicky sledovat obsah stranky, ktera je aktualne
zobrazena v prohlizeci (typicky MSIE). Je nejaka cesta, jak dostat textovy
obsah framu v IE do nejakeho textoveho pole (treba Memo, to je jedno)? Slo
by to i pres zdrojovy text, ve kterem je hledana informace take.
Diky vsem
Mira
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Lukas Gebauer
> Stahni si Synapsi, pridej si do uses unitu httpend, a pak ti staci
> zavolat:
Stahnuti www.sazka.cz
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 23.8.2004 09:51:59
> Chci si udelat "automat" na stahovani vysledku losovani Sportky. Chci
> si pravidelne z http://www.sazka(tec)cz/vysledky/sportka/aktualni.php3
> ukladat losovana cisla I. a II tahu, a z tabulky vyher jednotlive
> vyhry v Kc dle poradi. Sazka zverejnuje na
Stahni si Synapsi, pridej si do uses unitu httpend, a pak ti staci
zavolat:
HttpGetText('http://www.sazka(tec)cz/vysledky/sportka/aktualni.php3',
memo1.lines);
Toto ti stahne tu tvoji stranku do mema na formulari. pochopitelne
misto toho memo1.lines muzes pouzit jakykoliv stringlist!
Zbytek je uz na tobe, aby sis ten stazeny text stranky prosel a
vytahnul z nej co potrebujes.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Stahnuti www.sazka.cz
[*] Sebesta Jan <sebesta(zv)cube(tec)cz> - 23.8.2004 09:43:58
Zdravim vsechny,
Chci si udelat "automat" na stahovani vysledku losovani Sportky. Chci si
pravidelne z http://www.sazka(tec)cz/vysledky/sportka/aktualni.php3 ukladat
losovana cisla I. a II tahu, a z tabulky vyher jednotlive vyhry v Kc dle
poradi. Sazka zverejnuje na
http://www.sazka(tec)cz/set/generated_vysledky/sportka-nedele.dbf pouze losovana
cisla, ale bez dosazenych vyher.
Bohuzel zatim navim jak na to.
Idea je takova, ze budu muset nejak stahnout celou stranku do txt (?) a pak
to z neho vykousat.
Poradite mi nekdo jak dosat tu stranku na lokalni PC pomoci Delphi? Nebo
nenapadne nekoho neco lepsiho?
Dekuji moc.
Sebesta Jan