Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

firebird - jeszcze raz polskie litery

1,332 views
Skip to first unread message

Rafal

unread,
Feb 26, 2004, 3:22:53 AM2/26/04
to
Dzieki, ale pytam powaz.nie.

Juz. nie wiem ile tych faq czytam, ale zaden nie pomaga.

Szukam kogos' kto przeniosl dane z dbf-ki do interbase.

Rozwiazalem problem czesciowo - dane z dbf wyrzucam do skryptu SQL.

Nastepnie programikiem konwertuje polskie znaki z dosowego latin2 do
ISO8859_2 (i tak mam zrobiona tabele w firebird).

Potem odpalam isql, lub inne narzedzie sqlowe, podaje ten skrypt i
dostaje nastepujacy komunikat :

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

Nie pomaga kombinowanie w rozne strony z roznymi stronami kodowymi, nie
wiem juz co robic. Nie pomaga nawet ustawienie :
SET NAMES ISO8859_2;

Pozdrawiam
Rafal

miab

unread,
Feb 26, 2004, 5:07:04 AM2/26/04
to

Standardowo to w FB/IB polskie znaki i polskie sortowanie dostepne jest dla:
character set WIN1250 collate PXW_PLK

miab

Rafal

unread,
Feb 26, 2004, 7:08:56 AM2/26/04
to
OK, tyle ze jak ustawilem w ten sposob to ni cholery nie moge wpisac do
bazy polskiego nazwiska. Uzywam firebirda pod winda 2000.

Rafal

unread,
Feb 26, 2004, 10:02:29 AM2/26/04
to
Dobra, czesc sie udalo, nawet w ISO8859_2, za pomoca; collation ISO_HUN ;)

Problem mam niestety dalej, z dowolnym narzedziem typu isql.
Dla kombinacji potworzylem kilka pol z roznym kodowaniem i dodalem w
IBExpert dane.
Otwieram potem inne narze;dzie typu isql i nie moge nic dodac. Biore
selecta po jednym z pol, widze na ekranie wszystkie polskie literki, a
dodac insertem nie moge.

pozdrawiam
Rafal

Janusz M

unread,
Feb 26, 2004, 10:54:09 AM2/26/04
to

Uzytkownik "Rafal" <kub...@poczta.onet.pl> napisal w wiadomosci
news:c1l1vu$4as$1...@nemesis.news.tpi.pl...

W Firebird program clienta jak na przyklad isql , odbc, ado,c api itp,
ktory sie laczy z baza danych
musi miec ustawiana strone kodowa w tym przypadku na WIN1250, bez tego nie
da sie wpisywac polskich zznakow.
To jest na sprawa. A druga przy tworzeniu bazy albo przynajmniej pola w
tabeli tez powinna byc podana strona kodowa WIN1250. Wyglada na to, ze
ktoras z tych rzeczy masz nie ustawiona.

pozdrawiam

Jannusz

Rafal

unread,
Feb 27, 2004, 3:04:30 AM2/27/04
to
Wlasnie kombinuje jak moge i szlag mnie trafia.
W bazie mam 3 pola tekstowe, kazde ustawilem z innym kodowaniem:
WIN1250, ISO8859_2 i DOS852.
W programiku IBExpert zaczelo dzialac cacy, we wszystkie sie da wpisac i
w bazie trzyma to w roznych stronach kodowych.
Problem mam nadal z np. z isql. Probuje poleceniem SET NAMES , podaje
strone kodowa , i zadne z tych trzech nie pomaga. Malo tego, jak daje
selecta po nazwisku w DOS852, to widze polskie literki, cacy, ale
dopisac insertem nie moge. Jest w isql jakies inne ustawienie strony
kodowej oprocz SET NAMES ???

Pozdrawiam
Rafal

Staruszek

unread,
Feb 28, 2004, 6:13:55 AM2/28/04
to
Rafal napisał(a):

> Wlasnie kombinuje jak moge i szlag mnie trafia.
> W bazie mam 3 pola tekstowe, kazde ustawilem z innym kodowaniem:
> WIN1250, ISO8859_2 i DOS852.
> W programiku IBExpert zaczelo dzialac cacy, we wszystkie sie da
> wpisac i
> w bazie trzyma to w roznych stronach kodowych.
> Problem mam nadal z np. z isql. Probuje poleceniem SET NAMES ,
> podaje strone kodowa , i zadne z tych trzech nie pomaga. Malo
> tego, jak daje selecta po nazwisku w DOS852, to widze polskie
> literki, cacy, ale dopisac insertem nie moge. Jest w isql jakies
> inne ustawienie strony kodowej oprocz SET NAMES ???

Ja się też męczyłem z tym podobnym problemem - tyle, że z poziomu Javy
chciałem zapisywać dane po polsku:).

Przeczytałem google, readme, tutoriale i co mi wpadło w rękę, robiłem
testy chyba na wszystkich możliwych kombinacjach kodowania, na dwóch
systemach (Linux, W2K) i niestety rezultaty jak u ciebie.

Gdyby ktoś jednak miał działający na 100% sposób na firebirda to proszę
o instrukcje.

--
-=:| Staruszek GG:320000 |:=-

umberto

unread,
Mar 1, 2004, 2:25:23 AM3/1/04
to
> Gdyby ktoś jednak miał działający na 100% sposób na firebirda to proszę
> o instrukcje.

Witam,
Używam Firebirda w pewnym zastosowaniu od dłuższego czasu i z powodzeniem
uzyskuję tam polskie litery. Co prawda nie robie tego w sposób klasyczny,
ale akurat takie było wymaganie i wszystko działa pieknie. Jest to
następujący zestaw działań:

1. Najpierw tworze bazę:
SET SQL DIALECT 3

CREATE DATABASE 'D:\Bazy\FireBird\moja_baza.fdb'
USER 'admin' PASSWORD 'pass'
PAGE_SIZE = 4096
DEFAULT CHARACTER SET WIN1250;

2. Podłączam się do niej
CONNECT 'D:\Bazy\FireBird\moja_baza.fdb'
USER 'admin' PASSWORD 'pass';

3. Tworzę tabelę:
Tutaj małe wyjaśnienie. Dane do tabeli importuję z plików dBase-owych
(Clipper) przekonwertowanych na txt (1rekord=1wiersz txt), więc nie jest to
typowy insert. Niemniej, wszystkie dane zawierające polskie znaczki są
wczytywane poprawnie i wyświetlam je zarówno isql-em jak i programami
łączącymi się z bazą poprzez ODBC.

CREATE TABLE magazyny_ext EXTERNAL FILE 'D:\Bazy\FireBird\dbfs\magazyny.txt'
(
symb_mag CHAR(2),
naz_wa CHAR(30),
new_line CHAR(2) );

CREATE TABLE magazyny (
symb_mag CHAR(2) NOT NULL,
naz_wa CHAR(30),
new_line CHAR(2),
PRIMARY KEY (symb_mag) );

4. Uzupełniam ją danymi:
INSERT INTO magazyny
SELECT symb_mag, naz_wa, new_line
FROM magazyny_ext;
COMMIT;
ALTER TABLE magazyny DROP new_line;
COMMIT;

Nie wiem, czy będzie to pomocne, w każdym razie jeśli nie w tej sytuacji to
pewnie w jakiejś innej ;-)

Pozdrawiam,


Rafal

unread,
Mar 4, 2004, 7:41:26 AM3/4/04
to
W koncu jakos mi zaczelo dzialac. Problem mialem w ustawieniach zarowno
ODBC, jak i poszczegolnych narzedzi, bo mialy wlasne ustawienia. W ODBC
koniecznie trzeba ustawic strone kodowa, taka sama jak w bazie danych.
Do konca mi i tak nie dziala tak jak bym chcial, bo z poziomu isql nie
moge nic dodac, ale za to mam inne narzedzie - CuteSQL, dziala super i
pozwala laczyc przez odbc i bezposrednio.

Pozdrawiam
Rafal

0 new messages