[DELPHI] MySQL i polskie znaki

0

Witam
Temat był wielokrotnie poruszany ale nigdzie nie znalazłem rozwiązania.

Mam baze w MySQL 5.0 i pole Nazwisko VARCHAR(150) w jednej z tabel.
Baza ma ustawiony latin2.

MóJ programy (Delphi 7) łączy się do bazy poprzez ZeosLib.

Kiedy dodaję dane poprzez narzędzie mysql query browser to nie mam problemu z dodaniem nazwiska np z literką ś lub ó.

Kiedy dodaje poprzez moj program mam komunikat: SQL ERROR : Data too long for column 'Nazwisko' at row 1.

0

Naprawde nie ma zadnego specjalisty na forum od mysql i delphi???

Zmienilem kodowanie na utf8 i moge wstawiac dane, ale zamiast polskich liter mam "?".

0

przed jakimkolwiek update czy insertem zrób

SET CHARACTER SET latin2
Gumiś napisał(a)

Naprawde nie ma zadnego specjalisty na forum od mysql i delphi???

może im się znudziło odpowiadać cały czas na te same pytania

Zmienilem kodowanie na utf8 i moge wstawiac dane, ale zamiast polskich liter mam "?".

delphi nie obsługuje samo z siebie utf8, spróbuj TNTControls

0
Misiekd napisał(a)

przed jakimkolwiek update czy insertem zrób

SET CHARACTER SET latin2

Nie pomoga :(

Misiekd napisał(a)

może im się znudziło odpowiadać cały czas na te same pytania

Ale wszystkie posty co przejrzałem to nigdzie nie ma zadowalającej odpowiedzi bo nikomu nie pomogło.

Misiekd napisał(a)

delphi nie obsługuje samo z siebie utf8, spróbuj TNTControls

Mam TNTControls ale nadal to samo.

Czy naprawdę nie ma żadnego sposobu zeby poprawnie wyswietlac polskie znaki w MySQL??</quote>

0

Jak utworzyłeś tą bazę w MySQL-u? Samo CREATE DATABASE nazwa_bazy_danych; nie wystarczy.
Spróbuj tak:

CREATE DATABASE nazwa_bazy_danych CHARACTER SET utf8 COLLATE utf8_polish_ci;

a potem utwórz potrzebne tabele i już nie powinieneś mieć "krzaczków" typu "?" zamiast polskich znaków.
U mnie działa na lokalnej bazie MySQL 4 i Win XP jak i na zdalnej (Ubuntu 7.04 i MySQL 5).

0

Zaraz po połączeniu musiś wysłać do bazy zapytanie:

SET NAMES latin2

i powinno działać

1 użytkowników online, w tym zalogowanych: 0, gości: 1