część
mam nastepujacy prblem z firebirdem
Utworzyłem baze danych na firebirdzie 2.0.1:
create database '/opt/firebird/bin/Bazadanych' user 'sysdba' password
'masterkey' default character set win1250;
i w niej tabelkę:
CREATE TABLE Tabelka (
id int NOT NULL,
pole varchar(30) NOT NULL COLLATE pxw_plk,
PRIMARY KEY (id)
);
czyli teoretycznie wszystko jest ok i baza jest poprawnie przygotowana
do przechowywania polskich ogonków.
Jest tylko jedno ale.
Polskie ogonki są poprawnie wyświetlane TYLKO z pozimu sytemu
operacyjnego z którego zostały wprowadzone np.
za pomocą linuxowego isql'a łaczę się z bazą:
Use CONNECT or CREATE DATABASE to specify a database
SQL> set names win1250;
SQL> connect BazaDanych user sysdba password masterkey;
Database: BazaDanych, User: sysdba
po wybraniu
SQL> select * from tabela;
wywali mi poprawnie zapis testowy "zażółć żółtą gęśl", który wczesniej
wprowadziełm z poziomu tego samego isql'a. Problem z tym, że pod
windowsem ani isql(wersja windowsowa), ani EMS SQL Manager'a ani z
poziomu Delphi z ustawionym lc_ctype=win1250 nie jestem w stanie
poprawnie wyświetlić tego samego napisu.
Sytuacja powtarza się tez w drugą stronę: "zażółć żółtą gęśl"
wprowadzone do bazy z poziomu jakiegokolwiek klienta windowsowego,
jest poprawnie odczytywane przez każdego klienta windowsowego, ale
linuxowy isql wysypuje już krzaki;
Jak to obejść. Znalazłm opis, że set names win1250; trzeba wymuszać
przed użyciem connect ..., ale to nic nie dało. Sytuacja jest taka, że
z pozimu windowsa nie jestem w stanie poprawnie odczytać danych
wprowadzonych z poziomu linuxa i na odwrót.
ps wie ktoś może jak wyświetlić z poziomu isql informacje o tym
jakiego kodowania aktualnie używa program kliencki i serwer, coś w
stylu MySql'owego "status"
pozdrawiam