[ delalt @ 12.06.2006. 18:55 ] @
Postoji li besplatna alatka za Firebird koja može prikazivati i preko koje se
mogu unositi u bazu unicode (ili utf8) karakteri.
Znam za IBExpert, ali besplatna verzija ima onemogućenu tu opciju.
Probao sam FlameRobin, ali nešto ne ide...

Ako može, samo iz iskustva, ko je već probao...
Ne mora biti ni alat za administraciju, može i nekakav utility,
samo mi ova mogućnost treba, ali da provjereno radi korektno.
[ mbabuskov @ 21.07.2006. 10:38 ] @
FlameRobin tek od verzije 0.7.2 to radi kako treba. Preporucujem ti da koristis samo UTF8, jer Firebird ima ozbiljne bugove sa UNICODE_FSS setom.

Ja sam testirao/pravio Linux verziju FR-a, i tamo radi UTF8 perfektno. Za Windows ne znam (Imam samo staru 98-cu), ali kazu da radi.

Probaj pa vidi.
[ kvik @ 30.07.2006. 14:37 ] @
Ma ljudi, ja imam strasan problem sa Firebirdom, kada je unicode u pitanju. Postoje TNT unicode konmponente za Delphi (edit, memo , buttons i ostalo),pa sam to resio, ali kada zelim da povezem web interface preko JayBirda i nakon sto setujem web stranu na UTF8 dobijam samo ansi slova, a sve ostalo su "kuke i kvake".

Elem, Google-ao sam nekih 20 dana na webu i nista nisam pronasao.

Dakle, ili je to toliko lagano da niko se time nije bavio, ili sa tim nema resenja.
Napisao sam prostu JSP stranu na kojoj ima jedan edit i jedan memo.

Probao sam i podesavanje charseta . umesto UNICODE FSS prebacivao na UTF8, ali se sex nastavlja na isti nacin.

Ne bude mi tesko, nego zakacim i MYSQL datasource i PostgreSQL na istu stranu u upisujem paralelno u tri iste tabele u tri razlicite baze. Ove dve rade savrseno, dok Firebird .ebe pa rastura.
Medjutim kako Firebird deklasira ovu dvojicu kada je brzina i velicina baze u pitanju, moram da resim ovo kako znam i umem.

Ima li neko ideju kako prevazici problem.

Probao i pregledao sam;

Najnoviju verziju Jaybirda
Tomcat 5.0.18
Tomcat 4
J2sdk 1.5
J2sdk 1.4

Jedino sto sam uspeo da iz IB experta uz pomoc unicode editora upisem u string i u blob unicode text, pa da ga web strana savrseno procita

[ mbabuskov @ 30.07.2006. 22:34 ] @
Citat:
kvik: Ma ljudi, ja imam strasan problem sa Firebirdom, kada je unicode u pitanju. Postoje TNT unicode konmponente za Delphi (edit, memo , buttons i ostalo),pa sam to resio, ali kada zelim da povezem web interface preko JayBirda i nakon sto setujem web stranu na UTF8 dobijam samo ansi slova, a sve ostalo su "kuke i kvake".


Ako sa TNT upises, da li to vidis i na web strani i iz IB Experta? Ili samo ne vidis ono sto se upise kroz web browser?

Citat:
Umesto UNICODE FSS prebacivao na UTF8, ali se sex nastavlja na isti nacin.


Prebacivao? To sam primetio da kreira probleme, jer Firebird ne izmeni vrednosti u samoj koloni. Dakle, bolje da kreiras novu kolonu (narocito kod testiranja gde ti nisu vazni podaci). UNICODE_FSS sigurno ne radi dobro, i preporuka je da se ne koristi.

Citat:
Jedino sto sam uspeo da iz IB experta uz pomoc unicode editora upisem u string i u blob unicode text, pa da ga web strana savrseno procita


A kako u tom IB Expertovom editoru izgleda ono sto ti kucao kroz Delphi program?

Fazon je sto postoje dva (tj. tri, ali jedan nije bitan) karakter seta: set konekcije i set same kolone u koju upisujes vrednosti. Ako nisu isti, onda Firebird "prevodi" iz jedne u drugu kodnu stranu, i tu cesto gresi. Dakle, uzmes i definises:

CREATE TABLE test1
(
s varchar(20) character set utf8;
);

Onda stavis da ti je connection charset isto utf8, i upises vrednost. Kako se to radi kod JayBirda ne znam, ali je verovatno to jedan od parametara same konekcije: path, username, password, role, charset, ... (bar je tako sa ostalim bibliotekama).

Mada, moguce da je neki bug u JayBirdu, ne znam. Fazon je sto JB ne koristi FB client library (gds.dll, fbclient.dll, itd.) vec ima implementiran svoj wire protokol da bi bio kompatibilan sa JDBC.
[ delalt @ 31.07.2006. 16:19 ] @
Citat:
mbabuskov: FlameRobin tek od verzije 0.7.2 to radi kako treba. Preporucujem ti da koristis samo UTF8, jer Firebird ima ozbiljne bugove sa UNICODE_FSS setom.

Ja sam testirao/pravio Linux verziju FR-a, i tamo radi UTF8 perfektno. Za Windows ne znam (Imam samo staru 98-cu), ali kazu da radi.

Probaj pa vidi.

Koristim XP, Firebird 2.0 i dešava mi se ovo (ona tri reda nisam ubacio koristeći FlameRobin):



Font grida sam probavao mijenjati svakako (... unicode), ali ne mogu da dobijem ono
što bi trebalo.
Može li malo detaljniji opis, korak po korak, od kreiranja baze, polja, pa do podešavanja fonta grida,
vjerovatno stalno negdje griješim, a nikako da otkrijem.
Usput, da li bi se moglo u budućim verzijama omogućiti direktan upis i izmjenu u gridu,
bez korištenja INSERT INTO ...
Ovo puno ubrzava rad pri nekakvim probama i testovima.


[Ovu poruku je menjao delalt dana 31.07.2006. u 17:32 GMT+1]
[ mbabuskov @ 31.07.2006. 19:18 ] @
Citat:
Koristim XP ...
Može li malo detaljniji opis, korak po korak, od kreiranja baze, polja, pa do podešavanja fonta grida,


Problem je sto ja nemam XP, a i da nadjem/instaliram, morao bi da stavim i M$ Visual Studio jer ni MinGW ni Borland ne podrzavaju Unicode. Malo prevelika gnjavaza trenutno (najblize sto imam je Windows 98, ali tamo nema Unicode-a), ali probacu da nadjem vremena i za to u buducnosti.

U principu, FlameRobin na Linuxu radi sa UTF8 i to bez setovanja fonta za grid i slicno. E sad, izem ga, siguran si da je verzija 0.7.2 Unicode? Kada je to testirano, Michael je napravio screenshotove i na Windowsu XP (Firebird je bio 2.0 beta 1 u to vreme):

http://www.flamerobin.org/imag...s/0.7.1/winxp/sqlexecution.png

Nemoj da te zbunjuje verzija 0.7.1, screenshotovi su napravljeni par dana pred izlazak 0.7.2. Evo isto to i na Linuxu:

http://www.flamerobin.org/imag...gtk2/charsets_autocomplete.png

Citat:
Usput, da li bi se moglo u budućim verzijama omogućiti direktan upis i izmjenu u gridu,
bez korištenja INSERT INTO ...
Ovo puno ubrzava rad pri nekakvim probama i testovima.


To je glavni feature za verziju 0.8.0. Inace, trenutna razvojna verzija (u SVN repozitorijumu) ima i UPDATE ... varijantu kao za INSERT.

Ovde se moze videti kakvi su nam dalje planovi:
http://www.flamerobin.org/dokuwiki/doku.php?id=wiki:roadmap
[ kvik @ 02.08.2006. 10:13 ] @
Mislim da treba da pričamo o tome kako korisnici preko porgrama upisuju utf vrednosti, bilo da su to .exe programi ili web servis ili jsp strane.

Znaci kako napraviti software koji u sto vreme handla i web i binarni (exe) interface, tj veže se na istu bazu, a sve to radi u unicode-u.

Nije tacno da Borland ne podrzava unicode. Pa kako bi onda bile napisane tnt componente. Elem, kad se definisu klase TWideChar,TWideString i TWideStrings i one se poture kojekakvim Caption, Lines i Text propertijima, ocas posla se dobije binarni program,

Ja sam baš juče u svom pohodu na Unicode provalio jednu sitnicu (u neku ruku),

U pitanju je JSP tehnologija.

Naime, ukoliko se definiše page encoding jsp strane na UTF8, a definiše se page encoding na included jsp stranama, tada tomcat pobrljavi i ja dobijam kuke i kvake.

To sam provalio tako što sam iz posebnog unita koji mi handla pozive ka bazi, prekopirao u main unit (index.jsp) i op, provalih. Čirilica i hebrejski i ruska ćirilica, paralelno u jednom tekstu su mi se bespekorno.

E, sad, kako i Firefox i Internet Explorer encodiraju unicode kao &#FFFF format, to isto se upisuje u bazu, tako da u edit poljima u delphiju dobijem to isto.

Šta dalje raditi. Kako u Firebird SQL u konvertovati te karaktere. (u pitanju u textualna BLOB polja)?
[ delalt @ 02.08.2006. 14:35 ] @
Citat:
kvik: Mislim da treba da pričamo o tome kako korisnici preko porgrama upisuju utf vrednosti, bilo da su to .exe programi ili web servis ili jsp strane.

Pošto se trenutno izgleda bavimo sličnim problemima, da li si koristio FlameRobin
na XP-u, probaj molim te pa kratko opiši...
Meni i treba nekakva alatka kojom bih mogao da testiram druge programe (moje).
Citat:
mbabuskov:
U principu, FlameRobin na Linuxu radi sa UTF8 i to bez setovanja fonta za grid i slicno. E sad, izem ga, siguran si da je verzija 0.7.2 Unicode? Kada je to testirano, Michael je napravio screenshotove i na Windowsu XP (Firebird je bio 2.0 beta 1 u to vreme)

Skinuo sam zadnju verziju FlameRobin-a, XP je sa SP2 i zadnja verzija Firebird 2.0 i dobio onakav rezultat.
Da nema nešto što bi trebalo podesiti u XP (Regional settings ili nešto drugo, nemam instaliran Office ni VB...)?


[Ovu poruku je menjao delalt dana 02.08.2006. u 16:13 GMT+1]
[ kvik @ 02.08.2006. 17:58 ] @
Ajd mi samo malo bolje pojasni pitanje. Sta testiras i sta upisujes?
[ delalt @ 02.08.2006. 19:02 ] @
Citat:
kvik: Ajd mi samo malo bolje pojasni pitanje. Sta testiras i sta upisujes?

Pa, ne mogu nikako kod sebe da natjeram FlameRobin i da pomoću njega
upišem bilo kakve utf8 znakove u već postojeću tabelu. Na slici koju sam dao gore iznad u prethodnom postu
tamo gdje su upitnici trebalo bi da bude nešto na ćirilici. Latinica u prvom redu se vidi dobro.
Znači, ne prikazuje se uopšte dobro ni ono što je već ranije u bazi nekako unijeto u polja UTF8 i UNICODE.
Drugi je problem da ne mogu ništa ni da upišem u novi red (prikazano na drugom dijelu slike).
Znači pokušao sam da u dva polja upišem 'PROBA PROBA', ali mi odbija i prikaže grešku kao na toj istoj slici.
Čak i onaj drugi ćirilični PROBA zbrlja i ubaci nekakve čudne znake i u samom editoru.
Meni bi normalno trebalo kasnije da probam i druge jezike, ali pošto neke ne poznajem uopšte (kineski npr.),
a treba da to probam u svojim programima, onda mi je potrebna nekakva isprobana, sigurna alatka,
da mogu kasnije da uporedim unose i prikaz u jednom i drugom.

Konkretno, ako možeš da opišeš kako ti kreiraš sličnu onakvu bazu (ako može SQL kod) i
da li šta posebno treba podesiti FlameRobin-u da bih mogao da čitam i pišem normalno UTF8...
Milan Babuskov je fino prikazao sličicama da to može, ali ja to nikako da dobijem???
[ Mr. Rejn @ 02.08.2006. 22:21 ] @
Citat:
mbabuskovFirebird ima ozbiljne bugove sa UNICODE_FSS setom.
Ja sam testirao/pravio Linux verziju FR-a, i tamo radi UTF8 perfektno.

Pitao bih Babuskova sta tacno zamera UNICODE_FSS setu i da li je imao nekih problema sa njim na Firebirdu?
Ja sam testirao ovaj set sa cirilicom na Interbase 6.5/BCB6/IBX/TNT komponente (TntEdit i TntDBGrid) kombinaciji i sve mi izgleda regularno (doduse nisam koristio u produkciji i na Firebird-u)...

[Ovu poruku je menjao Mr. Rejn dana 03.08.2006. u 00:06 GMT+1]
[ mbabuskov @ 03.08.2006. 16:54 ] @
Citat:
Mr. Rejn: Pitao bih Babuskova sta tacno zamera UNICODE_FSS setu i da li je imao nekih problema sa njim na Firebirdu?
Ja sam testirao ovaj set sa cirilicom na Interbase 6.5/BCB6/IBX/TNT komponente (TntEdit i TntDBGrid) kombinaciji i sve mi izgleda regularno (doduse nisam koristio u produkciji i na Firebird-u)...


Najveci problem je sto ne respektuje duzinu polja. Recimo ako definises kolonu kao CHAR(20) CHARACTER SET UNICODE_FSS, on ce ti u bazi kreirati polje od 60 bajtova (to je ok), ali ce ti na primer dozvoliti da uneses string od 25 karaktera u to polje ako mu to binarno stane (ako su neki od karaktera iz ASCII skupa, on racuna kao da zauzimaju jedan bajt - a ne jedan karakter).

Tu su i drugi problemi: foreign key ogranicenja ne rade nekada; ako imas indekse na toj koloni moze da ti se desi da uopste ne izbaci neke rekorde ako WHERE klauzula gadja taj index; ako se koristi LIKE ima cesto problema da ne uradi dobro poredjenje, itd.

[ Mr. Rejn @ 04.08.2006. 14:23 ] @
Sta onda preporucujes kao karakter set? Sta ti koristis (ako uopste koristis) za Unicode na Firebird-u?
[ mbabuskov @ 05.08.2006. 12:50 ] @
Citat:
Mr. Rejn: Sta onda preporucujes kao karakter set? Sta ti koristis (ako uopste koristis) za Unicode na Firebird-u?


Mozes koristiti UTF8 bez ikakvih problema. Jedino sto ti je minimalna verzija Firebird 2.0. RC3 je dosta stabilan, a uskoro ce izaci RC4. Jos uvek ga ne koristim u produkciji, ali sam u poslednjih par meseci dosta testirao. Mnoge aplikacije su mi jos na verziji 1.0, pa planiram da ih prebacim na 2.0 kada izadje finalna verzija.

Ja licno koristim WIN1250. Ni jedna od aplikacija koju sam pravio mi nije jos zahtevala cirilicu, a sa WIN1250 nasa latinicna slova rade odlicno i pod Linuxom i pod Windowsom. Inace, za nasu ciliricu se koristi WIN1251. Jedini problem u odnosu na UTF8 sto ne mozes u istoj koloni da imas i ciliricna i latinicna slova, ali mislim da to ionako nema puno smisla. Naravno, u bazi mozes da imas razlicitosti, samo kod definicije kolone dodas CHARACTER SET WIN1251 i sl.
[ mbabuskov @ 05.08.2006. 14:46 ] @
Citat:
delalt: Koristim XP, Firebird 2.0 i dešava mi se ovo (ona tri reda nisam ubacio koristeći FlameRobin):



Font grida sam probavao mijenjati svakako (... unicode), ali ne mogu da dobijem ono
što bi trebalo.
Može li malo detaljniji opis, korak po korak, od kreiranja baze, polja, pa do podešavanja fonta grida,
vjerovatno stalno negdje griješim, a nikako da otkrijem.


Evo konacno sam instalirao sve na jedan XP i probao.

Ovaj problem "statement cannot be 0" se desava ako connection charset nije dobro podesen.

Dakle, ovako, ako npr. stavis da ti je baza UNICODE_FSS ili da je makar samo neka kolona UNICODE_FSS, da bi nju dobro video, moras i FlameRobinu da stavis da ti je connection charset isto UNICODE_FSS. To ti je onaj charset sto se vidi na Database Registration Info ekranu. Slicno vazi i za UTF8.

Ako ti sama baza nije UNICODE_FSS, vec si samo kreirao jednu tabelu za isprobavanje u bazi kojoj je npr. charset NONE, onda ce ti prilikom konektovanja izbaciti upozorenje:

Database charset: NONE is different from connection charset: UNICODE_FSS.

ali ce da ti radi SELECT unicode_fss_kolona FROM neka_tabela.

Dakle, ako se koristi Unicode verzija FlameRobin-a, onda nije uopste bitno podesavati charset za editor i grid.

Ono "statement cannot be 0" jeste glupa poruka greske, pa cemo ti ispraviti da bude nesto kao "cannot transliterate between character sets" ili tako nesto. A mozda bi ipak trebao i da dozvoli cirilicu ako je character set NONE, pa da ti onda Firebird javi gresku umesto FlameRobin-a.

Inace, koliko sam uspeo da zakljucim, problem se javlja samo ako je charset NONE, jer FR ne ume da uradi konverziju (tj. wxWidgets biblioteka koju FR koristi). Ostale kombinacije (UTF8+UNICODE_FSS, UNICODE_FSS+WIN1250, itd.) rade.
[ delalt @ 05.08.2006. 16:26 ] @
Hvala na detaljnom pojašnjenju. Ovako će sigurno da radi i kod mene, nisam to bio definisao...
Jedino mi je nešto još palo na pamet, kod ovog connection charset-a, kad se postavi da je UNICODE_FSS,
nevezano samo za Flamerobin, nego uopšteno (kad se koristi u Delphi-ju...):
Citat:
mbabuskov:
Dakle, ovako, ako npr. stavis da ti je baza UNICODE_FSS ili da je makar samo neka kolona UNICODE_FSS, da bi nju dobro video, moras i FlameRobinu da stavis da ti je connection charset isto UNICODE_FSS. To ti je onaj charset sto se vidi na Database Registration Info ekranu. Slicno vazi i za UTF8.

Ako ti sama baza nije UNICODE_FSS, vec si samo kreirao jednu tabelu za isprobavanje u bazi kojoj je npr. charset NONE, onda ce ti prilikom konektovanja izbaciti upozorenje:

Database charset: NONE is different from connection charset: UNICODE_FSS.


ali ce da ti radi SELECT unicode_fss_kolona FROM neka_tabela.

Dakle, ako se koristi Unicode verzija FlameRobin-a, onda nije uopste bitno podesavati charset za editor i grid.

Ono "statement cannot be 0" jeste glupa poruka greske, pa cemo ti ispraviti da bude nesto kao "cannot transliterate between character sets" ili tako nesto. A mozda bi ipak trebao i da dozvoli cirilicu ako je character set NONE, pa da ti onda Firebird javi gresku umesto FlameRobin-a.

Inace, koliko sam uspeo da zakljucim, problem se javlja samo ako je charset NONE, jer FR ne ume da uradi konverziju (tj. wxWidgets biblioteka koju FR koristi). Ostale kombinacije (UTF8+UNICODE_FSS, UNICODE_FSS+WIN1250, itd.) rade.

da li će ovo praviti problem pri prikazu drugih kolona koje su na primjer WIN1250 ili WIN1251, odnosno nešto treće?
Mislim kad je u istoj tabeli definisano više različitih character set-ova, a treba odabrati jedan connection charset?
Ako neko ima iskustva sa ovim, neka se javi...
[ mbabuskov @ 05.08.2006. 16:46 ] @
Citat:
delalt
da li će ovo praviti problem pri prikazu drugih kolona koje su na primjer WIN1250 ili WIN1251, odnosno nešto treće?
Mislim kad je u istoj tabeli definisano više različitih character set-ova, a treba odabrati jedan connection charset?
Ako neko ima iskustva sa ovim, neka se javi...


Ako ti ni jedan od tih nije NONE, onda u FlameRobin-u ne bi trebao da imas problema. Evo, ja sam definisao da je connection charset UNICODE_FSS i napravio tabelu koja ima WIN1250 i WIN1251 kolone i vidim i cilirlicu i latinicu. Stos je u tome sto imas 2 konverzije:

Flamerobin (Windows/Linux charset grafickog okruzenja) <-> connection charset <-> column charset

Dakle, FR ti prevodi sve sa/na connection charset i tu ima problem kada je NONE u pitanju, jer ne zna kako da prevede.
Firebird sam prevodi charset kolone u connection charset ako je moguce, a ako nije izbaci ti gresku:

Arithmetic exception, numeric overflow, or string truncation
Cannot transliterate between character sets

Dakle, imaces problem ako ti je connection charset WIN1250, a kolona WIN1251. Ako imas razlicite charsetove u kolonama, najbolje da se za connection charset koristi UTF8 (ili UNICODE_FSS) jer oni mogu da se prevode u bilo koji. I naravno izbegavati NONE.