Archív konference Delphi

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

Instalacia Ocx komponenty

[*] Ing. Keder Vladimir <vkeder(zv)iol.sk> - 01.1.2008 17:12:34

Ahoj delphi fans



V Novom roku 2008 vsetko najlepsie, nech kazdy riadok kodu je pre Vas
potesenim, ...



Mam dotaz, nakolko som skusil asi vsetky moznosti ako najst odpoved
(konferencia, google, pokus-omyl, ...)



Mam komponenty ocx ktore by som si chcel pridat do palety komponent. Asi na
zaciatok upresnim, ze je to v Delphi 2007. Isiel som podla navodu



Component/Import component

Import ActiveX - Next

vybral som si prvok ktory som chcel naimportovat - Next

odhliadnut od toho, ze nemam paletu ActiveX a aj ked som si ju dal vytvorit,
nezobrazilo mi ju, vyberiem si paletu Samples

zaskrtnem Generate Component Wrappers - Next

jedina moznost je Create Unit - Finish



V palete komponent sa nic neobjavilo, vytvoril sa novy subor *.pas, a
samozrejme ho okamzite otvorilo. Subor ktory bol vytvoreny dostal meno
*_tlb.pas. Tento unit mozem skompilovat, vytvori mi subor *.dcr



To je asi tak vsetko co som s tym dokazal urobit. Ked som hladal na webe
pomoc, nasiel som, ze v starsich verziach delphi bolo tlacitko Install.



Skusal som aj ine prvky (Adobe Acrobat 7.0 Browser Control Type Library 1.0)
ale vsetko s tym istym vysledkom



Ako dostanem ocx na paletu aby som ich mohol zacat pouzivat ? Diky za
odpoved



Vlado Keder





Delphi & WebDav

[*] delphak(zv)centrum(tec)cz - 03.1.2008 10:39:30

Ahoj, schanim nejakou jednoduchou knihovnu nebo komponentu (nejlepe free pro komerci pouziti), ktera umoznuje pod windows XP v delphi pracpvat se soubory pres webdav (copy, delete). Nevite nekdo o necem?

Dik za info

PS: spojeni je pres overovani certifikatem

subscribe delphi-l Jiri Fait

[*] Develop <develop(zv)lmss(tec)cz> - 07.1.2008 02:29:37



_____

I am using the free version of SPAMfighter for private users.
It has removed 14 spam emails to date.
Paying users do not have this message in their emails.
Try SPAMfighter <http://www.spamfighter.com/len> for free now!

subscribe dotnet-l Jiri Fait

[*] Develop <develop(zv)lmss(tec)cz> - 07.1.2008 02:31:38



_____

I am using the free version of SPAMfighter for private users.
It has removed 14 spam emails to date.
Paying users do not have this message in their emails.
Try SPAMfighter <http://www.spamfighter.com/len> for free now!

SQL dotaz

[*] vobornik <vobornik(zv)apel(tec)cz> - 07.1.2008 10:36:13

CASE nepodporuje

>Mozna trosku drevorubecky zpusob... (nevim zda podporuje Access vnoreny
>select a case)

>Select distinct Datum, CASE WHEN (Select count(*) from Tabulka where
>Datum = Datum) > 1 Then False else True end from Tabulka

>Jirka

>

SQL dotaz

[*] vobornik <vobornik(zv)apel(tec)cz> - 07.1.2008 10:22:11

Diky, ted je to ono, jen jeste jak pretypovat TSmallInt na TBoolean

SELECT cDate(Format(min(TimeCela),"dd/mm/yyyy")), cBool(max(obsazeno)) FROM
Tabulka GROUP BY cDate(Format(TimeCela,"dd/mm/yyyy"));

"Obsazeno" bych potreboval typu Boolean prikaz cBool mi nefunguje.

>Predpokladal jsem ze true je vetsi jak false.

>v selectu dej misto min(obsazeno) - max(obsazeno), to uz by melo fungovat.

> To je jsem jiz zkousel a vysledek:
> 16.1.2008 -1
> 17.1.2008 -1 potrebuji 0
> 18.1.2008 0

SQL dotaz

[*] Tyslic Jiri <jiri.tyslic(zv)delfortgroup(tec)com> - 07.1.2008 10:12:11

Mozna trosku drevorubecky zpusob... (nevim zda podporuje Access vnoreny
select a case)

Select distinct Datum, CASE WHEN (Select count(*) from Tabulka where
Datum = Datum) > 1 Then False else True end from Tabulka

Jirka

> Zdravim,
>
> mam tabulku s daty:
>
>
>
> 16.1.2008 8:00 true
>
> 16.1.2008 9:00 true
>
> 17.1.2008 9:00 false
>
> 17.1.2008 10:00 true
>
> 18.1.2008 12:00 false
>
> 18.1.2008 13:00 false
>
>
>
> pomoci SELECT DISTINCT cDate(Format(TimeCela,"dd/mm/yyyy")),
> obsazeno FROM Tabulka
>
> ziskam
>
> 16.1.2008 true
>
> 17.1.2008 false
>
> 17.1.2008 true
>
> 18.1.2008 false
>
>
>
> ja ale potrebuji
>
>
>
> 16.1.2008 true
>
> 17.1.2008 false
>
> 18.1.2008 false
>

SQL dotaz

[*] Kilchevskyy Anton <anton.kilchevskyy(zv)arbes(tec)com> - 07.1.2008 09:56:09

Predpokladal jsem ze true je vetsi jak false.

v selectu dej misto min(obsazeno) - max(obsazeno), to uz by melo fungovat.

> To je jsem jiz zkousel a vysledek:
> 16.1.2008 -1
> 17.1.2008 -1 potrebuji 0
> 18.1.2008 0


SQL dotaz

[*] vobornik <vobornik(zv)apel(tec)cz> - 07.1.2008 09:48:09

To je jsem jiz zkousel a vysledek:
16.1.2008 -1
17.1.2008 -1 potrebuji 0
18.1.2008 0

Zkousel jsem to pomoci vnorenych selectu, ale bez vysledku :-(

>Co treba takhle:

>SELECT cDate(Format(min(TimeCela),"dd/mm/yyyy")), min(obsazeno) FROM
>Tabulka GROUP BY cDate(Format(TimeCela,"dd/mm/yyyy"));

SQL dotaz

[*] Kilchevskyy Anton <anton.kilchevskyy(zv)arbes(tec)com> - 07.1.2008 09:10:06

Co treba takhle:

SELECT cDate(Format(min(TimeCela),"dd/mm/yyyy")), min(obsazeno) FROM
Tabulka GROUP BY cDate(Format(TimeCela,"dd/mm/yyyy")); > Zdravim,
>
> mam tabulku s daty:
>
>
>
> 16.1.2008 8:00 true
>
> 16.1.2008 9:00 true
>
> 17.1.2008 9:00 false
>
> 17.1.2008 10:00 true
>
> 18.1.2008 12:00 false
>
> 18.1.2008 13:00 false
>
>
>
> pomoci SELECT DISTINCT cDate(Format(TimeCela,"dd/mm/yyyy")), obsazeno
FROM Tabulka
>
> ziskam
>
> 16.1.2008 true
>
> 17.1.2008 false
>
> 17.1.2008 true
>
> 18.1.2008 false
>
>
> ja ale potrebuji
>
>
>
> 16.1.2008 true
>
> 17.1.2008 false
>
> 18.1.2008 false
>
>
>
> Tedy, pokud ve stejny den mam zaznam true i false, aby select vratil
jen to false. Da se toto resit ?
>
>
>
> Databaze ACCESS, OLE DB, D6
>
>
>
> Diky
>
> Petr

SQL dotaz

[*] vobornik <vobornik(zv)apel(tec)cz> - 07.1.2008 08:32:03

Zdravim,

mam tabulku s daty:



16.1.2008 8:00 true

16.1.2008 9:00 true

17.1.2008 9:00 false

17.1.2008 10:00 true

18.1.2008 12:00 false

18.1.2008 13:00 false



pomoci SELECT DISTINCT cDate(Format(TimeCela,"dd/mm/yyyy")), obsazeno FROM
Tabulka

ziskam

16.1.2008 true

17.1.2008 false

17.1.2008 true

18.1.2008 false



ja ale potrebuji



16.1.2008 true

17.1.2008 false

18.1.2008 false



Tedy, pokud ve stejny den mam zaznam true i false, aby select vratil jen to
false. Da se toto resit ?



Databaze ACCESS, OLE DB, D6



Diky

Petr

crc,archivy

[*] Locke10 <locke10(zv)seznam(tec)cz> - 09.1.2008 10:55:25

Dobry den,
nemate nekdo prosim komponenty nebo knihovny, ktere by umeli toto? :

zjistit CRC souboru
zjistit, zda je soubor archivem ZIP, RAR, a to i u samospustitelnych EXE
souboru
zjisti obsah tohoto archivu (soubory, adresare) - i pri vicesvazkovem
archivu

Dekuji moc

Vaclav Kraus

crc,archivy

[*] Jiri Kulisek <jikulich(zv)quick(tec)cz> - 09.1.2008 11:19:27

Locke10 napsal(a):
> Dobry den,
> nemate nekdo prosim komponenty nebo knihovny, ktere by umeli toto? :
>
> zjistit CRC souboru
> zjistit, zda je soubor archivem ZIP, RAR, a to i u samospustitelnych EXE
> souboru
> zjisti obsah tohoto archivu (soubory, adresare) - i pri vicesvazkovem
> archivu
>
> Dekuji moc
>
> Vaclav Kraus
>
>
>
Zkus knihovny Abbrevia, pripadne LockBox. Drive za penize od firmy
TurboPower, nyni open source ke stazeni na Sourceforge.net. Jsou uz
starsi, ale na spoustu veci stale bohate staci.

LockBox, knihovna pro kryptovani dat
http://sourceforge.net/projects/tplockbox

Abbrevia, knihovna pro praci s archivy
http://sourceforge.net/projects/tpabbrevia


Jirka

WebDav

[*] delphak(zv)centrum(tec)cz - 09.1.2008 15:03:43

Ahoj, nevite nekdo o nejake knihovne ci komponente (nejlepe free) pomoci ktere jde pristupovat k souborum pres WebDav (ssl spojeni overeni certifikatem).

Dik za info

Synapse & HTTPS

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 11.1.2008 09:34:41

> Potrebuji navazat https spojeni se serverem. Server i uzivatel je
> overovan pomoci certifikatu.

Obcas nezaskodi se pred dotazem ve foru alespon pokusit najit odpoved
v dokumentaci Synapse. ;-)

> 1) Jak programove specifikuji jaky certifikat se ma pouzit

Jaky certifikat chces pouzit, to se specifikuje tak, ze o nem Synapsi
reknes pomoci nektere property. Jake property? Inu, to zalezi na tom,
v jakem formatu ten certifikat chces, a hlavne take na tom, jaky sis
zvolil plugin pro implementaci SSL! Kazdy plugin ma v tomto jine
moznosti.

Nejsirsi moznosti ma v tomto asi ssl_openssl plugin. Viz.
http://synapse.ararat(tec)cz/doc/help/ssl_openssl.html

Property SSL pluginu se ti pak objevuji pod THttpSend.Sock.SSL

> 2) Lze pouzit certifikat z disku (tedy neni nainstalovany do windows)?.
> Certifikat (privatni klic) na disku je chraneny heslem, jak toto heslo
> zadat programove?

Naopak, NELZE pouzit certifikat co je nainstalovany v systemu.
Certifikat musis mit bud jakou soubor na disku, nebo jako blok dat v
pameti. (takze muze byt treba soucasti resources). Format musi byt
takovy, aby jej tebou zvoleny SSL plugin podporoval.

Heslo k privatnimu lici se zadava do property KeyPassword, jak pravi
dokumentace.

>3) Take je pozadovano jmeno uzivatele a heslo, jak jej zadat?

u THttpSend jsou dve moznosti:

a) pouzit username a password property objektu THttpSend.
b) pouzit jmeno a heslo standardne zakodovane v URL.

> Jakym zpusobem (a zaroven s vyse uvedenym) odeslu pomoci synapse
> napriklad naledujici pozadavek?
>
> COPY /~username/index.html HTTP/1.1
> Host: www.contoso.com
> Destination: http://www.contoso.com/~username/folder/index.html
> Overwrite: T

Do property THttpSend.Headers das vsechny nestandardni hlavicky, tedy
Destination a Overwrite. A pak Zavolas metody HTTPMethod, kde jako
prvni parametr das 'COPY', a jako druhe URL ( v tomto pripade asi:
'https://www.contoso.com/~username/index.html', pokud to chces pres
SSL.).
--
Lukas Gebauer.

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

Synapse & HTTPS

[*] delphak(zv)centrum(tec)cz - 11.1.2008 06:26:28

Potrebuji navazat https spojeni se serverem. Server i uzivatel je overovan pomoci certifikatu.
1) Jak programove specifikuji jaky certifikat se ma pouzit
2) Lze pouzit certifikat z disku (tedy neni nainstalovany do windows)?. Certifikat (privatni klic) na disku je chraneny heslem, jak toto heslo zadat programove?
3) Take je jpozadovano jmeno uzivatele a heslo, jak jej zadat?


Jakym zpusobem (a zaroven s vyse uvedenym) odeslu pomoci synapse napriklad naledujici pozadavek?

COPY /~username/index.html HTTP/1.1
Host: www.contoso.com
Destination: http://www.contoso.com/~username/folder/index.html
Overwrite: T


Dik za radu

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 11.1.2008 21:41:34

On 1/11/08, Jan Sebelik <honza(zv)haes(tec)cz> wrote:
> Treba kdyby ten selekt dostal nejakou nizsi prioritu nebo neco v tom smyslu.

Bohuzel. Zadnou prioritu urcit nemuzes. Kdyz neco zatizi server tak,
ze se skoro zastavi je to problem.

> Je videt, ze si automaticky generovany plan velmi komplikuje praci pouzivanim nedulezitych indexu.

Zajimavy. To je docela fatalni rozdil. Jak v rychlosti tak v planu.
Jak vypadaji selektivity indexu, jsou up-to-date?

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

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 11.1.2008 19:57:27

Dostal se mi do ruky spatny selekt.

Valcil jsem s tim cely vecer a vysledek, myslim, stoji za zverejneni.
PLAN muze znamenat hodne a ne vzdycky se automaticky vygeneruje spravne.
Viz nize.

Presto mam jeste dotaz:

Ten spatny selekt puvodne trval pry asi 25 min, pokud si uzivatel zadal cely mesic.
Tech 25 minut by nebyl az takovy problem, ale byli tim takrka uplne zablokovani ostatni uzivatele (asi 20), kteri potrebuji busit do klavesnice a zadavat ze sluchatka telefonu dodaci listy.
Ted to snad uz bude lepsi (viz nize), ale presto se ptam:

Da se nejak zabranit tomu, aby jeden slozity dotaz takhle blokoval vsechny ostatni uzivatele?
Treba kdyby ten selekt dostal nejakou nizsi prioritu nebo neco v tom smyslu.

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

Puvodni selekt saha na dodaci listy a jejich polozky, z dalsich tabulek dotajuje dalsi potrebne polozky.

Podtrhuji, ze je to cast ulozene procedury, ktera se vola s prislusnymi parametry. Jinak by se to dalo urcite napsat usporneji.

SELECT
A.obdobi,A.datum,V.id_skupvyr,V.id_pracoviste,B.id_vyrobek,
SUM(B.mnobj) mnobj, SUM(B.mndod) mndod
from dlist a
join dlistb b on b.id_dlist=a.id_dlist
join vyrobek v on b.id_vyrobek=v.id_vyrobek
join linka l on a.id_linka=l.id_linka
join omisto o on a.id_omisto=o.id_omisto
join partner p on o.id_partner=p.id_partner
WHERE
'3.9.2007'<=A.datum and A.datum<='3.9.2007'
and -999999999999<=A.doklad and A.doklad<=999999999999
and -999999999999<=A.id_druhdokladu and A.id_druhdokladu<=999999999999
and -999999999999<=A.id_druhdodavky and A.id_druhdodavky<=999999999999
and -999999999999<=A.id_omisto and A.id_omisto<=999999999999
and -999999999999<=A.id_linka and A.id_linka<=999999999999
and -999999999999<=A.id_ridic and A.id_ridic<=999999999999
and -999999999999<=A.id_rozvoz and A.id_rozvoz<=999999999999
and -999999999999<=O.id_skupomisto and O.id_skupomisto<=999999999999
and -999999999999<=O.id_partner and O.id_partner<=999999999999
and -999999999999<=P.id_skuppar and P.id_skuppar<=999999999999
and -999999999999<=L.id_skuplin and L.id_skuplin<=999999999999
and -999999999999<=B.id_vyrobek and B.id_vyrobek<=999999999999
and -999999999999<=V.id_skupvyr and V.id_skupvyr<=999999999999
GROUP BY A.obdobi,A.datum,V.id_skupvyr,V.id_pracoviste,B.id_vyrobek

Automaticky vygenerovany plan (2 minuty)

PLAN SORT (JOIN (A INDEX (IX_DOKLAD_DLIST,IX_DLIST_DATUM,RDB$FOREIGN85,RDB$FOREIGN90,RDB$FOREIGN105,RDB$FOREIGN160,RDB$FOREIGN163,RDB$FOREIGN166),L INDEX (RDB$PRIMARY8,RDB$FOREIGN157),O INDEX (RDB$PRIMARY14,RDB$FOREIGN96,RDB$FOREIGN155),V INDEX (RDB$PRIMARY31,RDB$FOREIGN121),P INDEX (RDB$PRIMARY15,RDB$FOREIGN154),B INDEX (RDB$PRIMARY5,RDB$FOREIGN132)))

Zjednoduseny plan (3 sekundy)
Pouziju jenom primarni indexy.a na dodacim listu samozrejme index na datum.

PLAN SORT (JOIN (A INDEX (IX_DLIST_DATUM),B INDEX (RDB$PRIMARY5), L INDEX (RDB$PRIMARY8),O INDEX (RDB$PRIMARY14),V INDEX (RDB$PRIMARY31),P INDEX (RDB$PRIMARY15)))

Je videt, ze si automaticky generovany plan velmi komplikuje praci pouzivanim nedulezitych indexu.

Interbase ---> Firebird

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 11.1.2008 11:56:52

On 1/11/08, vyvoj(zv)tsw.sk <vyvoj(zv)tsw.sk> wrote:
> Dobry den, neviete mi niekto poradit, ako co najbezbolestnejsie migrovat z Interbase na Firebird.

Backup & Restore.

> Mam program napisany v D7, pouzivam IB-komponenty (ibQuery, ibTable, ibStoredProcedures atd.) a Interbase. Tento program by som chcel s co najminimalnejsimi zasahmi previest pod Firebird.
>
> Ak chcem pouzivat svoj program pod Firebirdom, musim ib komponenty nahradit nejakymi inymi? Akymi?

Obecne nic menit nemusis. Komponenty ti pojedou i pod FB.

> Dakujem za nasmerovanie. S pozdravom Ivan KOzak
>
>
>
>


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

Interbase ---> Firebird

[*] vyvoj(zv)tsw.sk - 11.1.2008 11:52:52

Dobry den, neviete mi niekto poradit, ako co najbezbolestnejsie migrovat z Interbase na Firebird.

Mam program napisany v D7, pouzivam IB-komponenty (ibQuery, ibTable, ibStoredProcedures atd.) a Interbase. Tento program by som chcel s co najminimalnejsimi zasahmi previest pod Firebird.

Ak chcem pouzivat svoj program pod Firebirdom, musim ib komponenty nahradit nejakymi inymi? Akymi?

Dakujem za nasmerovanie. S pozdravom Ivan KOzak


FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 14.1.2008 14:39:42

> Ja mam k tomuhle dotaz. Nemohlo by vykonove pomoci (a obecne, nejde jen o
> tuto konkretni situaci) pouzit namisto joinu left joiny? Takhle se i
> tabulka dlist musi probirat, aby z vysledku zmizely zaznamy, ke kterym se
> nepodari dotahnout neco z joinovanych tabulek, kdezto s left joinem by
> server mohl mit min prace (z pomocnych tabulek dohleda spojovane udaje,
> kdyz se nepovede, nevadi, doplni se null).
> David Lebeda

Preposilam odpoved Slavka Skopalika, kterou jsem dostal na muj soukromy mail.
Jde zde prave o "left join" a dalsi tipy.

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

> from dlist a
> join dlistb b on b.id_dlist=a.id_dlist
> join vyrobek v on b.id_vyrobek=v.id_vyrobek
> join linka l on a.id_linka=l.id_linka
> join omisto o on a.id_omisto=o.id_omisto
> join partner p on o.id_partner=p.id_partner
Pri tomto mnozstvi tabulek se uplatnuje "kouzlo left join".
Zkus to a uvidis :)).
Dale tabulka linka se linku zcela zbytecne.
A jeste dale, kdyz prejdes na FB 2.0.x muzes delat tohle:

SELECT *
FROM (SELECT * FROM GROUP BY)
....

Timto muzes vyrazne urychlit GROUP BY dotazy, jelikoz
GROUP BY je velmi vypocetne narocna featura a je tedy velmi zahodno,
pokud se provadi nad co nejmensim poctem VYSTUPNICH poli.
Alternativne jsme pouzivali funkci MAX/MIN, asi takto:

SELECT D.id, MAX(D.text), COUNT(*) FROM Device, Products
WHERE ...
GROUP BY D.id

Misto
SELECT D.id, D.text, COUNT(*) FROM Device, Products
WHERE ...
GROUP BY D.id, D.text

Zrychleni je radove (cca 10x), pokud bude velky pocet zanazmu a text poneku
delsi.

Slavek

Prevod textu z UNICODE

[*] delphin(zv)post(tec)cz - 14.1.2008 14:25:41

> Nevim, kolik toho umi oba zpusoby, abych to mohl kvalifikovane porovnat,
> ale
> WideCharToMultiByte z "e" umi udelat "e", osobne vyzkouseno.

Zmizela diakritika, samozrejme melo byt:
z "e s hackem" umi udelat "e".

Prevod textu z UNICODE

[*] delphin(zv)post(tec)cz - 14.1.2008 14:13:40

> Zapomnel jsem, ze je jeste v rezimu iconv.dll provadena
> transliterizace. Tedy pokud pozadovany znak v cilove znakove sade
> neexistuje, pokusi se jej nahradit jinym podobnym znakem (nebo
> sekvenci znaku...)
>
> (Take je mozne, ze prave tento rezim pouzivas, a zamena znaku je
> prave vysledkem tohoto...)
>
> Tohle to treba prevodni funkce ve windows neudela...

Nevim, kolik toho umi oba zpusoby, abych to mohl kvalifikovane porovnat, ale
WideCharToMultiByte z "e" umi udelat "e", osobne vyzkouseno.

Prevod textu z UNICODE

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 14.1.2008 13:43:38

> Vyhody rezimu s iconv.dll jsou:
>
> - vyrazne vyssi pocet podporovanych kodovani
> - vyrazne vyssi rychlost

Zapomnel jsem, ze je jeste v rezimu iconv.dll provadena
transliterizace. Tedy pokud pozadovany znak v cilove znakove sade
neexistuje, pokusi se jej nahradit jinym podobnym znakem (nebo
sekvenci znaku...)

(Take je mozne, ze prave tento rezim pouzivas, a zamena znaku je
prave vysledkem tohoto...)

Tohle to treba prevodni funkce ve windows neudela...


--
Lukas Gebauer.

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

Prevod textu z UNICODE

[*] delphin(zv)post(tec)cz - 14.1.2008 13:23:36

> potrebuji poradit s prevodem znaku z UNICODE do ANSI retezcu v DELPHI6.

Neni treba hledat nic specialniho, tohle umi Windows samo od sebe nejak
takhle, priklad je zjednoduseny a musi se dodelat.

function ConvertUnicodeToAnsi(const
Value:WideString;CodePage:integer=0):string;
var Len:integer;
RetCode:Longword;
begin
Len:=Length(Value);
if Len=0 then Result:='' else
begin
if CodePage=0 then CodePage:=CP_ACP;
SetLength(Result,Len);
RetCode:=WideCharToMultiByte(CodePage,0,PWideChar(Value),Len,PChar(Result),Len,nil,nil);
Win32Check(RetCode<>0);
SetLength(Result,RetCode);
end;
end;

Prevod textu z UNICODE

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 14.1.2008 12:55:34

> Prevod jsem vyresil pomoci unity SYNACHAR ze SYNAPSE (diky za to ),
> ale dochazi k zamene znaku.
>
> Napriklad ( u nejake Litevstiny ) znak, ktery se ma prevest
> na #148 (tak se ma v prislusne kodove strance zobrazit )
> se prevede jako znak
> #149 ( a tedy se zobrazi znak jiny ).

Pochopitelne nemohu vyloucit chybu v prevodnich tabulkach, stat se
muze cokoliv.

Kazdopadne doporucuji pouzivat iconv.dll. (je ke stazeni i na
strankach Synapse...) Pokud SynaChar uvidi iconv.dll knihovnu, pokusi
se ji automaticky pouzivat. Pokud ne, pak pouziva interni prevodni
tabulky.

Vyhody rezimu s iconv.dll jsou:

- vyrazne vyssi pocet podporovanych kodovani
- vyrazne vyssi rychlost

Zkus to, a pokud problemy se zamenou znaku zmizi, pak je problem v
internich kodovacih tabulkach v Synacharu a pokusim se to napravit.
Pokud problem nezmizi, pak je zadrhel nekde uplne jinde.


--
Lukas Gebauer.

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

ADMIN: OT: dotaz na MX zaznam

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 14.1.2008 11:29:57

Puvodni zprava ze dne 14.1.2008 od David Kopecek:

> omlouvam se za silny OT...

> chci se zeptat pokud domena je nakonfigurovana takto:

Tohle tu nema co delat. Zadne odpovedi!

Petr Zahradnik, pocitacovy expert

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


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

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


OT: dotaz na MX zaznam

[*] David Kopecek <david.kopecek(zv)hacktrack(tec)com> - 14.1.2008 11:09:51

Zdravim

omlouvam se za silny OT...

chci se zeptat pokud domena je nakonfigurovana takto:

> ls -d nzservis(tec)cz
[ns.forpsi.net]
nzservis(tec)cz. SOA ns.forpsi.net admin.forpsi.com. (2007120601 3600 1800 2592000 3600)
nzservis(tec)cz. NS ns.forpsi.net
nzservis(tec)cz. NS ns.forpsi.us
nzservis(tec)cz. NS ns.forpsi(tec)cz
nzservis(tec)cz. NS ns.forpsi.cn
nzservis(tec)cz. A 81.2.227.25
mail2 A 212.27.219.9
esojka A 212.27.219.36
obchod A 81.2.227.25
* CNAME nzservis(tec)cz
nzservis(tec)cz. SOA ns.forpsi.net admin.forpsi.com. (2007120601 3600 1800 2592000 3600)

Znamena to ze domena nema MX zaznamy a nelze ji tedy dorucovat maily
? Diky David

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 14.1.2008 09:17:43

Zdravim,

potrebuji poradit s prevodem znaku z UNICODE do ANSI retezcu v DELPHI6.

Prevod jsem vyresil pomoci unity SYNACHAR ze SYNAPSE (diky za to ),
ale dochazi k zamene znaku.

Napriklad ( u nejake Litevstiny ) znak, ktery se ma prevest
na #148 (tak se ma v prislusne kodove strance zobrazit )
se prevede jako znak
#149 ( a tedy se zobrazi znak jiny ).


Diky za pomoc

Pavel

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 14.1.2008 07:59:37

> SELECT
> A.obdobi,A.datum,V.id_skupvyr,V.id_pracoviste,B.id_vyrobek,
> SUM(B.mnobj) mnobj, SUM(B.mndod) mndod
> from dlist a
> join dlistb b on b.id_dlist=a.id_dlist
> join vyrobek v on b.id_vyrobek=v.id_vyrobek
> join linka l on a.id_linka=l.id_linka
> join omisto o on a.id_omisto=o.id_omisto
> join partner p on o.id_partner=p.id_partner
> WHERE

Ja mam k tomuhle dotaz. Nemohlo by vykonove pomoci (a obecne, nejde jen o
tuto konkretni situaci) pouzit namisto joinu left joiny? Takhle se i
tabulka dlist musi probirat, aby z vysledku zmizely zaznamy, ke kterym se
nepodari dotahnout neco z joinovanych tabulek, kdezto s left joinem by
server mohl mit min prace (z pomocnych tabulek dohleda spojovane udaje,
kdyz se nepovede, nevadi, doplni se null).

Ted uz jsem s FB nejaky patek nedelal, ale zajimalo by me to, kdyz uz tu
tohle tema je..

David Lebeda�

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 15.1.2008 11:07:09

> A psat do planu natvrdo
> INDEX (RDB$PRIMARY5), INDEX (RDB$PRIMARY14), INDEX (RDB$PRIMARY31)
> to se mi moc nezda.
>
> Mohu si byt jist, ze u vsech uzivatelu budou na prislusnych tabulkach prave tyto primarni indexy, ktere si FB "vymysli" sam pri vytvareni constraint PRIMARY KEY?
> A navic:
> Ulozena procedura je primarne zapsana v CASE Studiu (textove objekty). V tomto okamziku jeste vubec nemam poneti, jake primarni indexy budou vlastne vytvoreny.
>
> Potreboval bych tyto primarni indexy pojmenovat explicitne.
> Obavam se, ze tohle se mi ve FB nepodari.
>
> Anebo se mylim?
>
Mylis se, FB od verze 1.5 pojmenovava indexy podle jmena constraintu, tedy

zapises-li

ALTER TABLE tabulka ADD CONSTRAINT pk_tabulka PRIMARY KEY (id);

bude se ten index v RDB$INDICES jmenovat PK_TABULKA

Tom

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 15.1.2008 10:59:08

PLAN jsem implementoval do ostre databaze, vysledek velmi uspokojivy.
1:30 min -> 0:08 min

Jenze:
Jak jsem psal, ten select je uvnitr ulozene procedury: "for select ... do ...".
Nelze ho tedy sestavit nejak "dynamicky", musi byt "natvrdo".

A psat do planu natvrdo
INDEX (RDB$PRIMARY5), INDEX (RDB$PRIMARY14), INDEX (RDB$PRIMARY31)
to se mi moc nezda.

Mohu si byt jist, ze u vsech uzivatelu budou na prislusnych tabulkach prave tyto primarni indexy, ktere si FB "vymysli" sam pri vytvareni constraint PRIMARY KEY?
A navic:
Ulozena procedura je primarne zapsana v CASE Studiu (textove objekty). V tomto okamziku jeste vubec nemam poneti, jake primarni indexy budou vlastne vytvoreny.

Potreboval bych tyto primarni indexy pojmenovat explicitne.
Obavam se, ze tohle se mi ve FB nepodari.

Anebo se mylim?

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

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 15.1.2008 11:11:09

Ahoj,

> Jak jsem psal, ten select je uvnitr ulozene procedury: "for select
> ... do ...".
> Nelze ho tedy sestavit nejak "dynamicky", musi byt "natvrdo".

V SP je mozne sestavovat selekt dynamicky > EXECUTE STATEMENT

> Potreboval bych tyto primarni indexy pojmenovat explicitne.
> Obavam se, ze tohle se mi ve FB nepodari.

Podari.
ALTER TABLE XXXXXXXXX ADD CONSTRAINT PK_XXXXXXXXXX PRIMARY KEY
(ID_XXXXXXXXX);

Martin

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 15.1.2008 11:21:10

> > Obavam se, ze tohle se mi ve FB nepodari.
>
> Podari.
> ALTER TABLE XXXXXXXXX ADD CONSTRAINT PK_XXXXXXXXXX PRIMARY KEY
> (ID_XXXXXXXXX);
> Martin

FB 1.5:
Presne takhle to delam.
Constraint sice pojmenovany je ale vytvoreny index se jmenuje treba RDB$PRIMARY63.

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

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 15.1.2008 12:33:15

Pouzitim iconv.dll se problem nevyresil.
( Predpokladam ze jsem toto dll pri testovani skutecne pouzil.
Jinak se pouziti snazim vyhnout, protoze prevodni ma probihat pomoci
dll a volani dalsi dll knihovny prinaselo vzdy problemy. )

Zamena prevodni tanulky by to skutecne resila,
ale pokud je problem jinde, tak toto neni zadouci.

Zkusim to uvest podrobneji:
Z Excelu vytahnu text a pak postupuju takto:

Charset := GetCPFromID(CharsetName);
StU := WideToString(Matice[R,S]);
StA := CharsetConversion(StU,UCS_2,Charset);

kde Matice je array of variant
CharsetName je 'ISO-8859-4'

a spatne se prevede znak "u s ocaskem" ( najaka nalezena cisla k
tomuto znaku: 173, $F8 ),
ktery se prevede na znak "preskrtnute l" ( nebo jinak misto "r s hackem"
mi da "u s krouzkem").


Urcite je problem mezi monitorem a klavesnici (ja s tim nechci mit nic
spolecneho ),
ale opravdu nevim jaky, jak to obejit.

Pavel



Lukas Gebauer napsal(a):
>> Prevod jsem vyresil pomoci unity SYNACHAR ze SYNAPSE (diky za to ),
>> ale dochazi k zamene znaku.
>>
> Kazdopadne doporucuji pouzivat iconv.dll. (je ke stazeni i na
> strankach Synapse...) Pokud SynaChar uvidi iconv.dll knihovnu, pokusi
>

> Zkus to, a pokud problemy se zamenou znaku zmizi, pak je problem v
> internich kodovacih tabulkach v Synacharu a pokusim se to napravit.
> Pokud problem nezmizi, pak je zadrhel nekde uplne jinde.
>
>

Upozorneni na drazbu

[*] rkubat(zv)email(tec)cz - 16.1.2008 12:36:54

Vazeni pratele,

preji vsem dobry den a jen chci upozornit, ze od 16.1. se na webovem obchode Borland s.r.o. drazi produkt RAD Studio 2007 Professional, licence pro noveho uzivatele, bez predplatneho. Vyvolavaci cena je 18 000,- Kc. Bezna cena produktu je pritom 27 500,- Kc. Vice viz http://shop.codegear(tec)cz ...

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

Pomaly ExecSQL v IBExpress na MSSQL

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 17.1.2008 10:17:01

Ahoj vsem,
u zakaznika se mi po 1/4 roce ze dne na den zpomalilo provadeni
TCustomSQLDataSet.ExecSQL z par ms na presne 2 sekundy. Jedna se o Execute
procedure provadejici insert jednoho zaznamu, bez triggeru.
Bohuzel je to import z FB, takze to bezi ve smycce a pri ~500 zaznamech uz
je zpomaleni docela neprijemne :-(.
Z podrobneho logu je videt, ze se to zasekne primo v
FSQLCommand.executeImmediate (ten trva ty 2 s) - hloubeji uz se nedostanu -
to uz je zrejme interface do dbexpmss.dll.
Zajimave je, ze v Query analyzeru ten samy dotaz probehne okamzite, takze je
to nekde v tom DBX driveru.
Kdyz si tu DB prenesu na svuj stroj, tak to projde taky i z me aplikace
okamzite.
Aplikace se nemenila, v DB taky o zadnych zmenach nevim.
Samozrejme se pokusim vydolovat z adminu, jestli tam neco nemenili na
serveru, ale tvari se jako ze se tam nic nemenilo.

Nema s tim nekdo nejake zkusenosti (ze by prava a nejaky timeout)?

Diky moc, PF

D7, CLXApp, DBXpress, MSSQL2003


OT: Nabidka prace

[*] cmailbox(zv)centrum(tec)cz - 17.1.2008 10:39:03

Zdravim a omlouvam se za OT.

Pro firmu, ve ktere pracuji, hledam schopneho programatora v Delphi na
dlouhodobou spolupraci.
- prace na DB, GIS projektu.
- pracoviste Praha, ale neni problem pracovat externe.

Vice informaci a pripadne nabidky prosim na soukromem mailu
cmailbox(zv)centrum(tec)cz

Dekuji
TK

Pomaly ExecSQL v IBExpress na MSSQL

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 17.1.2008 10:57:04

Ahoj,
Nevim, co je MSSQL2003 :-)), nejlepsi je ale v takovychto pripadech
pouzit SQL Profiler a podivat se, co se pri volani z programu deje,
jestli je ten SQL dotaz v poradku, jak probehne SP a jake jsou hodnoty
pro read/write.
Pak to porovnej s volanim toho dotazu primo z QA.
Tim muzes potvrdit nebo vyvratit problem na SQL serveru.

HTH,
pl

Pavel Fiser wrote:
> Ahoj vsem,
> u zakaznika se mi po 1/4 roce ze dne na den zpomalilo provadeni
> TCustomSQLDataSet.ExecSQL z par ms na presne 2 sekundy.
>
> Zajimave je, ze v Query analyzeru ten samy dotaz probehne okamzite, takze je
> to nekde v tom DBX driveru.
> D7, CLXApp, DBXpress, MSSQL2003
>

Pomaly ExecSQL v IBExpress na MSSQL

[*] Pavel Fiser <fiserpavel(zv)gmail(tec)com> - 17.1.2008 11:13:06

Omlouvam se, v predmetu melo byt samozrejme DBExpress.
Dalsi poznatek je, ze pokud zanesu do prikazu chybu (zkousel jsem neplatny
datumovy format) - zpet se vrati chyba ze serveru take az po 2 sekundach
(???).
PF

17.1.08, Pavel Fiser <fiserpavel(zv)gmail.com>:
>
> Ahoj vsem,
> u zakaznika se mi po 1/4 roce ze dne na den zpomalilo provadeni
> TCustomSQLDataSet.ExecSQL z par ms na presne 2 sekundy. Jedna se o Execute
> procedure provadejici insert jednoho zaznamu, bez triggeru.
> Bohuzel je to import z FB, takze to bezi ve smycce a pri ~500 zaznamech uz
> je zpomaleni docela neprijemne :-(.
> Z podrobneho logu je videt, ze se to zasekne primo v
> FSQLCommand.executeImmediate (ten trva ty 2 s) - hloubeji uz se nedostanu
> -
> to uz je zrejme interface do dbexpmss.dll.
> Zajimave je, ze v Query analyzeru ten samy dotaz probehne okamzite, takze
> je
> to nekde v tom DBX driveru.
> Kdyz si tu DB prenesu na svuj stroj, tak to projde taky i z me aplikace
> okamzite.
> Aplikace se nemenila, v DB taky o zadnych zmenach nevim.
> Samozrejme se pokusim vydolovat z adminu, jestli tam neco nemenili na
> serveru, ale tvari se jako ze se tam nic nemenilo.
>
> Nema s tim nekdo nejake zkusenosti (ze by prava a nejaky timeout)?
>
> Diky moc, PF
>
> D7, CLXApp, DBXpress, MSSQL2003
>
>

sql INSERT INTO

[*] Ales Kresta <kresta.ales(zv)seznam(tec)cz> - 17.1.2008 18:31:03

Zdravim,

Chci se zeptat, na tomto prikladu, jak by slo jednoduse udelat overeni
zda uz tam neni zaznam s hodnotou Milan, tzn chtel bych to pridat jen pokud
tam ten zaznam jeste neni... diky moc za info

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of David Klodner
Sent: Saturday, October 02, 2004 10:30 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: sql INSERT INTO

Chybi ti tam apostrofy kolem jmena, spravne to ma byt takto:

Query.SQL.Add('insert into kontakty (meno) values ('''+edit.text+''')');

Kdyz bude edit.text = Milan, tak vysledkem bude
Query.SQL.Add('insert into kontakty (meno) values ('Milan')');
Misto uvozovek pouzivej apostrofy.

Kdyby jsi pomoci SQL vkladal cislo (integer, float), tak tam ty
apostrofy kolem byt nemusi napr.
Query.SQL.Add('insert into kontakty (meno, cislo) values
('''+edit.text+''', CisloEdit.Text)');

David Klodner

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Tomas Juricek
Sent: Saturday, October 02, 2004 10:14 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: sql INSERT INTO


> Query.SQL.Add('insert into kontakty (meno) values (edit.text)') -
> chyba.

S SQL jsem nikdy nepracoval, ale tohle ti fungovat nemuze. Zkus to
takto: Query.SQL.Add('insert into kontakty (meno) values
('+edit.text+')')

Tomas Juricek

ADMIN: OT: Nabidka prace

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 17.1.2008 17:57:00

Puvodni zprava ze dne 17.1.2008 od Stanislav Smejkal:

> dostala se mi do ruky tato nabidka, mozna bude nekoho z vas zajimat.
> Pokud ne, omlouvam se za OT.

Kdyby sem kazdy posilal, co kde vidi za nabidku, tak by tu nebylo nic
jineho. Nabidky prace jsou povoleny pro cleny konference a i tento typ
prispevku ma sva pravidla, ktera jsou jasne dana. Tento prispevek je
nesplnuje, protoze jsi mel na konec napsat, aby vsichni zajemci o tuto
praci psali vyhradne na tvuj mail smejkal(zv)smejkal.com a ne do
konference. Priste to sem prosim neposilej.

Dekuji,
Petr Zahradnik, pocitacovy expert

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


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

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


OT: Nabidka prace

[*] Stanislav Smejkal <smejkal(zv)smejkal(tec)com> - 17.1.2008 17:16:57

Zdravim vsechny,

dostala se mi do ruky tato nabidka, mozna bude nekoho z vas zajimat.
Pokud ne, omlouvam se za OT.

Standa Smejkal

-------------------------------------------------------------------------
Vazeny pane, vazena pani,

dovoluji si Vas oslovit s nabidkou spoluprace na novem produktu naseho
nakladatelstvi -- softwaru Navrhy interieru. Tento software by mel
zakaznikum umoznit vytvoreni navrhu obytnych prostoru jako jsou kuchyne,
koupelny, obyvaci pokoje, loznice, pracovny a dalsi. Cilem je, aby bylo
ovladani programu velmi jednoduche a mohli jej pouzivat i uzivatele, kteri
nemaji zadne specialni znalosti z oblasti pocitacove grafiky nebo stavebnictvi.

Prvni verze programu by se mela skladat ze 4 modulu: hruba stavba, kuchyn,
koupelna a ostatni prostory. Zakaznik by mel mit moznost zakoupit si bud
jenom nektere moduly nebo cely komplet. Zakladem programu bude rozsahla
databaze existujicich komponent na trhu, kterou budou dodavat jednotlivi
vyrobci. Jedna se napriklad o okna, dvere, tapety, kuchynske skrinky,
spotrebice, obklady, dlazby, koupelnove zarizovaci predmety, nabytek atd.

Zakladni verze programu by mela mit nasledujici vlastnosti:
import -- export do CADu
jednoducha moznost vkladani vlastnich prvku
moznost tvorby rozpoctu podle navrhu
ukladani a tisk jednotlivych variant
jednoducha 3D vizualizace
moznost zakresleni instalaci v pudorysu
moznost pouzivani vrstev

Program bude aktualizovan jednou za 6 mesicu. Zakladem aktualizace bude
doplneni databaze komponent podle novych souboru zaslanych od vyrobcu, dale
pak by byly doplneny nektere nove funkce, napriklad moznost navrhu
osvetleni, rozpracovani nekterych jednoduchych funkci apod.

V pripade Vaseho zajmu o dalsi informace me, prosim, nevahejte kontaktovat.
Veskere Vase dotazy rada zodpovim, popripade si muzeme domluvit osobni schuzku.

Tesim se na budouci spolupraci

Ing. Petra Bendova
product manager

Verlag Dashofer
Na Prikope 18
P.O. Box 756
111 21 Praha 1
tel.: 224 197 380

http://www.stavebniklub(tec)cz
http://www.dashofer(tec)cz

Delphi versus Google Desktop Gadgets

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 17.1.2008 17:08:56

>(zmeni sufix) a provede zrejme novou registraci na toto nove jmeno. Delphi
tak tedy ztrati vazbu prave na tuto knihovnu a DEBUG uz je pak k nicemu.

Zdarec,

je problem jeste aktualni ? Myslim ze by mohlo pomoct najit po attachu tvou
dll v Modules okne a dat Reload Symbol Table. Pokud nepomuze tak bych zkusil
pred attachem vzit .rsm soubor (musi se zapnout generovani pro remote debug)
a prilozit ho (pod spravnym jmenem) do adresare ktery Gadget pouziva.


Cus
Radek Voltr
Xacti

posledni vlozene ID MySQL vs Firebird

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 18.1.2008 06:37:54

Pokud pouzivas generator pak posledni pouzite cislo zjistis takto:
SELECT GEN_ID(nazev_generatoru, 0) from RDB$DATABASE; v pripade ze
generator nepouzivas, pak asi pres MAX - SELECT MAX(nazev sloupce) from
nazev_tabulky;

Petr Mathon napsal(a):
> Existuje pro Firebird neco jako v MySQL LAST_INSERT_ID() ?
> Pokud ne, jde ve Firebirdu nejak zjistit posledni vlozene ID (klic)

OT: posledni vlozene ID MySQL vs Firebird

[*] Petr Mathon <dveste zar(zv)quick(tec)cz> - 18.1.2008 01:37:33

Zdravim
Existuje pro Firebird neco jako v MySQL LAST_INSERT_ID() ?
Pokud ne, jde ve Firebirdu nejak zjistit posledni vlozene ID (klic) ?
Dik JB


sql INSERT INTO

[*] TomA?L? AndraL?ko <tomas.andrasko(zv)asei(tec)cz> - 18.1.2008 07:39:59

Ahoj,

ja pouzivam nasledujici konstrukce pomoci Format, pak se mi ty selecty
zdaji citelnejsi nez "spojovani" pomoci +-

SQL.Add(Format('select ... where JMENO = ''%s'' and CISLO = %d',
[string_hodnota, int_hodnota]));

Jedna z moznosti :-)

Tom+AOEBYQ- ANDRA+AWA-KO

-----Original Message-----
>From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
>Behalf Of David Klodner
>Subject: Re: sql INSERT INTO
>
>Chybi ti tam apostrofy kolem jmena, spravne to ma byt takto:
>
>Query.SQL.Add('insert into kontakty (meno) values >('''+-edit.text+-''')');

vykreslovani visualnich temat

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

Ahoj,

nejsem si uplne jisty zda jsem pochopil tvuj dotaz

>hraju si s visualnimi tematy ve windowsech nasel jsem si jednotlive
konstanty pro jejich vykreslovani (asi i vcetne tech co jsou pro vistu) ale
potreboval bych >vedet kdy co vykreslovat - u tlacitka je to jednoduche ale
napriklad jsou tam konstanty FLYOUT (FLYOUT_BODY,FLYOUTDIVIDER,...) a u tech
vubec
>netusim k cemu jsou - nevite nekdo o nejakych strankach kde by se to dalo
vycist? (jde mi ale o vsechny ty konstanty nejenom flyout)

zkus se podivat na
http://www.soft-gems.net/index.php?option=com_content&task=view&id=17&Itemid
=33 a stahnout si Theme Explorer.

Lze se tam podivat na dostupne veci pro vykresleni ale zda obsahuje zrovna
FLYOUT to netusim


Cus
Radek Voltr
Xacti


sql INSERT INTO

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

> SQL.Add(Format('select ... where JMENO = ''%s'' and CISLO = %d',
> [string_hodnota, int_hodnota]));

Ovsem jeste lepsi by bylo

Query.SQL.Text := 'select ... where JMENO = :jmeno and CISLO = :cislo' ;
Query.Prepare;

Query.ParamByName('jmeno').AsString := 'nejake jmeno';
Query.ParamByName('cislo').AsInteger := 123456;

Query.ParamByName('jmeno').AsString := 'nejake jine jmeno';
Query.ParamByName('cislo').AsInteger := 654321;

atd.
Vyhodou tohoto zapisu je to, ze Prepare se provede pouze jednou, pak uz muzeme sazet tisice insertu jeden za druhym.

Pisu to jenom schematicky, zalezi ktere komponenty pouzivas, zrovna BDE snad ne.
Navic misto T???Query bych radsi pouzil IBSQL, ADOCommand a pod. Mela by tam byt mensi rezie.

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

vykreslovani visualnich temat

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 18.1.2008 15:00:30

Na MSDN nic neni ???

Ladislav Fitz napsal(a):
> hraju si s visualnimi tematy ve windowsech nasel jsem si jednotlive
> konstanty pro jejich vykreslovani (asi i vcetne tech co jsou pro vistu) ale
> potreboval bych vedet kdy co vykreslovat - u tlacitka je to jednoduche ale
> napriklad jsou tam konstanty FLYOUT (FLYOUT_BODY,FLYOUTDIVIDER,...) a u tech
> vubec netusim k cemu jsou - nevite nekdo o nejakych strankach kde by se to
> dalo vycist? (jde mi ale o vsechny ty konstanty nejenom flyout)
>

vykreslovani visualnich temat

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 18.1.2008 14:54:30

zdravim

hraju si s visualnimi tematy ve windowsech nasel jsem si jednotlive
konstanty pro jejich vykreslovani (asi i vcetne tech co jsou pro vistu) ale
potreboval bych vedet kdy co vykreslovat - u tlacitka je to jednoduche ale
napriklad jsou tam konstanty FLYOUT (FLYOUT_BODY,FLYOUTDIVIDER,...) a u tech
vubec netusim k cemu jsou - nevite nekdo o nejakych strankach kde by se to
dalo vycist? (jde mi ale o vsechny ty konstanty nejenom flyout)

diky za kazdou nformaci

posledni vlozene ID MySQL vs Firebird

[*] delphin(zv)post(tec)cz - 18.1.2008 14:46:29

> Blbe je udelat insert do tabulky, kde se ID vygeneruje v triggeru pres
> generator automaticky. Pote

Vyreseno takhle: Kdyz mu tam ID podstrcim, tak tam zustane, kdyz ne, tak si
ID vymysli.

Trigger:
IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GENERATOR_NAME, 1);

posledni vlozene ID MySQL vs Firebird

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 18.1.2008 14:28:28

Jasne, pokud te zajima obecne posledni pouzite ID, tak to zjistis z toho generatoru. Akorat (radsi
to jeste zopakuji) ta hodnota ID nemusi byt stejna jako ID tebou prave vlozeneho zaznamu...
Pro zjisteni noveho ID pri vkladani zaznamu je potom lepsi volat SELECT GEN_ID(nazev_generatoru, 1)
a tuto hodnotu pak rovnou nacpat jako ID do tabulky.
Blbe je udelat insert do tabulky, kde se ID vygeneruje v triggeru pres generator automaticky. Pote
zjistovat hodnotu vlozeneho ID pomoci SELECT GEN_ID(nazev_generatoru, 0) ...
OnDraG

Milan Tomes napsal(a):
> Jiste mate pravdu, nicmene pro zjisteni posledniho pouziteho ID v
> generatoru je toto jedina spravna konstrukce. Je rozdil ve zjistovani
> maximalniho pouziteho ID v tabulce a posledniho pouziteho ID v
> generatoru. Ja toto naprosto bez problemu pouzivam - samozrejme jen k
> ucelu zjisteni noveho ID pro novy zaznam v tabulce (nepouzivam triggery
> pro zajisteni generovani ID), takze v tomto pripade to samozrejme neni
> vubec nebezpecne.
>
> S pozdravem
>
> Milan Tomes
>
>
> delphin(zv)post(tec)cz napsal(a):
>>> Pokud pouzivas generator pak posledni pouzite cislo zjistis takto:
>>> SELECT GEN_ID(nazev_generatoru, 0) from RDB$DATABASE; v pripade ze
>>>
>> Velmi nebezpecna konstrukce a nic na tom nemeni fakt, ze je hojne pouzivana.
>> Sice to obvykle funguje, ale neni tam zadny zaruka vztahu mezi vysledkem
>> GEN_ID a radkem v tabulce. Ve slozitejsich projektech, kde se pouzivaji
>> triggery, to zpusobuje tezko dohledatelne a hlavne zbytecne chyby.
>> Spravne reseni, takrka identicky pracne, je si ID vygenerovat jeste pred
>> INSERTem a do INSERT dat tuto konkretni hodnotu nebo v novych verzich pouzit
>> jiz zminovane RETURNING INTO. Zde mame jistotu, ze "nas" radek ma "nase" ID.

posledni vlozene ID MySQL vs Firebird

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 18.1.2008 12:20:19

On 1/18/08, delphin(zv)post(tec)cz <delphin(zv)post(tec)cz> wrote:
> Spravne reseni, takrka identicky pracne, je si ID vygenerovat jeste pred
> INSERTem a do INSERT dat tuto konkretni hodnotu nebo v novych verzich pouzit
> jiz zminovane RETURNING INTO. Zde mame jistotu, ze "nas" radek ma "nase" ID.

Nebo pouzit execute block/SP a tim si usetrit roundtrip(y) do DB.

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

posledni vlozene ID MySQL vs Firebird

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 18.1.2008 12:18:19

Jiste mate pravdu, nicmene pro zjisteni posledniho pouziteho ID v
generatoru je toto jedina spravna konstrukce. Je rozdil ve zjistovani
maximalniho pouziteho ID v tabulce a posledniho pouziteho ID v
generatoru. Ja toto naprosto bez problemu pouzivam - samozrejme jen k
ucelu zjisteni noveho ID pro novy zaznam v tabulce (nepouzivam triggery
pro zajisteni generovani ID), takze v tomto pripade to samozrejme neni
vubec nebezpecne.

S pozdravem

Milan Tomes


delphin(zv)post(tec)cz napsal(a):
>> Pokud pouzivas generator pak posledni pouzite cislo zjistis takto:
>> SELECT GEN_ID(nazev_generatoru, 0) from RDB$DATABASE; v pripade ze
>>
>
> Velmi nebezpecna konstrukce a nic na tom nemeni fakt, ze je hojne pouzivana.
> Sice to obvykle funguje, ale neni tam zadny zaruka vztahu mezi vysledkem
> GEN_ID a radkem v tabulce. Ve slozitejsich projektech, kde se pouzivaji
> triggery, to zpusobuje tezko dohledatelne a hlavne zbytecne chyby.
> Spravne reseni, takrka identicky pracne, je si ID vygenerovat jeste pred
> INSERTem a do INSERT dat tuto konkretni hodnotu nebo v novych verzich pouzit
> jiz zminovane RETURNING INTO. Zde mame jistotu, ze "nas" radek ma "nase" ID.
>
>
>
>

posledni vlozene ID MySQL vs Firebird

[*] delphin(zv)post(tec)cz - 18.1.2008 11:48:16

> Pokud pouzivas generator pak posledni pouzite cislo zjistis takto:
> SELECT GEN_ID(nazev_generatoru, 0) from RDB$DATABASE; v pripade ze

Velmi nebezpecna konstrukce a nic na tom nemeni fakt, ze je hojne pouzivana.
Sice to obvykle funguje, ale neni tam zadny zaruka vztahu mezi vysledkem
GEN_ID a radkem v tabulce. Ve slozitejsich projektech, kde se pouzivaji
triggery, to zpusobuje tezko dohledatelne a hlavne zbytecne chyby.
Spravne reseni, takrka identicky pracne, je si ID vygenerovat jeste pred
INSERTem a do INSERT dat tuto konkretni hodnotu nebo v novych verzich pouzit
jiz zminovane RETURNING INTO. Zde mame jistotu, ze "nas" radek ma "nase" ID.

posledni vlozene ID MySQL vs Firebird

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 18.1.2008 09:10:05

Pozor u generatoru takhle muzes precist jinou hodnotu, kdyz paralelne nekdo zmeni hodnotu
generatoru, zmena generatoru neni pod transakcni kontrolou.
Od FB2 je mozne pouzit rozsireni prikazu INSERT
INSERT INTO ... VALUES (...) [RETURNING <column_list> [INTO <variable_list>]]
kde si muzes vratit primo hodnotu ID.
OnDraG


Milan Tomes napsal(a):
> Pokud pouzivas generator pak posledni pouzite cislo zjistis takto:
> SELECT GEN_ID(nazev_generatoru, 0) from RDB$DATABASE; v pripade ze
> generator nepouzivas, pak asi pres MAX - SELECT MAX(nazev sloupce) from
> nazev_tabulky;
>
> Petr Mathon napsal(a):
>> Existuje pro Firebird neco jako v MySQL LAST_INSERT_ID() ?
>> Pokud ne, jde ve Firebirdu nejak zjistit posledni vlozene ID (klic)

Pouzivani TCriticalSection

[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 19.1.2008 10:25:51

Ahoj,
Pri komunikaci mezi Thready pouzivam TCriticalSection. Ve tride, ktera je
potomkem TThread, si chci vytvorit property, ve ktere bych rovnou pouzil
zamknuti a odemknuti pomoci TCriticalSection abych ji nemusel pouzivat pri
kazdem volani te property z jineho threadu. Jde mi o to, jestli takovou
konstrukci muzu pouzit.

Prilozim priklad jak si to predstavuji.

TExampleThread = class(TThread)
private
fPressure: extended;
fPressureCS: TCriticalSection;
function GetPressure: extended;
procedure SetPressure(const Value: extended);
...
public
constructor Create;
destructor Destroy; override;
...
property Pressure: extended read GetPressure write SetPressure;
...
end;
...
constructor TExampleThread.Create;
begin
...
fPressureCS:= TCriticalSection.Create;
...
Pressure:= 0;
end;

destructor TExampleThread.Destroy;
begin
...
fPressureCS.Free;
...
end;

function TExampleThread.GetTestVolumePressure: extended;
begin
fPressureCS.Acquire; // zamknuto
result:= fPressure;
fPressureCS.Release; // odemknuto
end;

procedure TExampleThread.SetTestVolumePressure(const Value: extended);
begin
fPressureCS.Acquire; // zamknuto
fPressure:= Value;
fPressureCS.Release; // odemknuto
end;

Takovyhle zpusob prenosu dat mezi thready planuju jen pro prenos
jednotlivych promennych, napr. signalizujicich Threadu, jakym zpusobem ma
pokracovat v praci. (tedy smerem od hlavniho Thradu k TExampleThread.)

dekuji
Tonda

posledni vlozene ID MySQL vs Firebird

[*] Petr Mathon <dveste zar(zv)quick(tec)cz> - 19.1.2008 16:56:18

>Toto vypada dobre, skusim. Ono me to trosku zarazi, ze takovou potrebnou funkci FB nema. U MySQL,
>pokud sem dobre cetl guide, funguje lastID v ramci >IP, coz by nemelo vest k chybnym hodnotam jako u FB,
>ale pokud bude fungovat RETURNING tak to bude OK. Potom by me zajimal ten generator. U MAX
>je problem ze kdyz vlozi vice uzivatelu ve zhruba stejnou chvili, tak zjistim MAX posledniho vlozeneho ID
>od kohokoliv. MAX by bylo pouzitelne jen s vlozenou IP a SELECTem, coz si myslim ze je zbytecna zatez
>serveru a dat tabulky, kdyz by to slo BUILD funkci.

>predpokladam ze INSERT INTO ... VALUES(...) RETURNING 'ID' vrati neco jako select, otestuju
>nebo INSERT INTO ... VALUES(...) RETURNING 'ID' INTO 'mojepromenna'

Takze jsem to otestoval. Returning na FB2 pracuje skvele a bez generatoru aj. slozitych pristupu(ne ze by byly slozity, ale oproti tomuto prikazu), coz plne nahrazuje LAST_ID od MySQL, bohuzel jsem zjistil, ze dremcom server toto ID meni pri pokusu odeslani a odeslani. Sem se chtel zeptat, pri UPDATE se meni ID zaznamu u FB (to je blbost ne), nebo to je chyba dreamcom, ktery nevyuziva UPDATE ale kopiruje zaznamy?

JB

Pouzivani TCriticalSection

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.1.2008 13:05:28

> Na zapouzdreni neni nic spatneho, samozrejme objekty se musi napsat
> smysluplne.

Na zapouzdreni neni samozrejme nic spatneho, ale dle meho soudu implementace TCriticalSection s jeho ctyrmi metodami problem spise zamlzi. Stejne se tam nedela nic jineho nez EnterCriticalSection a LeaveCriticalSection.

> Zalezi od pouziti a to nezname. Lze nalezt programy, kde kazde vlakno ma
> nekolik critical section a je to tak umyslne.

Zalezi na tom, koho pred kym ma CriticalSection chranit.
Pokud jednotliva vlakna navzajem mezi sebou, pak musi byt temito vlakny sdilena.
Tedy bych to asi taky videl spise na tu globalni promennou nebo nejaky jiny sdileny atribut nejakeho nadrazeneho objektu.

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

Prekryti funkce Date

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 21.1.2008 12:27:25

----- Original Message -----
From: Mgr. Martin Radvansky
>>Osobne nepovazuji za stastne pojmenovat vlastni funkci stejne jako tu z VCL.
ZK> Ja take ne :-) Ale na prani sefa se to takto vyvinulo. Ta funkce
ZK> bude "skoro vzdycky" vracet hodnotu SysUtils.Date.

Muzu jen pro zajimavost , jaky je ten argument, aby funkce Date zustala
stejne pojmenovana i kdyz pises ze "skoro vzdycky" vraci SysUtils.Date?
ZK>No, jak ja rozumim sefovym napadum tak jde o to, aby se program v den d1 choval tak jako by bylo systemove datum d2 ale nemenit datum v systemu. Cili zmenit systemove datum d1 na d2 "jen pro tento program" kdyz se nekde nahodi nejaky tajny parametr.

Sorry , ale toto povazuju za velky prohresek proti "coding standards".
ZK>No, kdyby se jednalo jen o prohresek proti "coding standards", byla by to pohoda. Ja mam neprijemne tuseni ze pojede-li program s nejakym "svym datumem" zatimco datum stanice, serveru i SQL serveru bude jine (skutecne), bude to mit i zavaznejsi nez jen esteticke nasledky.

Mozna by bylo reseni vymenit sefa :)
ZK>To nejde. Sef je zaroven majitelem firmy a vzhledem k tomu ze se jedna o pidi- ci spise nano- firmu, je i pracovni rad velice strucny:
1) Sef ma vzdycky pravdu.
2) Nema-li sef pravdu, plati bod c.1.

Z.Kalhous


Pouzivani TCriticalSection

[*] Petr Vones <conference(zv)petrvones(tec)net> - 21.1.2008 20:34:01

From: <delphin(zv)post(tec)cz>
> Mohu se zeptat, jak se presne dela LOCK s datovym typem Extended ? Delphi
> neni podminkou, muze to byt i v .NET.

A jeste doplneni, pro datove typy vetsi >8 bytu a <=16 by bylo mozne pouzit
instrukci LOCK CMPXCHG16B ktera je dostupna u soucasnych procesoru s 64
bitovou architekturou:
http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64

Petr Vones

Prekryti funkce Date

[*] Petr Vones <conference(zv)petrvones(tec)net> - 21.1.2008 11:33:19

Kazdopadne bych to resil upravou toho/tech projektu a ne nejakym rypanim se
v RTL/VCL, protoze pak to ovlivni vse. Slusne vyvojove nastroje dnes maji
refactoring, kterym lze toto provest pomerne jednoduse. V opacnem pripade
lze prece vyhledat volani te funkce alespon jako "text" a nahradit jej.

Petr Vones

----- Original Message -----
From: "Zdenek Kalhous" <kalhous(zv)eu(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, January 21, 2008 10:03 AM
Subject: Prekryti funkce Date


> Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce
> SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto,
> kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju
> ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke,
> tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou
> ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji
> tak se nezavola a nezavola. Jak na to? Dik.

Pouzivani TCriticalSection

[*] Petr Vones <conference(zv)petrvones(tec)net> - 21.1.2008 20:26:00

From: <delphin(zv)post(tec)cz>
> Mohu se zeptat, jak se presne dela LOCK s datovym typem Extended ? Delphi
> neni podminkou, muze to byt i v .NET.

Aha, ja uz si uprime receno nepamatuju, jestli se typ Extended mapoval primo
na nejaky nativni "typ" x86 architektury nebo ne. Kazdopadne v .NET je typ s
nejvetsi presnosti Double (8 bytu) na ten lze pouzit tridu Interlocked.

Napriklad pro datovy typ Int64 je nejaky priklad tady:
http://qc.borland.com/wc/qcmain.aspx?d=6212

Petr Vones

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 21.1.2008 11:33:20

> osobne nepouzivam zapouzdrene synchronizacni objekty (resp. ne ty od
> Borlandu) ale podle mne by ta
> critical section mela byt globalni promenna.

Na zapouzdreni neni nic spatneho, samozrejme objekty se musi napsat
smysluplne.

> Jinak si kazdy thread vytvori svou vlastni instanci kterou si bude zamykat
> a
> tudiz to asi nebude delat uplne
> to co by jsi chtel.

Zalezi od pouziti a to nezname. Lze nalezt programy, kde kazde vlakno ma
nekolik critical section a je to tak umyslne.

Pouzivani TCriticalSection

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 21.1.2008 10:41:14

> private
> fPressure: extended;
> fPressureCS: TCriticalSection;

osobne nepouzivam zapouzdrene synchronizacni objekty (resp. ne ty od
Borlandu) ale podle mne by ta
critical section mela byt globalni promenna.

Jinak si kazdy thread vytvori svou vlastni instanci kterou si bude zamykat a
tudiz to asi nebude delat uplne
to co by jsi chtel.


Cus
Radek Voltr
Xacti

DLL Hell OpenSSL libeay32.dll

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 21.1.2008 20:13:59

Dobry den,
resim to uz cely den a nemuzu najit nejake optimalni reseni.

Problem je nasledujici:
Mam aplikaci, ktera posila elektronicky danove priznani na web mfcr.
V aplikaci aktualne pouzivame Indy a openssl knihovny pro posilani a
capicom pro podepisovani. Knihovny openssl mame u nasi aplikace.

Nedavno jsem narazili na problem.
CSOB dodava nove cipove karty s kvalifikovanym certifikatem a
software proovladani Starcos nebo nejak podobne. Nicmene nejaci
inteligenti provedli hezkou vec do SCP provideru ke karte vlozili
zavislost asi na 5 funkcich z Openssl knihovny libeay32.dll a tuto
si nahrali do adresare win32.

Problem nastava prave v tom, ze pouzili knihovnu libeay32.dll ale v
posledni mozne verzi, ktera nedodrzuje rozhrani starsich verzi.

V programu probehne podepsani xml, pricemz SCP provider si zavede do
pameti libeay32.dll, ovsem ve verzi, kterou nepodporuje a tak se
nepovede provest podepsani (nacte dll knihovnu z adresare aplikace
ve spatne verzi). V pripade ze zase smazu dll z adresare aplikace
tak spadne komunikace ssl na spatnou verzi libeay32.dll v system32.

Zatim jsem zkousel pouzit jinou knihovny na ssl, ta mi zase nechtela
pracovat s serverem kam posilam priznani.

Resenim by snad bylo provadet odesilani v jinem procesu, ale toto
bych delal az jako posledni moznost.

Neresil jste nekdo podobny problem?

--
S pozdravem,
Mgr. Martin Radvansky

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 21.1.2008 19:01:54

> Ohledne konkretniho pripadu s jedinou promennou typu Extended, na to neni
> treba pouzivat kritickou sekci ci jiny sychronizacni objekt, staci
> jednoduchy kod ktery nakonec emituje LOCK prefix nativni instrukce (v .NET
> je to trida Interlocked). Nevim jestli je neco takoveho v Delphi Win32
> RTL,
> mozna to bude v JCL.

Mohu se zeptat, jak se presne dela LOCK s datovym typem Extended ? Delphi
neni podminkou, muze to byt i v .NET.

Pouzivani TCriticalSection

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 21.1.2008 11:45:21

Ano.

Vaclav Sazima

Ing. Antonin Spurny napsal(a):
> Ahoj,
> Pri komunikaci mezi Thready pouzivam TCriticalSection. Ve tride, ktera je
> potomkem TThread, si chci vytvorit property, ve ktere bych rovnou pouzil
> zamknuti a odemknuti pomoci TCriticalSection abych ji nemusel pouzivat pri
> kazdem volani te property z jineho threadu. Jde mi o to, jestli takovou
> konstrukci muzu pouzit.
>
> function TExampleThread.GetTestVolumePressure: extended;
> begin
> fPressureCS.Acquire; // zamknuto
> result:= fPressure;
> fPressureCS.Release; // odemknuto
> end;
>
> procedure TExampleThread.SetTestVolumePressure(const Value: extended);
> begin
> fPressureCS.Acquire; // zamknuto
> fPressure:= Value;
> fPressureCS.Release; // odemknuto
> end;
>
>

Pouzivani TCriticalSection

[*] Petr Vones <conference(zv)petrvones(tec)net> - 21.1.2008 18:07:50

Z toho duvodu bylo zavedeno i "cekani" (spin count), protoze se ukazalo, ze
nekdy je vyhodnejsi nejaky kratky cas cekat v user modu nez se prepne do
kernel modu. Spravna volba te konstanty je samozrejme trochu obtizna.
Vzhledem k tomu, ze dual core procesor ma dnes prakticky i kazdy novejsi
notebook, tak je to docela podstatne. Vice viz:
http://msdn2.microsoft.com/en-us/library/ms683476(VS.85).aspx

Ohledne konkretniho pripadu s jedinou promennou typu Extended, na to neni
treba pouzivat kritickou sekci ci jiny sychronizacni objekt, staci
jednoduchy kod ktery nakonec emituje LOCK prefix nativni instrukce (v .NET
je to trida Interlocked). Nevim jestli je neco takoveho v Delphi Win32 RTL,
mozna to bude v JCL.

Stejne zajimava problematika je pristup do pameti v pripade
viceprocesorovych systemu, coz je dnes aktualni (viz vyse). Ruzne
architektury pouzivaji ruzne pametove modely, ktere jsou vice ci mene
"blbovzdorne". Zajimavy clanek na toto tema
http://blogs.msdn.com/cbrumme/archive/2003/05/17/51445.aspx

Petr Vones

----- Original Message -----
From: "Ondrej Kelle" <o.kelle(zv)digitalpublishing.de>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, January 21, 2008 5:47 PM
Subject: Re: Pouzivani TCriticalSection


>> kdyby to bylo na me (pokud je to opravdu ciste pro synchronizaci
>> threadu mezi sebou) tak pro todle pouziju spis pojmenovany mutex
>
> Mutex ma ale jednu nevyhodu. EnterCriticalSection v pripade, ak dana
> critical section nie je prave vlastnena inym threadom, nevyzaduje
> prepnutie z user do kernel modu a je preto rychlejsia.
> Mutex naopak vyzaduje prepnutie do kernel modu pri kazdom volani
> WaitFor... funkcie.
>
> Z hladiska vykonnosti je teda vyhodnejsie pouzit critical section, ak sa
> jedna o synchronizaciu v ramci jedneho procesu.
>
> HTH
> TOndrej

Prekryti funkce Date

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 21.1.2008 10:19:12

> Potrebuju, aby se v celem (dost velkem) programu misto standardni
> funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se
> mi najit misto, kde a jak ji definovat aby se automaticky volala
> vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje
> ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji
> definuju napriklad v unite ve ktere jsou ruzne jine podprogramky
> a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a
> nezavola. Jak na to? Dik.

Osobne bych si tuto funkci nazval nejak jinak nez Date, aby se to nepletlo, aby bylo jasne co se vola uz z kodu, aby to nezaviselo na tom, co mam nahore v "uses".

Jinak je mozne ji volat se jmenem te obecne unit:
MyGlobalUtils.Date

Pak to taky jeste nejak zavisi na poradi unit uvedenych uses: SysUtil, MyGlobalUtils.
Jenze to by pak byl uz uplnej zmatek.

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

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 21.1.2008 11:27:19

> function TExampleThread.GetTestVolumePressure: extended;
> begin
> fPressureCS.Acquire; // zamknuto
> result:= fPressure;
> fPressureCS.Release; // odemknuto
> end;
>
> procedure TExampleThread.SetTestVolumePressure(const Value: extended);
> begin
> fPressureCS.Acquire; // zamknuto
> fPressure:= Value;
> fPressureCS.Release; // odemknuto
> end;

Ve spojeni s critical section pouzivejte try-finally. Samozrejme, ze na
Extended to neni nevyhnutelne nutne, ale jako demonstracni priklad je to OK.

begin
fPressureCS.Acquire; // zamknuto
try
result:= fPressure;
finally
fPressureCS.Release; // odemknuto
end;
end;

begin
fPressureCS.Acquire; // zamknuto
try
fPressure:= Value;
finally
fPressureCS.Release; // odemknuto
end;
end;

Pouzivani TCriticalSection

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 21.1.2008 17:47:48

> kdyby to bylo na me (pokud je to opravdu ciste pro synchronizaci
> threadu mezi sebou) tak pro todle pouziju spis pojmenovany mutex

Mutex ma ale jednu nevyhodu. EnterCriticalSection v pripade, ak dana critical section nie je prave vlastnena inym threadom, nevyzaduje prepnutie z user do kernel modu a je preto rychlejsia.
Mutex naopak vyzaduje prepnutie do kernel modu pri kazdom volani WaitFor... funkcie.

Z hladiska vykonnosti je teda vyhodnejsie pouzit critical section, ak sa jedna o synchronizaciu v ramci jedneho procesu.

HTH
TOndrej

Prekryti funkce Date

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 21.1.2008 11:15:18

Puvodni zprava ze dne 21.1.2008 od Zdenek Kalhous:

> Hm, to je prave to nejpracnejsi reseni. "Vsude" znamena v tomto
> pripadku hledat "date" asi v 9MB zdrojaku (skoro 400 unit).

Tak snad to bude hledat a nahrazover pocitac, ne clovek... ten
nejakych 9MB zdrojaku projde za chvilku.

> Potrebuju opravdu "prekryt" standardni funkci.

Tak si ji prekryj primo ve zdrojaku sysutils.pas.

Petr Zahradnik, pocitacovy expert

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


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

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


Pouzivani TCriticalSection

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

>Zalezi od pouziti a to nezname. Lze nalezt programy, kde kazde vlakno ma
nekolik critical section a je to tak umyslne.

vychazel jsem z prvni vety puvodniho dotazu "Pri komunikaci mezi Thready
pouzivam TCriticalSection." :-)

kdyby to bylo na me (pokud je to opravdu ciste pro synchronizaci threadu
mezi sebou) tak pro todle pouziju spis pojmenovany
mutex - hlavne z toho duvodu ze TryEnterCriticalSection je k disposici az na
NT classes systemech a EnterCriticalSection dovede
pri spatnem pouziti (napr. pri absenci jiz zminenych try..finally) seknout
proces/thready v okamziku kdy vsichni cekaj a uvolneni se
nedockaj.

Nehlede na to ze pokud bude ten thread cekat na critickou sekci tak muze mit
problem s korektnim ukoncenim se. Ja bych tam dal
neco co se da timeoutovat a overovat zda nahodou neni TThread uz Terminated
a tudiz zda nahodou neni na case to zabalit, pripadne
se da cekat na vic objektu a ukoncit se rovnou pri signalizaci treba stop
eventu. Proste moznosti je mnoho ;-)


Cus
Radek

Prekryti funkce Date

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 21.1.2008 11:03:17

No ted jsem zkousel za behu patchovat originalni funkci Date (tj.

pp := (zv)SysUtils.Date;


a na pp zapsat skok na vlastni funkci, bohuzel to nejde, neb je to chraneno proti zapisu (nebo to delam spatne).

Druha moznost je zkopirovat SysUtils k sobe do adresare a upravit tam Date, to by melo fungovat,
jelikoz Delphi najde SysUtils v adresari a pouzije ji
(pouzivam to pro Buttons.pas)

R.
> Zdenek Kalhous napsal(a):
> > Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola.
>
>
>

Prekryti funkce Date

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 21.1.2008 10:53:16

Dobry den,

>>Osobne nepovazuji za stastne pojmenovat vlastni funkci stejne jako tu z VCL.
ZK> Ja take ne :-) Ale na prani sefa se to takto vyvinulo. Ta funkce
ZK> bude "skoro vzdycky" vracet hodnotu SysUtils.Date.

Muzu jen pro zajimavost , jaky je ten argument, aby funkce Date zustala
stejne pojmenovana i kdyz pises ze "skoro vzdycky" vraci SysUtils.Date?
Sorry , ale toto povazuju za velky prohresek proti "coding standards".

Mozna by bylo reseni vymenit sefa :)

Kdo by se v takovem kodu pak vyznal? Toto mi neni jasne. Pokud upravim
funkci ktera vraci nejakou hodnotu a tato funkce je jeste ke vsemu
naprtosto standardni s ocekavanym chovanim, tak si akorat zadelavas v
budoucnu na problem. Osobne se klonim k pracnejsimu ale citelnejsimu
reseni se zmenou nazvu funkce.


--
S pozdravem,
Mgr. Martin Radvansky

Pouzivani TCriticalSection

[*] spurny(zv)kavlounky(tec)cz - 21.1.2008 17:07:45

Jan Sebelik napsal(a):
> Zalezi na tom, koho pred kym ma CriticalSection chranit.
> Pokud jednotliva vlakna navzajem mezi sebou, pak musi byt temito
> vlakny sdilena.
> Tedy bych to asi taky videl spise na tu globalni promennou nebo nejaky
> jiny sdileny atribut nejakeho nadrazeneho objektu.
Hlavni Thread bude do ExampleTreadu predavat hodnotu promenych (bude
jich nekolik vsechny budou, extended, integer nebo boolean), na zaklade
jejich hodnoty se ExampleThread rozhodne co dal bude delat.
ExampleThread.Execute dela svou cinnost v cyklu, na zacatku cyklu si
precte stav promennych a neco dela, kazdy cyklus trva cca desitky ms
(posilam prikazy po RS-232, a u kazdeho cekam na odpoved). Pokud stav
promenych potrebuji i v prubehu cyklu, tak si ho na zacatku cyklu ulozim
do pomocne promenne a sni dale pracuji. CriticalSections potrebuji jen k
tomu abych mel jistotu, ze napr v prommenene fPressure (ke ktere
pristupuji pouze pomoci property Pressure) je uplny obsah, a ne jen par
bytu z nove hodnoty. Chranim tedy jen ExampleThread. (myslim, ze hodnoty
integer a boolean by ani CriticalSection mit nemusely ale radsi je tam
napisu :-) ) ExampleThread je jen jeden, a komunikuje pouze s hlavnim
Threadem programu.
Samozrejme mohu udelat CriticalSection jako globalni promennou, ale
hlavnim duvodem proc ji zapouzdruji, je abych v hlavnim threadu nemusel
pri kazdem predavani hodnoty psat tri radky misto jednoho (a pripadne ji
jeste osetrovat pomoci try, finally takze tech radku by bylo jeste
vic...), ale stacilo se jen odvolat na Property.

napr. abych misto
ExampleThread.Pressure:= 1.234;

nemusel psat:
PressureCS.Acquire; // zamknuto
try
ExampleThread.Pressure:= 1.234;
finally
PressureCS.Release; // odemknuto
end;{try}

Prekryti funkce Date

[*] horky(zv)cominn(tec)cz - 21.1.2008 10:47:15

> From: Zdenek Kalhous [mailto:kalhous(zv)eu(tec)cz]
> Sent: Monday, January 21, 2008 10:39 AM
> >> Potrebuju, aby se v celem (dost velkem) programu misto
> >> standardni funkce SysUtils.Date() pouzila "moje" funkce Date.
> >Zalezi na poradi unit v Uses. Dej v Uses svoji unitu s
> vlastni deklaraci Date pred SysUtils a mela by se nacitat
> tvoje deklarace.

> Maler je prave v tom ze toto mi nefunguje a tvrdosijne se
> vola SysUtils.Date.

Rozhodne bych nejdrive vyhledal vsechny *.dcu v danem projektu a smazal je a pak bych dal Build celeho projektu.

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

Prekryti funkce Date

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.1.2008 10:45:15

Bohuzel lepsi a spolehlive reseni asi nenajdes...

S pozdravem

Milan Tomes

Zdenek Kalhous napsal(a):
> Hm, to je prave to nejpracnejsi reseni. "Vsude" znamena v tomto pripadku hledat "date" asi v 9MB zdrojaku (skoro 400 unit). Potrebuju opravdu "prekryt" standardni funkci.
>
>
> Vsude, kde mas uvedeno volani teto funkce uved pred nazev funkce i jmeno
> unity tzn. misto Date uved napr. GlobalUtils.Date.
> Milan Tomes
>
> Zdenek Kalhous napsal(a):
> > Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola.
>
>
>

Prekryti funkce Date

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

> Hm, to je prave to nejpracnejsi reseni. "Vsude" znamena v tomto pripadku
> hledat "date" asi v 9MB zdrojaku (skoro 400 unit). Potrebuju opravdu
> "prekryt" standardni funkci.

Mozna by slo zkusit jednu prasarnu, ale je to jen napad. ktery ma i radu
nevyhod. Zkusil bych ve zdrojakach k VCL najit sysutils.pas, prikopirovat
ji k projektu, tam pak funkci Date zakomentovat, prejmenovat apod.,
restartovat Delphi a zkusit, co to udela.

Ale hlavne se na to musi myslet v budoucnu, kdyby se do Delphi instaloval
nejaky update, prechod na jinou verzi apod., aby se nezapomnelo tuto unitu
tez aktualizovat.

Nevim, jestli to za to stoji, ani jestli to povede k cili.

David Lebeda

Prekryti funkce Date

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 21.1.2008 10:39:14

----- Original Message -----
>> Potrebuju, aby se v celem (dost velkem) programu misto
>> standardni funkce SysUtils.Date() pouzila "moje" funkce Date.
>Zalezi na poradi unit v Uses. Dej v Uses svoji unitu s vlastni deklaraci Date pred SysUtils a mela by se nacitat tvoje deklarace.
Maler je prave v tom ze toto mi nefunguje a tvrdosijne se vola SysUtils.Date.

>Osobne nepovazuji za stastne pojmenovat vlastni funkci stejne jako tu z VCL.
Ja take ne :-) Ale na prani sefa se to takto vyvinulo. Ta funkce bude "skoro vzdycky" vracet hodnotu SysUtils.Date.

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

Prekryti funkce Date

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

Ahoj,

dej ji treba to unity Misc a pak vsude nahrad volani Date() za
Misc.Date() a Misc dej do uses. Pokud trvas na stejnem nazvu. Nicmene
jiny nazev - MyDate() je asi lepsi ;-)

TR

> Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola. Jak na to? Dik.
>

Prekryti funkce Date

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

Hm, to je prave to nejpracnejsi reseni. "Vsude" znamena v tomto pripadku hledat "date" asi v 9MB zdrojaku (skoro 400 unit). Potrebuju opravdu "prekryt" standardni funkci.
----- Original Message -----
From: Milan Tomes
Vsude, kde mas uvedeno volani teto funkce uved pred nazev funkce i jmeno
unity tzn. misto Date uved napr. GlobalUtils.Date.
Milan Tomes

Zdenek Kalhous napsal(a):
> Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola.

Prekryti funkce Date

[*] horky(zv)cominn(tec)cz - 21.1.2008 10:25:12

> From: Zdenek Kalhous [mailto:kalhous(zv)eu(tec)cz]
> Sent: Monday, January 21, 2008 10:03 AM
>
> Potrebuju, aby se v celem (dost velkem) programu misto
> standardni funkce SysUtils.Date() pouzila "moje" funkce Date.

Zalezi na poradi unit v Uses. Dej v Uses svoji unitu s vlastni deklaraci Date pred SysUtils a mela by se nacitat tvoje deklarace.

> Ale nedari se mi najit misto, kde a jak ji definovat aby se
> automaticky volala vsude.

Budes muset projit vsechny unity a opravit Uses.

Osobne nepovazuji za stastne pojmenovat vlastni funkci stejne jako tu z VCL.

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

Prekryti funkce Date

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.1.2008 10:19:12

Vsude, kde mas uvedeno volani teto funkce uved pred nazev funkce i jmeno
unity tzn. misto Date uved napr. GlobalUtils.Date.

S pozdravem

Milan Tomes


Zdenek Kalhous napsal(a):
> Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola. Jak na to? Dik

Prekryti funkce Date

[*] Zdenek Kalhous <kalhous(zv)eu(tec)cz> - 21.1.2008 10:03:10

Potrebuju, aby se v celem (dost velkem) programu misto standardni funkce SysUtils.Date() pouzila "moje" funkce Date. Ale nedari se mi najit misto, kde a jak ji definovat aby se automaticky volala vsude. Kdyz ji definuju ve vsech unitach projektu tak to funguje ale to je osklive. A neprakticke, tech unit je moc. Ale kdyz ji definuju napriklad v unite ve ktere jsou ruzne jine podprogramky a kterou urcite vsechny ostatni unity pouzivaji tak se nezavola a nezavola. Jak na to? Dik.

Z.Kalhous
ToWare s.r.o.
kalhous(zv)eu(tec)cz
466 614 024

vykreslovani visualnich temat

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.1.2008 09:39:08

> nejsem si uplne jisty zda jsem pochopil tvuj dotaz
>>hraju si s visualnimi tematy ve windowsech nasel jsem si jednotlive
>> konstanty pro jejich vykreslovani (asi i vcetne tech co jsou pro vistu)
>> ale
>> potreboval bych vedet kdy co vykreslovat - u tlacitka je to jednoduche
>> ale
>> napriklad jsou tam konstanty FLYOUT (FLYOUT_BODY,FLYOUTDIVIDER,...) a u
>> tech
>> vubec
>>netusim k cemu jsou - nevite nekdo o nejakych strankach kde by se to dalo
>> vycist? (jde mi ale o vsechny ty konstanty nejenom flyout)
> zkus se podivat na
> http://www.soft-gems.net/index.php?option=com_content&task=view&id=17&Itemid
> =33 a stahnout si Theme Explorer.

to sem nasel uz davno - bohuzel tam nejsou ty nove veci (jen pro XP)

vykreslovani visualnich temat

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.1.2008 09:37:08

neco malo, ale spis jak vyuzivat edit boxi a podobne

> Na MSDN nic neni ???
>> hraju si s visualnimi tematy ve windowsech nasel jsem si jednotlive
>> konstanty pro jejich vykreslovani (asi i vcetne tech co jsou pro vistu)
>> ale
>> potreboval bych vedet kdy co vykreslovat - u tlacitka je to jednoduche
>> ale
>> napriklad jsou tam konstanty FLYOUT (FLYOUT_BODY,FLYOUTDIVIDER,...) a u
>> tech
>> vubec netusim k cemu jsou - nevite nekdo o nejakych strankach kde by se
>> to
>> dalo vycist? (jde mi ale o vsechny ty konstanty nejenom flyout)

Pouziti synapse a SSL s pluginem StreamSecII

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 21.1.2008 08:41:04

> Tak jsem z toho jelen :(
> Pokud pouziju ssl_streamsec tak dostavam hlasku o problemu s
> certifikatem. Podobnou hlasku dostanu i pokud to zkusim napr IE.
>
> Pokud ale pouziju ssl_openssl tak to projde v poradku.
>
> Tak ted tedy tomu nerozumim podle IE tam je problem s certifikatem,
> ale openssl to klidne ignoruje :(

OpenSSL to klidne ignoruje, protoze jsi mu nerekl, ze ma ten
certifikat kontrolovat.

V pripade ssl_openssl se muzes na sparvnost certifikatu po pripojeni
explicitne zeptat pomoci ssl.GetVerifyCert, a na zaklade vysledku se
rozhodnout, jestli budes pokracovat v praci nebo nikoliv. Nebo si
muzes zapnout property ssl.VerifyCert, pak bude certifikat vzdy
kontrolovan a pokud bude v neporadku, spojeni se odmitne.

U ssl_streamsec je vzdy vyzadovan bezproblemovy certifikat a nevim,
jak pripadne mu tuto vlastnost vypnout.

Zatim moje zkusenosti s temi ssl implementacemi je takova, ze kazdy
je na neco haklivy, jen OpenSSL je takovy vstricny, mohu si snadno
zvolit, co chci a co nechci kontrolovat.


--
Lukas Gebauer.

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

Pouziti synapse a SSL s pluginem StreamSecII

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 20.1.2008 23:24:25

Dobry den,

MMR> Nainstaloval jsem do Delphi 7 snad posledni OpenStreamSec
MMR> dale pouzivam posledni verzi Synapse
MMR>
MMR> Dale jsem do uses pridal ssl_streamsec, httpsend
MMR> adresu zmenim z klasickeho http na https
MMR> naplnim objekt httpsend.Document daty pro odeslani
MMR>
MMR> a pri odeslani pozadavku pomoci _HTTPSend.HTTPMethod('POST',adresa);
MMR> dostavam chybu Bad certificate.

Tak jsem z toho jelen :(
Pokud pouziju ssl_streamsec tak dostavam hlasku o problemu s
certifikatem. Podobnou hlasku dostanu i pokud to zkusim napr IE.

Pokud ale pouziju ssl_openssl tak to projde v poradku.

Tak ted tedy tomu nerozumim podle IE tam je problem s certifikatem,
ale openssl to klidne ignoruje :(

--
S pozdravem,
Mgr. Martin Radvansky

Pouziti synapse a SSL s pluginem StreamSecII

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 20.1.2008 16:57:58

Dobry den,
Potreboval bych komunikovat s https serverem pomoci synapse.

Snazim se tedy rozchodit podporu HTTPS v synapsy a nejak se mi nedari

Muzete mi nekdo prosim poradit jak pouzit posledni verzy synapse s
SSL pluginem StreamSecII, rad bych se vyhnul pouziti dalsich dll
knihoven.

Nainstaloval jsem do Delphi 7 snad posledni OpenStreamSec

dale pouzivam posledni verzi Synapse

Dale jsem do uses pridal ssl_streamsec, httpsend

adresu zmenim z klasickeho http na https
naplnim objekt httpsend.Document daty pro odeslani

a pri odeslani pozadavku pomoci _HTTPSend.HTTPMethod('POST',adresa);
dostavam chybu Bad certificate. Asi delam neco spatne, diky za radu.



--
S pozdravem,
Martin Radvansky

posledni vlozene ID MySQL vs Firebird

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 20.1.2008 13:35:42

On 1/19/08, Petr Mathon <dveste_zar(zv)quick(tec)cz> wrote:
> meni pri pokusu odeslani a odeslani. Sem se chtel zeptat, pri UPDATE se meni ID zaznamu u FB (to je blbost ne), nebo to je chyba dreamcom, ktery nevyuziva UPDATE ale kopiruje zaznamy?

Pokud delas UPDATE (ne neupdatujes tedy PK), tak se PK prirozene
nemeni - co kdyby na tom byla dalsi RI.

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

Firebird a vyber kodovani

[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 22.1.2008 10:31:01

Ahoj,

tvorim aplikaci, ktera pouziva databazi Firebird 2.0. Databaze nebude
slozita, budou v ni jen tri tabulky. Texty se tabulkach se mohou vyskytovat
nejmene ve trech jazycich, Cesky, Anglicky a Francouzky a je tu i moznost
pouziti rustiny.
Ktere kodovani pro Character Set z tech co mi Firebird nabizi mam vybrat,
UNICODE_FSS?
Ovlivni mi tohle kodovani i velikost netextovych poli (treba DATE, DOUBLE
PRECISION...)?

dekuji
Tonda

Vyuziti diskoveho pole v DB aplikacich

[*] Novy Lubos <lnovy(zv)unileasing(tec)cz> - 22.1.2008 11:03:03

Provozuji dve databazove aplikace, jednu na Firebirdu, druhou na MS SQL Express.

Mam k dispozici diskove pole Raid 5 a samostatny SQLserver, kde jsou spusteny obe databaze (zrcadleny disk).



Bohuzel stavajici reseni je takove, ze vlastni DB soubory jak u Firebirdu, tak MS SQL Express musi byt umisteny na tom samem stroji, na kterem DB bezi. (SQLserver)

Na diskove pole je nahravam jednou denne z duvodu zalohovani.



Toto reseni se mi vsak nelibi, protoze nevyuzivam plnohodnotne diskove pole, ktere bylo porizeno za ucelem stoprocentni zalohy on-line dat.

Pokud by jsem chtel aplikace predelat, aby DB soubory mohly byt umisteny na externim diskovem poli, co musim zmenit?

Misto Firebirdu a MS SQL Express pouzit jinou databazi ktera tohle podporuje? Jako Oracle nebo MS SQL server?



Dekuji za radu,

Lubos Novy

Vyuziti diskoveho pole v DB aplikacich

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 22.1.2008 11:11:04

Novy Lubos dne 22 Jan 2008 v 11:03:

> Mam k dispozici diskove pole Raid 5 a samostatny SQLserver, kde jsou
> spusteny obe databaze (zrcadleny disk).
...
> Pokud by jsem chtel aplikace predelat, aby DB soubory mohly byt
> umisteny na externim diskovem poli, co musim zmenit?

Firebird ma v konfiguraci parametr:
RemoteFileOpenAbility = 0

Nepomohlo by ho tedy nastavit na 1? Po seznameni se s tim varovanim, co tam maji? ;-)

Karel Rys


Firebird a vyber kodovani

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 22.1.2008 11:05:03

On 1/22/08, Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> wrote:
> Ktere kodovani pro Character Set z tech co mi Firebird nabizi mam vybrat,
> UNICODE_FSS?

UNICODE_FSS obsahuje chyby, tedy nebrat. :) Radeji UTF8.

> Ovlivni mi tohle kodovani i velikost netextovych poli (treba DATE, DOUBLE
> PRECISION...)?

Ne.

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

Vyuziti diskoveho pole v DB aplikacich

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 22.1.2008 11:31:06

On 1/22/08, Karel Rys <delphi(zv)zas-me(tec)cz> wrote:
> Firebird ma v konfiguraci parametr:
> RemoteFileOpenAbility = 0
>
> Nepomohlo by ho tedy nastavit na 1? Po seznameni se s tim varovanim, co tam maji? ;-)

Pripadne udelat shadow soubor(y).

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

Firebird a vyber kodovani

[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 22.1.2008 11:45:07

Ahojda, nepouzivej UNICODE_FSS, ale UTF8, to zaprve, velikost ostatnich poli to samozrejme
neovlivni.
Jen nezapomen do parametru pripojeni nastavit kodovou sadu UTF8.

Tom

Ing. Antonin Spurny napsal(a):
> Ktere kodovani pro Character Set z tech co mi Firebird nabizi mam vybrat,
> UNICODE_FSS?
> Ovlivni mi tohle kodovani i velikost netextovych poli (treba DATE, DOUBLE
> PRECISION...)?
>

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 22.1.2008 13:43:15

> A jeste doplneni, pro datove typy vetsi >8 bytu a <=16 by bylo mozne
> pouzit
> instrukci LOCK CMPXCHG16B ktera je dostupna u soucasnych procesoru s 64
> bitovou architekturou:
> http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64

OK, je tedy mozno ucinit zaver, ze LOCK s Extended (ma 10 byte) na x32 neni
vubec mozny. Jde to az od 64-bitove architektury s podporou CMPXCHG16B.

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 23.1.2008 00:36:02

> akekolvek zamykanie, synchronizacia a komunikacia je overhead.
> Tieto veci treba skor riesit (aspon teda na urovni aplikacie)
> premyslenym navrhom ako nahananim CPU cyklov.

Jakmile jsou v aplikaci vlakna, nelze se v praxi vyhnout synchronizaci mezi
vlakny. A kdyz uz tam ta synchronizace byt musi, neni duvod nevolat LOCK
primo, kdyz zrovna kriticka sekce je z 1/3 jenom omacka na instrukce s LOCK.

Pouzivani TCriticalSection

[*] Erik Salaj <winsoft(zv)netkosice.sk> - 22.1.2008 19:13:39

>> taka instrukcia ani nie je potrebna na 32 bitovej archetekture,
>> i pouzitim 32bitoveho zamku si mozes zamykat co chces.
>
> To urcite mohu, ale solidni implementace zamku = kriticka sekce =
> overhead.

akekolvek zamykanie, synchronizacia a komunikacia je overhead.
Tieto veci treba skor riesit (aspon teda na urovni aplikacie)
premyslenym navrhom ako nahananim CPU cyklov.

>> A urcite nebudes pouzivat ziadny zamok na FP data (este
>> k tomu 10bytovych), lebo to nedava zmysel.
>
> Mam tomu rozumet tak, ze k FP datum single/double/extended se nemusi
> chodit
> v kriticke sekci ?

skor tak, ze taketo superoptimalizacie su v aplikaciach
zbytocne. Delphi (AIK) doteraz nema optimalizator
FPU instrukcii a chyba snad Delphi programatorom?

Erik Salaj

Pouzivani TCriticalSection

[*] delphin(zv)post(tec)cz - 22.1.2008 18:21:35

> taka instrukcia ani nie je potrebna na 32 bitovej archetekture,
> i pouzitim 32bitoveho zamku si mozes zamykat co chces.

To urcite mohu, ale solidni implementace zamku = kriticka sekce = overhead.

> A urcite nebudes pouzivat ziadny zamok na FP data (este
> k tomu 10bytovych), lebo to nedava zmysel.

Mam tomu rozumet tak, ze k FP datum single/double/extended se nemusi chodit
v kriticke sekci ?

Pouzivani TCriticalSection

[*] Erik Salaj <winsoft(zv)netkosice.sk> - 22.1.2008 17:15:31

>> A jeste doplneni, pro datove typy vetsi >8 bytu a <=16 by bylo mozne
>> pouzit
>> instrukci LOCK CMPXCHG16B ktera je dostupna u soucasnych procesoru s 64
>> bitovou architekturou:
>> http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64
>
> OK, je tedy mozno ucinit zaver, ze LOCK s Extended (ma 10 byte) na x32
> neni
> vubec mozny. Jde to az od 64-bitove architektury s podporou CMPXCHG16B.

taka instrukcia ani nie je potrebna na 32 bitovej archetekture,
i pouzitim 32bitoveho zamku si mozes zamykat co chces.
A urcite nebudes pouzivat ziadny zamok na FP data (este
k tomu 10bytovych), lebo to nedava zmysel.

Erik Salaj

Mail s prilohou ze Synapse

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 23.1.2008 14:11:01

> Pomoci Synapse funkce SendToRaw umim poslat z programu textovy mail.
> Potrebuju ale k nemu dat prilohu. Jak na to? Dik.

Priklad mas na wiki Synapse:
http://synapse.ararat(tec)cz/doku.php/public:howto:tmimepart

Vysledek misto abys priradil do mema, tak jej posles pres SendToRaw.
--
Lukas Gebauer.

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

Mail s prilohou ze Synapse

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

Pomoci Synapse funkce SendToRaw umim poslat z programu textovy mail. Potrebuju ale k nemu dat prilohu. Jak na to? Dik.

Z.Kalhous
ToWare s.r.o.
kalhous(zv)eu(tec)cz
466 614 024


Viceradkovy text v TTntStringGrid

[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 24.1.2008 01:47:55

Ahojda, nemate nekdo zkusenosti s TNT komponentama???

Potreboval bych dostat do TTntStringGrid viceradkovy UNICODE text, ale je to problem,
zkusil jsem do Cells[][] vlozit text s odradkovanim "\n", ale ignoroval ho,

Pak jsem zkusil udalost, OnDrawCell, ta funguje skvjele, ale kdyz vykresluju neceske
znaky, mam misto nich otaznicky, protoze metody objektu canvas pro vykresleni textu
pocitaji pouze s obyc stringem.

Netusite nekdo jak z toho ven?? Bohuzel barevne radky nutne potrebuji.

Diky Tom

Zarucni doba u software

[*] Marian Jonas <delphikonf(zv)mjonas(tec)cz> - 24.1.2008 01:01:52

Procitam Autorsky zakon a Obchodni zakonik. Jedna se mi o toto koupil
jsem v roce 2006 licenci na pocitacovy program, jako doklad o nabyti mam
fakturu na ktere je pouze text Fakturujeme vam za Software XX, licenci a
instalacni medium castku YY. Dodavatel je fyzicka osoba a zaroven take
autor programu. Licencni smlouva neni. Nejedna se o program vyvinuty na
zakazku.

Nyni jsem zjistil vadu v software, ktera v okamziku koupe nebyla zrejma.
Mohu nejakym zpusobem reklamovat tuto vadu, nebo odstoupit od kupni
smlouvy, respektive donutit dodavatele k odstraneni vady ?

Dekuji vsem Marian


> Zarucni doba je pojem z Obcanskeho zakonika, kde ma povinne dva roky, a z Obchodniho zakonika, kde je jeji delka veci dohody, default nula.
>
> Autorsky zakon, ktery upravuje vztah mezi autorem dila a ostatnimi, tento pojem vubec nezna.
>
> Jarda

Zarucni doba u software

[*] Ing. Jaroslav Pivonka <jpivonka(zv)centrum(tec)cz> - 24.1.2008 00:37:49

Zarucni doba je pojem z Obcanskeho zakonika, kde ma povinne dva roky, a z Obchodniho zakonika, kde je jeji delka veci dohody, default nula.

Autorsky zakon, ktery upravuje vztah mezi autorem dila a ostatnimi, tento pojem vubec nezna.

Jarda

Zarucni doba u software

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 24.1.2008 00:23:48

Puvodni zprava ze dne 23.1.2008 od Mgr. Martin Radvansky:

> Tudiz nevim jestli je zarucni doba v tomto pripade vhodne slovo.

Zarucni doba samozrejme vyznam nema. Uz z logiky veci, v software se
chyba nemuze vyskytnout casem, muze se tak leda casem projevit nebo se
na ni muze casem prijit. Ve vsech pripadech ovsem chyba nutne musela
existovat uz v dobe vyvoje. Nepocitam tedy ten pripad, ze by byla
nasazena nejaka aktualizace, ktera by novou chybu zanesla, ovsem to je
zase pripad, kdy doslo ke zmene dila, ne ze by se "pokazilo".

> Jasne byvaji ruzne dovetky treba u ucetniho software ze budes
> odstranovat zjistene chyby a podobne, ale slovo zaruka bych asi
> nepouzil.

A no tak slovo "zaruka" jako takove by pouzit urcite slo. Kdyz nekdo
napriklad zarucuje, ze funkcnost programu bude v souladu s
dokumentaci, pak tedy neco zarucuje a je to zaruka. Ale samozrejme
vubec ne v tom smyslu zarucni lhuty na normalni vyrobky, ze se to dva
roky nepokazi... Nebo muze zarucovat treba zajisteni aktualizaci po
nejakou dobu atd. Proste uplne jine zaruky.

Petr Zahradnik, pocitacovy expert

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


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

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


Zarucni doba u software

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 24.1.2008 00:01:46

Puvodni zprava ze dne 23.1.2008 od Marian Jonas:

> Co v plati v pripade, ze licencni smlouva neni ?

V tom pripade plati zadna zaruka. Kdyz neni licencni smlouva, uplatni
se autorsky zakon, ktery je takove smlouve nadrazen. A v nem zadna
zaruka neni.

Petr Zahradnik, pocitacovy expert

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


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

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


Zarucni doba u software

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 23.1.2008 23:43:44

Dobry den,
23. ledna 2008, 22:47:40, napsal jste:

MJ> Co v plati v pripade, ze licencni smlouva neni ?

>>
>> Takova, jaka je uvedena v licencni smlouve.
>>

>>> Jaka je zarucni doba u software, ktery je
>>> poskytovan jako licence k uzivani ? Nejedna se o SW vyvijeny na
>>> zakazku a take neni podepsana zadna smlouva mezi autorem a
>>> uzivatelem.

Uz je to davno co jsem to nejak resil a mozna se to zmenilo, ale

- Pro software platilo ,ze majitel autorskych prav poskytuje uzivaci
pravo dalsi osobe, Pokud to neni dilo na zakazku tak jen tomu
uzivateli za uplatu umoznis to dilo pouzivat.

Tudiz nevim jestli je zarucni doba v tomto pripade vhodne slovo.
Zaruka byva poskytovana napriklad na nosic, na dokumentaci.
Jak by jsi chtel reklamovat obraz nebo knihu? Odprosti se od
technickeho zpracovani ale ber to jako myslenku.

Jasne byvaji ruzne dovetky treba u ucetniho software ze budes
odstranovat zjistene chyby a podobne, ale slovo zaruka bych asi
nepouzil.

Jinak vsechno se ridi autorskym zakonem tak si ho prostuduj co ti
brani.
--
S pozdravem,
Mgr. Martin Radvansky

Zarucni doba u software

[*] Marian Jonas <delphikonf(zv)mjonas(tec)cz> - 23.1.2008 22:47:40

Co v plati v pripade, ze licencni smlouva neni ?

>
> Takova, jaka je uvedena v licencni smlouve.
>

>> Jaka je zarucni doba u software, ktery je
>> poskytovan jako licence k uzivani ? Nejedna se o SW vyvijeny na
>> zakazku a take neni podepsana zadna smlouva mezi autorem a
>> uzivatelem.

Zarucni doba u software

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 23.1.2008 21:27:34

Puvodni zprava ze dne 23.1.2008 od Marian Jonas:

> Ahoj, omlouvam se OT ktery se sice netyka Delphi, ale mozna bude
> zajimat i vice lidi. Jaka je zarucni doba u software, ktery je
> poskytovan jako licence k uzivani ? Nejedna se o SW vyvijeny na
> zakazku a take neni podepsana zadna smlouva mezi autorem a
> uzivatelem.

Takova, jaka je uvedena v licencni smlouve.

Petr Zahradnik, pocitacovy expert

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


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

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


Jak zobrazit upozorneni na USB zarizeni pri vypnut

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 23.1.2008 21:13:33

Hezky vecer,

ve skole se nam casto stava, ze se studenti odhlasi ze site (Novell)
nebo vypnou pocitac, ale zapomenou v pocitaci svuj flash disk, mp3
prehravac apod. Chtel bych napsat programek, ktery by je na to
upozornil, ale vubec nevim, od ceho se odpichnout. Predevsim na co
reagovat, kdyz se nekdo odhlasuje nebo vypina PC? A pokud by takovy
programek bezel jako sluzba (chtel bych jeste, aby mi pres TCP/IP
nekam zapsal, v kolik hodin se dotycny odhlasil), lze zobrazit hlasku?
A jak vlastne poznam USB zarizeni? Popr. muzu ze sluzby napr. poznat,
ze nikdo prihlaseny neni, a v urcitou hodinu pocitac vypnout (aniz by
zustala hlaska Nyni muzete pocitac bez obav vypnout)? Budu vdecny za
nakopnuti v kterekoli z techto otazek. Resim to jen pro Win2000 a WinXP.

Diky,

Karel Rys


OT: Zarucni doba u software

[*] Marian Jonas <delphikonf(zv)mjonas(tec)cz> - 23.1.2008 21:11:33

Ahoj, omlouvam se OT ktery se sice netyka Delphi, ale mozna bude zajimat
i vice lidi. Jaka je zarucni doba u software, ktery je poskytovan jako
licence k uzivani ? Nejedna se o SW vyvijeny na zakazku a take neni
podepsana zadna smlouva mezi autorem a uzivatelem.

Dekuji vsem Marian

Mail s prilohou ze Synapse

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 23.1.2008 20:09:28

Dobry den,

dkc> podival jsem se na priklad,
dkc> a hlasi mi to pri kompilaci chybu na radku:

dkc> m.AddPartBinary('c:\search.log',p);
dkc> Incompatible types: TStream and String

Co juknout do dokumentace k dane metode? Podle ni ma dana metoda jine
parametry.

function AddPartBinary(const Stream: TStream;
const FileName: string;
const PartParent: TMimePart): TMimepart;

Mozna neni dany priklad aktualizovan na posledni verzi Synapse.
Takze kdyz selze vsechno precti si navod :)

--
S pozdravem,
Mgr. Martin Radvansky

Mail s prilohou ze Synapse

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 23.1.2008 19:39:26

Puvodni zprava ze dne 23.1.2008 od delphi(zv)kopr(tec)cz:

> podival jsem se na priklad,
> a hlasi mi to pri kompilaci chybu na radku:

> m.AddPartBinary('c:\search.log',p);
> Incompatible types: TStream and String
> co s tim

A jsi si jisty, ze jsi nevynechal nejaka pismenka, kdyz jsi to
opisoval z toho prikladu na webu? Mozna kdyby ses na nej nedival, ale
poradne ho okopiroval...?

PS: Ale i tak, takovy dotaz, no Pavle, teda... :-)))

Petr Zahradnik, pocitacovy expert

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


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

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


Mail s prilohou ze Synapse

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

> podival jsem se na priklad,
> a hlasi mi to pri kompilaci chybu na radku:
>
> m.AddPartBinary('c:\search.log',p);
> Incompatible types: TStream and String
> co s tim
> pavel

Nemam po ruce Synapsi, ale celkem bych si vsadil na to, ze AddPartBinary
ocekava jako parametr nejakeho potomka tridy TStream (TFileStream,
TMemoryStream) a ne string (nazev souboru).

JiriF


Mail s prilohou ze Synapse

[*] delphi(zv)kopr(tec)cz - 23.1.2008 18:03:19

podival jsem se na priklad,
a hlasi mi to pri kompilaci chybu na radku:

m.AddPartBinary('c:\search.log',p);
Incompatible types: TStream and String
co s tim
pavel


Subject: Re: Mail s prilohou ze Synapse


>> Pomoci Synapse funkce SendToRaw umim poslat z programu textovy mail.

FB 1.5 - jeden poznatek k PLAN, jeden dotaz

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.1.2008 11:59:13

On 1/15/08, Jan Sebelik <honza(zv)haes(tec)cz> wrote:
> > > Obavam se, ze tohle se mi ve FB nepodari.
> >
> > Podari.
> > ALTER TABLE XXXXXXXXX ADD CONSTRAINT PK_XXXXXXXXXX PRIMARY KEY
> > (ID_XXXXXXXXX);
> > Martin
>
> FB 1.5:
> Presne takhle to delam.
> Constraint sice pojmenovany je ale vytvoreny index se jmenuje treba RDB$PRIMARY63.

Pouzij:
ALTER TABLE <tabulka>
ADD CONSTRAINT <nazev> PRIMARY KEY (<sloupec>)
USING [DESC | ASC] INDEX <index_name>;

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

Viceradkovy text v TTntStringGrid

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 24.1.2008 07:58:22

> Pak jsem zkusil udalost, OnDrawCell, ta funguje skvjele, ale kdyz
> vykresluju neceske znaky, mam misto nich otaznicky, protoze metody objektu
> canvas pro vykresleni textu pocitaji pouze s obyc stringem.

Ahoj, jen tip. Neslo by pouzit misto metod canvasu primo obdobnou API fci
s W na konci (DrawText, TextOut nebo jak se to jmenuje - nemam ted pustene
Delphi)?

David Lebeda

Zarucni doba u software

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 24.1.2008 09:14:28

> Nyni jsem zjistil vadu v software, ktera v okamziku koupe nebyla
> zrejma.
> Mohu nejakym zpusobem reklamovat tuto vadu, nebo odstoupit od kupni
> smlouvy, respektive donutit dodavatele k odstraneni vady ?

Po dvou letech? Podle me pravni cestou nikoli. IMHO by musela existovat
napr. smlouva definujici pozadovanou funkcionalitu, coz jak rikas neexistuje
. Je to vubec chyba, neni to spis vlastnost?
Podle me je namisto hledani paragrafu namiste pokusit se o domluvu s
autorem, po dobrem, zkusils?

Martin


>
> Dekuji vsem Marian
>
>
>> Zarucni doba je pojem z Obcanskeho zakonika, kde ma povinne dva
>> roky, a z Obchodniho zakonika, kde je jeji delka veci dohody,
>> default nula.
>>
>> Autorsky zakon, ktery upravuje vztah mezi autorem dila a ostatnimi,
>> tento pojem vubec nezna.
>>
>> Jarda

Zarucni doba u software

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 24.1.2008 09:32:30

Puvodni zprava ze dne 24.1.2008 od Marian Jonas:

> Nyni jsem zjistil vadu v software, ktera v okamziku koupe nebyla
> zrejma. Mohu nejakym zpusobem reklamovat tuto vadu,

Reklamovat muzes, ale nebude ti to nic platne, poslou te do haje.

> nebo odstoupit od kupni smlouvy,

Zadna kupni smlouva na tento software neexistuje. Je to prevod prav.
Odstoupit nemuzes.

> respektive donutit dodavatele k odstraneni vady ?

To muzes. Klackem. Nebo tim, ze zaplatis upgrade na novejsi verzi.

Petr Zahradnik, pocitacovy expert

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


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

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


Mail s prilohou ze Synapse

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 24.1.2008 10:04:32

> Mozna neni dany priklad aktualizovan na posledni verzi Synapse.
> Takze kdyz selze vsechno precti si navod :)

Priklad je aktualni, jen se v nem pouziva metoda
AddPartBinaryFromFile, ktera ma (kupodivu) zcela jine parametry nez
metoda AddPartBinary.

Jak uz napsal Petr, tak je potreba opisovat dusledne. :-)


--
Lukas Gebauer.

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

Jak zobrazit upozorneni na USB zarizeni pri vypnut

[*] Milos J. Hrach <delphi konf(zv)post(tec)cz> - 24.1.2008 11:20:38

Zdravim,

flashka se hlasi jako disk. Tak bych zkusil pri vypinani pocitace pristoupit na tento disk/cist data z tohoto zatrizeni a kdyz ziskam odezvu, ze to jde tak bych vypsal prislusne upozorneni.

Kdo drzi soubor

[*] konference(zv)sales(tec)cz - 24.1.2008 11:58:41

Zdravim,
Potreboval bych vedet, jak zjistim, ktery proces drzi otevereny nejaky
soubor.
Proste soubor nejde smazat a hlasi ze ho pouziva jiny proces a ja bych
potreboval vedet ktery proces to je.

Diky
Ludek

Kdo drzi soubor

[*] delphin(zv)post(tec)cz - 24.1.2008 12:06:42

> Zdravim,
> Potreboval bych vedet, jak zjistim, ktery proces drzi otevereny nejaky
> soubor.
> Proste soubor nejde smazat a hlasi ze ho pouziva jiny proces a ja bych
> potreboval vedet ktery proces to je.

http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/Handle.mspx

Kdo drzi soubor

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 24.1.2008 12:12:43

Ahoj,
pokud by tim "souborem" byla dll-ka, pak to jde pomerne jednoduse. Pokud
se vsak jedna o soubor obecny, tak to jednoduse nejde a bylo by nutne
pouzit vlastni driver, jako to napr. delaji utilitky od SysInternals.
Nevim, jaka je ted u nich licence, jinak by ale bylo nejjednodussi
pouzit nekterou z nich (nevim, jak se presne jmenuje, je tusim soucasti
PSTools), nechat si udelat vypis do souboru a ten pak rozparsovat.

pl

konference(zv)sales(tec)cz wrote:
> Zdravim,
> Potreboval bych vedet, jak zjistim, ktery proces drzi otevereny nejaky
> soubor.
> Proste soubor nejde smazat a hlasi ze ho pouziva jiny proces a ja bych
> potreboval vedet ktery proces to je.
>
> Diky
> Ludek
>
>
>

DLL Hell OpenSSL libeay32.dll

[*] Petr Vones <conference(zv)petrvones(tec)net> - 24.1.2008 12:10:42

From: "Mgr. Martin Radvansky" <delphiconf(zv)radvansky.net>
> Problem je nasledujici:
> Mam aplikaci, ktera posila elektronicky danove priznani na web mfcr.
> V aplikaci aktualne pouzivame Indy a openssl knihovny pro posilani a
> capicom pro podepisovani. Knihovny openssl mame u nasi aplikace.

Co pouzit normalni WinInet API ?

> Problem nastava prave v tom, ze pouzili knihovnu libeay32.dll ale v
> posledni mozne verzi, ktera nedodrzuje rozhrani starsich verzi.

To je u urcitych typu projektu bohuzel naprosto normalni. Proto je lepsi
pouzivat neco na co se lze spolehnout (viz vyse).

Petr Vones

Jak zobrazit upozorneni na USB zarizeni pri vypnut

[*] spurny(zv)kavlounky(tec)cz - 24.1.2008 12:32:44

Ahoj

Karel Rys napsal(a):
> prehravac apod. Chtel bych napsat programek, ktery by je na to
> upozornil, ale vubec nevim, od ceho se odpichnout. Predevsim na co
> reagovat, kdyz se nekdo odhlasuje nebo vypina PC? A pokud by takovy
Nevim jestli jsem to pochopil dobre, ale ukoncovani Windows se da
rozpoznat podle zprav
WM_QUERYENDSESSION a WM_ENDSESSION, vic prozradi GOOGLE :-)
(jen nevim jak se zpravy chovaji ve sluzbach...)
Tonda

Mail s prilohou ze Synapse - reseni

[*] delphi(zv)kopr(tec)cz - 24.1.2008 13:40:49

diky za pomoc,
vysledek meho snazeni je funkce, kde je i osetrena cestina v Subjektu i v
textu,
dale priklad resil odeslani jednoho souboru, zde je reseni pro odeslani vice
souboru.
diky pavel zidek
delphi(zv)kopr(tec)cz


function SendMail_Direct(Prijemce, Predmet, TextMailu,
FromMail, SMTPHost, SMTPUcet, SMTPHeslo: String;
SLsoubor: TStringList): Boolean;
var
m:TMimemess;
l:tstringlist;
p: TMimepart;
tmp: TMemoryStream;
i: integer;
S: string;
st: TStrings;
begin
m:=TMimemess.create;
l:=tstringlist.create;
tmp := TMemoryStream.Create;
try
p := m.AddPartMultipart('mixed', nil);

m.header.from:= CharsetConversion(FromMail, GetCurCP, UTF_8);
m.header.tolist.add(Prijemce);
m.header.subject := CharsetConversion(Predmet, GetCurCP, UTF_8);
m.header.CharsetCode := UTF_8;

st := TStringList.Create;
st.add(TextMailu);

m.AddPartText(st, p);

for i := 0 to SLsoubor.Count - 1 do
begin
S := SLsoubor.Strings[i];
m.AddPartBinaryFromFile(S, p);
end;

m.EncodeMessage;

Screen.Cursor := crHourGlass; //presypaci hodiny

if SendToRaw(FromMail, Prijemce, SMTPHost, m.lines, SMTPUcet, SMTPHeslo)
then Application.MessageBox(
PChar('E-mail pro "' + Prijemce + '" byl uspesne odeslan''),
'Vsechno OK', mb_OK)
else Application.MessageBox(
PChar('E-mail se nepodarilo odeslat.'), 'Chyba', mb_OK +
mb_IconError);
finally
tmp.Free;
m.free;
l.free;
Screen.Cursor := crDefault; //normalni kurzor
end;

Jak zobrazit upozorneni na USB zarizeni pri vypnut

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 24.1.2008 16:11:01

Milos J. Hrach dne 24 Jan 2008 v 11:20:

> flashka se hlasi jako disk. Tak bych zkusil pri vypinani pocitace
> pristoupit na tento disk/cist data z tohoto zatrizeni a kdyz ziskam
> odezvu, ze to jde tak bych vypsal prislusne upozorneni.

No jo, jenze na siti je zhruba 130 pocitacu. Lide maji namapovane disky (ruzne skupiny uzivatelu ruzne). Pocitace jsou ruzne
(1-2 lokalni partition, 0-1 CD mechanik). Flashky a ctecky karet obsadi tim padem ruzna pismenka, takze netusim, ktere
pismeno testovat. Dalsi vec je, ze sluzba ta pismenka mozna uvidi jeste jinak nez uzivatel (napr. sluzba nevidi pismenka
namapovanych sitovych disku... ostatne nevidi je ani win xp, protoze klidne priradi ctecce pametovych karet pismenko, ktere
uz ma sitovy disk).

Karel Rys

Pretypovani array of byte -> single

[*] Jan Plisek <plisek(zv)spse(tec)cz> - 29.1.2008 07:17:04

Radek Tomsik napsal(a):
> Ahoj,
>
> potreboval bych trosku nakopnout spravnym smerem jak na pretypovani. Morim se
> s tim uz docela dlouho, ale napady dosly. Mozna je to trivialita, ale uz nevim.
>
> Mam pole 4 bytu, ve kterem je nejaka hodnota. Dejme tomu $C2, $ED, $40, $00
> Jak k tomuto poli pristoupit, abych dostal decimalni vyjadreni desetinneho
> cisla, ktere tyto byty vyjadruji ?
>
> Diky
> Radek
>
>
> --
> Open WebMail Project (http://openwebmail.org)
>
>
>
Udelal bych to takto:

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
p:array[1..4] of byte = ($C2, $ED, $40, $00);
r:single absolute p;

begin
writeln(r);
readln;
end.

J. Plisek

Pretypovani array of byte -> single

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 29.1.2008 07:09:03

>> Mam pole 4 bytu, ve kterem je nejaka hodnota. Dejme tomu $C2, $ED, $40,
>> $00
>> Jak k tomuto poli pristoupit, abych dostal decimalni vyjadreni
>> desetinneho
>> cisla, ktere tyto byty vyjadruji ?

myslim takto a v edit1 byste pak mel prislusny single.
Dalik.

procedure prevod;
var
b: array[1..4] of byte;
ps: ^single;
begin
ps:=(zv)b;
edit1.text:=floattostr(ps^);
end;

Pretypovani array of byte -> single

[*] Pavel Smerk <xsmerk(zv)fi.muni(tec)cz> - 29.1.2008 00:00:33

On Mon, Jan 28, 2008 at 11:32:31PM +0100, Radek Tomsik wrote:
> potreboval bych trosku nakopnout spravnym smerem jak na pretypovani. Morim se
> s tim uz docela dlouho, ale napady dosly. Mozna je to trivialita, ale uz nevim.
>
> Mam pole 4 bytu, ve kterem je nejaka hodnota. Dejme tomu $C2, $ED, $40, $00
> Jak k tomuto poli pristoupit, abych dostal decimalni vyjadreni desetinneho
> cisla, ktere tyto byty vyjadruji ?

V pascalu by to byl variantni zaznam, mozna je neco podobneho i v delphi,
ale netusim, delphi malo znam.

Pro priklad demonstrace zaokrouhlovani pri pocitani s floating point

uses crt;
type c = record
case boolean of
false : (x : real);
true : (a : array [1 .. 6] of byte);
end;
var ca, cb, cc : c;
i : integer;

begin
clrscr;
ca.x := 1.11;
cb.x := 1.22;
cc.x := 2 * ca.x - 1;
if (cb.x <> cc.x) then begin
{z hlediska aritmetiky by nemelo nastat, ze :-}
for i := 1 to 6 do
writeln(cb.a[i], ',', cc.a[i]);
writeln(cb.x, ',', cc.x);
end;
readln;
end.
S pozdravem, P.

Pretypovani array of byte -> single

[*] Radek Tomsik <radek(zv)tomsige(tec)cz> - 28.1.2008 23:32:31

Ahoj,

potreboval bych trosku nakopnout spravnym smerem jak na pretypovani. Morim se
s tim uz docela dlouho, ale napady dosly. Mozna je to trivialita, ale uz nevim.

Mam pole 4 bytu, ve kterem je nejaka hodnota. Dejme tomu $C2, $ED, $40, $00
Jak k tomuto poli pristoupit, abych dostal decimalni vyjadreni desetinneho
cisla, ktere tyto byty vyjadruji ?

Diky
Radek


--
Open WebMail Project (http://openwebmail.org)

Vista crashes

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 28.1.2008 14:23:51

Zdravim,


uz jste nekdo pouzil informace o padech na Vistach z Winqual serveru pro
dohledani
chyb v delphi generovanem exaci ?


Jde me o to zda jsou nejake vhodne nastroje pro pripadne analyzy, doporucene
nastaveni kompilatoru atd....


Diky
Radek Voltr
Xacti

Vypocitany udaj

[*] Jan Stefec <stefec(zv)algo-hk(tec)cz> - 25.1.2008 08:22:11

Ahoj,
muzu na Firebirdu 2.0 do vypocitaneho udaje ve vete dostat data z jine
tabulky (treba nejakym selectem...), nebo jde pouzivat pouze udaje z te
konkretni vety?
Honza

Servis NT a log so sys.udalosti

[*] Petr Mathon <dveste zar(zv)quick(tec)cz> - 27.1.2008 14:04:05

Zdravim
Jak u ServisuNT vytvorit v .rc vlastni ID zprav pro zapis logu do systemove udalosti a jde vytvorit vlastni LOG aplikace v systemu aby se zpravy servisu nezapisovali do hromadneho logu "Aplikace"?

PM


Prevod textu z UNICODE

[*] delphin(zv)post(tec)cz - 25.1.2008 15:22:45

> no toto, tak vsechno je vlastne spravne, jen vysledek je blbe.

Presne tak.

> Jestli jsem to pochopil, tak to mam prevest do jineho kodovani
> nebo pouzit font s jinym kodovanim.

Prekvapive to musite sjednotit. Jestli mate mechanismus, ktery kresli na
obrazovku znaky v ANSI 1257, tak mu logicky nesmite predhazovat znaky v
ISO-8859-4.

Rovnou vam dopredu poradim, ze jestli chcete videt na obrazovce ceske zcr s
hackem a do toho u with ogonek, tak to pres ansistring a ne-unicode
komponenty nepujde. Nicmene Windows to podporuje a Delphi na to jde
priohnout.

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 25.1.2008 15:18:45

Tak, cele to bylo o tom, ze jsem skutecne prevadel do jineho kodu,
nez jsem pak zobrazoval.( A to jsem si to kontroloval !!??)
Chyba byla zase u mne.

Diky moc

Pavel

>> Z Excelu leze Unicode a #$0173 je "U WITH OGONEK, LATIN SMALL LETTER".
>>
>>
>> V ISO-8859-4 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 249 $F9 a je to
>> spravne.
>>
>>
>> V ANSI 1257 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 248 $F8 a je to
>> spravne.
>>
>> Smerodatne je pochopitelne cislo, nikoliv to, co vidite v Delphi. Samozrejme
>> kdyz ISO-8859-4 zobrazite v ANSI 1257 dostanete nesmysly, to je jasne jiz z
>> principu.
>>
>>

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 25.1.2008 14:58:43

Ha,

delphin(zv)post(tec)cz napsal(a):
> Z Excelu leze Unicode a #$0173 je "U WITH OGONEK, LATIN SMALL LETTER".
>
>
> V ISO-8859-4 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 249 $F9 a je to
> spravne.
>
>
> V ANSI 1257 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 248 $F8 a je to
> spravne.
>
> Smerodatne je pochopitelne cislo, nikoliv to, co vidite v Delphi. Samozrejme
> kdyz ISO-8859-4 zobrazite v ANSI 1257 dostanete nesmysly, to je jasne jiz z
> principu.
>
>

no toto, tak vsechno je vlastne spravne, jen vysledek je blbe.

Jestli jsem to pochopil, tak to mam prevest do jineho kodovani
nebo pouzit font s jinym kodovanim.

Zkusim to, diky.

Pavel

Prevod textu z UNICODE

[*] delphin(zv)post(tec)cz - 25.1.2008 14:44:42

> Nejsem si jisty nicim.
> Z Excelu mam zobrazen text: "lap" + "u je s ocaskem"
> prenesu do programu a mam: #0'l'#0'a'#0'p'#1's'
>
> 0,108,0,97,112,1,115

Z Excelu leze Unicode a #$0173 je "U WITH OGONEK, LATIN SMALL LETTER".

> pouziju charset podle 'ISO-8859-4' (zkousel jsem i jine)
>
> prevedu do ansi a mam: 'lap'+ u s krouzkem
> (Stredoevropske kodovani)
> 'lap'+ l
> preskrtnute (Pobaltske kodovani )
> 108,97,112,249

V ISO-8859-4 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 249 $F9 a je to
spravne.

> pritom znak "u s ocaskem" jsem nasel s kodem #248

V ANSI 1257 je "U WITH OGONEK, LATIN SMALL LETTER" ciselne 248 $F8 a je to
spravne.

Smerodatne je pochopitelne cislo, nikoliv to, co vidite v Delphi. Samozrejme
kdyz ISO-8859-4 zobrazite v ANSI 1257 dostanete nesmysly, to je jasne jiz z
principu.

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 25.1.2008 14:16:39

Promin, ale nejak nerozumim co jsi chtel rict.

Stanislav Smejkal napsal(a):
>> Nejsem si jisty nicim.
>> Z Excelu mam zobrazen text: "lap" + "u je s ocaskem"
>> prenesu do programu a mam: #0'l'#0'a'#0'p'#1's'
>>
>> 0,108,0,97,112,1,115
>>
>> pouziju charset podle 'ISO-8859-4' (zkousel jsem i jine)
>>
>> prevedu do ansi a mam: 'lap'+ u s krouzkem
>> (Stredoevropske kodovani)
>> 'lap'+ l
>> preskrtnute (Pobaltske kodovani )
>> 108,97,112,249
>>
>> pritom znak "u s ocaskem" jsem nasel s kodem #248
>>
>
> Indicie 1: Vypada to na dvoubajtovy unicode.
> Indicie 2: Podle mapy znaku je v unicode znak 0x0173 prave u s ocaskem,
> konkretne U+0173 "Male pismeno latinky u s ocaskem vpravo".
>
> Je to unicode.
>
> Standa
>
>
>

Prevod textu z UNICODE

[*] Stanislav Smejkal <smejkal(zv)smejkal(tec)com> - 25.1.2008 13:56:38

> Nejsem si jisty nicim.
> Z Excelu mam zobrazen text: "lap" + "u je s ocaskem"
> prenesu do programu a mam: #0'l'#0'a'#0'p'#1's'
>
> 0,108,0,97,112,1,115
>
> pouziju charset podle 'ISO-8859-4' (zkousel jsem i jine)
>
> prevedu do ansi a mam: 'lap'+ u s krouzkem
> (Stredoevropske kodovani)
> 'lap'+ l
> preskrtnute (Pobaltske kodovani )
> 108,97,112,249
>
> pritom znak "u s ocaskem" jsem nasel s kodem #248

Indicie 1: Vypada to na dvoubajtovy unicode.
Indicie 2: Podle mapy znaku je v unicode znak 0x0173 prave u s ocaskem,
konkretne U+0173 "Male pismeno latinky u s ocaskem vpravo".

Je to unicode.

Standa

Prevod textu z UNICODE

[*] Pavel Gazda <pavel gazda(zv)datasw(tec)cz> - 25.1.2008 12:32:32

Diky za zajem

>> Zkusim to uvest podrobneji:
>> Z Excelu vytahnu text a pak postupuju takto:
>>
>> Charset := GetCPFromID(CharsetName);
>> StU := WideToString(Matice[R,S]);
>> StA := CharsetConversion(StU,UCS_2,Charset);
>>
>> kde Matice je array of variant
>> CharsetName je 'ISO-8859-4'
>>
>> a spatne se prevede znak "u s ocaskem" ( najaka nalezena cisla k
>> tomuto znaku: 173, $F8 ), ktery se prevede na znak "preskrtnute l" (
>> nebo jinak misto "r s hackem" mi da "u s krouzkem").
>>
> Jsi s jisty spravnou cilovou kodovou strankou, jestli obsahuje
> vsechny potrebne znaky? Ja tam nejak znaky jako preskrtnule l nebo r
> s hackem nevidim.
>
> neni problem treba v tom,z e se to spravne prevede, ale ty se na to
> koukas spatne? Treba Delphi jaksi predpokladaji, ze data v
> ansistringu jsou v ANSI kodovani, a tak ti zobrazi neco uplne jineho.
>
Nejsem si jisty nicim.
Z Excelu mam zobrazen text: "lap" + "u je s ocaskem"
prenesu do programu a mam: #0'l'#0'a'#0'p'#1's'

0,108,0,97,112,1,115

pouziju charset podle 'ISO-8859-4' (zkousel jsem i jine)

prevedu do ansi a mam: 'lap'+ u s krouzkem
(Stredoevropske kodovani)
'lap'+ l
preskrtnute (Pobaltske kodovani )
108,97,112,249

pritom znak "u s ocaskem" jsem nasel s kodem #248


Diky za nakopnuti

Pavel

Prevod textu z UNICODE

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 25.1.2008 11:28:27

> Zkusim to uvest podrobneji:
> Z Excelu vytahnu text a pak postupuju takto:
>
> Charset := GetCPFromID(CharsetName);
> StU := WideToString(Matice[R,S]);
> StA := CharsetConversion(StU,UCS_2,Charset);
>
> kde Matice je array of variant
> CharsetName je 'ISO-8859-4'
>
> a spatne se prevede znak "u s ocaskem" ( najaka nalezena cisla k
> tomuto znaku: 173, $F8 ), ktery se prevede na znak "preskrtnute l" (
> nebo jinak misto "r s hackem" mi da "u s krouzkem").

Jsi s jisty spravnou cilovou kodovou strankou, jestli obsahuje
vsechny potrebne znaky? Ja tam nejak znaky jako preskrtnule l nebo r
s hackem nevidim.

neni problem treba v tom,z e se to spravne prevede, ale ty se na to
koukas spatne? Treba Delphi jaksi predpokladaji, ze data v
ansistringu jsou v ANSI kodovani, a tak ti zobrazi neco uplne jineho.

--
Lukas Gebauer.

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

QuickReport, srazeny tisk z .qrp

[*] Jaromir Cermak <cermak(zv)procom(tec)cz> - 25.1.2008 10:48:24

Ahoj vsichni

Pouzivam D7ent, Quick report 3.5.0 standard. Sestavu vytisknu a ulozim do souboru, pak ji natahnu ze souboru a znovu vytisknu. Kdyz to udelam, vytizkne se zmensena v urcitem pomeru proti originalu. Da se s tim udelat neco, aby primy tisk a dotisk byly stejne? Tiskarna i papir v ni jsou stejne, stejny je i format papiru nastaveny na reporu.

Nevi nekdo proc se tisk a dotisk chovaji ruzne? Co se s tim da delat?

Dekuji za jakoukoli radu.

Jaromir Cermak

Jak zobrazit upozorneni na USB zarizeni pri vypnut

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 25.1.2008 07:30:07

> No jo, jenze na siti je zhruba 130 pocitacu. Lide maji namapovane disky
> (ruzne skupiny uzivatelu ruzne). Pocitace jsou ruzne
> (1-2 lokalni partition, 0-1 CD mechanik). Flashky a ctecky karet obsadi
> tim padem ruzna pismenka, takze netusim, ktere
> pismeno testovat. Dalsi vec je, ze sluzba ta pismenka mozna uvidi jeste
> jinak nez uzivatel (napr. sluzba nevidi pismenka
> namapovanych sitovych disku... ostatne nevidi je ani win xp, protoze
> klidne priradi ctecce pametovych karet pismenko, ktere
> uz ma sitovy disk).

A co otestovat vsechna vymenitelna media jestli na nich je najaky soubor a
kdyz ano, tak ohlasit hlasku.
Schematicky postup:

uses Windows;
do stringlistu nacist seznam disku (pismen) pomoci GetLogicalDriveStrings
v cyklu zjistit typ vsech disku pomoci GetDriveType, pricemz typy mohou
byt
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;

a u pozadovanych typu otestovat napr. pomoci FindFirst *.* Marek Dostal
D7Prof, WinXP, FireBird 1.5, 2.0



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