[ pakis @ 17.10.2004. 12:36 ] @
Cenjene kolege,

imam sledeći problem: kako naterati Delphi 7 da vrednosti unete na DBgrid prosledi
kao latin2 karaktere bazi a ne kao unicode. Koristim server 2003, clx, dbexpress,
openodbc, postgresql 8 beta2 za win.

Postgresql može da radi i kao unicode i u tom slucaju dobijam poruku da vrednosti
iznad 0x1000 nisu podržane u postgres unicodu.

Ako koristim latin2 onda dobijam poruku : ignoring unconvertible utf-8 character ...

Problem je u tome da Delphi bazi prosledjuje unicode karaktere koji u postgres
unicodeu nisu podržani ili ako se radi o latin2 nemože da konvertuje windows (delphi)
unicode na postgresov unicode
Ovo mi je potrebno zbog šđžčć...

Probao sam da postavim font na dbgridu, Application.font, localeset na sqlconnection -u,
iskljucio code conversion table na windowsu, ali ništa ne pomaže.

Preko psql -a i pgAdmin -a mogu da unesem podatke bez problema.
Bazu sam inicializovao sa initdb -E latin2 testdata
a locale se automatski postavlja na (Latin)_Serbia.1250


Imate li neki predlog ili bilo koje rešenje za unos yu karaktera na postgresql preko
delphi 7 okruženja.

Unapred hvala
Pavel

[ morlic @ 17.10.2004. 22:14 ] @
Dok se ne javi neko ko radi sa postgreSql-om ja cisto da pitam da li si probao da ne stavljas jezik u bazi i aplikaciji tj. da radi po default-u, pa kako se snadje sa nasim slovima? Da li to moze i ako moze kako se ponasa?
[ pakis @ 17.10.2004. 23:08 ] @
Hvala na odgovoru,

probao sam i bez postavljanja fonta u aplikaciji (jezik Serbian Latin je postavljen
na Windowsu, dali se i u Delphi-u postavlja negde jezik ?)

Isti problem je i sa Delphi 6 i to sam probao u obe verzije postgresql -a (latin i uni)

Postgresql na cygwin-u (unicode) javlja invalid encoding for unicode ;)

Trebalo bi nekakako naterati Delphi da bazi(drajveru) šalje latin2 karaktere ...
[ morlic @ 18.10.2004. 16:45 ] @
Da nije problem u clx-u? Probaj da napravis Win32 verziju. Taj drajver za dbx nije sertifikovan? Ima li drugih komponenti za pristup toj bazi? Probaj SQLDirect sa http://www.sqldirect-soft.com/ .
[ pakis @ 18.10.2004. 19:30 ] @
Probao sam clx i Zeos komponente (zamenjuju open odbc i dbexpress) i radi...
dbexpress nevrsi nikakvu konverziju karaktera a p.p da to neradi ni open odbc...

Zeos komponente mi bas i ne odgovaraju ali jesu poslednja opcija...

Ako neko zna, zanima me dali u najnovijem delphiju (7.1) možda postoji dbexpres driver
za PostgreSql (u kylix-u 3 ga ima), to bi bilo najbolje rešenje ili
ako neko poseduje vitavoom driver i voljan je da ga pozajmi ;)

[ morlic @ 18.10.2004. 20:51 ] @
Koliko ja vidim nema drajvera u 7.1. Pa probaj SQLDirect...
[ pakis @ 18.10.2004. 21:19 ] @
Sql Direct koliko vidim je BDE light znači neradi na Kylix-u t.j. Linuxu a to mi treba ... ;o(



[ morlic @ 18.10.2004. 22:56 ] @
Izvini, u pravu si, prevideo sam tu stvar. Sta da ti kazem...:) Nije da nismo probali. Sta ti smeta kod Zeosa?
[ pakis @ 19.10.2004. 12:52 ] @
Probao sam istu stvar i na XP -u i isto neradi, ali problem je da neradi ni
preko BDE -a , sa bdeom umesto zu slova dobijam '?' (znaci upise u bazu)

Pa novo pitanje je dali i kako može preko delphija da se koristi postgres sa yu slovima ???
Hvala na odgovoru

Pavel
[ morlic @ 19.10.2004. 15:32 ] @
Koliko se ljudi do sada javilo za tvoj problem mislim da od direktnog odgovora nema nista :( Nadam se da ce me neko demantovati :)

Da li imas source drajvera za dbx za psql bazu, pa da sam sredis problem?
[ pakis @ 26.10.2004. 21:21 ] @

REŠENJE PROBLEMA (delimično):

Yu slova se dobijaju pomoću dbexpressa sa Vitavoom driverom za dbexpress (shareware) ili
sa Zeos komponentama (direktan pristup postgresu) u oba ova slučaja se ne koristi psqlodbc.

Očigledno je problem u psglodbc driveru a rešenje je korišćenje unicode psql drivera,
na netu postoji PGODBC30_07030208.exe.

Uz podešavanja: baza na latin2, DNS običan PostgresSQl (ne unicode), COnnect Settings
za odbc: set client_encoding to 'win1250' dobijaju se yu slova i na dbExpress-u (uz dbxoodbc)
i BDE-u.

Just my 2c :o)