[MySql] Problem z polskimi znakami

0

Chodzi o Turbo Delphi .NET i MySql 5.0. W bazie danych są rekordy z polskimi znakami. Tabele są ustawione na Latin 2 ale jak pobieram rekordy do komponentów jak np. TListView to zamiast polkich liter mam znak ?. [???] [???] . Zmieniałem właściwości charset komponenetów na EASTEUROPE_CHARSET lecz i to nie pomaga. O co biega???

Aha Sorry jeżeli do złego działu posta dałem ;-)

0

Dzięki sprawdziłem i niestety niepomogło. Albo coś źle robię. Ustawilem:
SET character_set_client = latin2;
SET character_set_results = latin2;
SET character_set_connection = latin2;
I dalej nic. Myślę że problem jest po stronie Turbo Delphi bo w bazie danych literki polskie w rekordach są tylko w komponentach w Turbo zamiast polskich mam zapytajniki.

0

SET CHARACTER SET latin2 a jak nie zadziała to spróbuj cp1250

BTW gdzie i kiedy to wpisujesz?

0

Próbowałem cp1250 i latin2 ale nie pomaga. To przykładowa tabela

mysql> show create table rodzajmaszyny;
| rodzajmaszyny | CREATE TABLE rodzajmaszyny (
idRodzajMaszyny int(10) unsigned NOT NULL auto_increment,
NazRodzMasz varchar(45) character set latin2 NOT NULL,
PRIMARY KEY (idRodzajMaszyny),
UNIQUE KEY UNIQUE (NazRodzMasz)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin2 |

1 row in set (0.05 sec)

a wygląda tak

mysql> SELECT * FROM rodzajmaszyny;
+-----------------+--------------------------+
| idRodzajMaszyny | NazRodzMasz |
+-----------------+--------------------------+
| 1 | Zgrzewarka iskrowa |
| 2 | Zaginarka na zimno |
| 3 | Zaginarka na gorąco |
| 4 | Prasa hydrauliczna |
| 5 | Prasa mimośrodowa |
| 6 | Nożyce do cięcia |
| 7 | Piec elektryczny |
| 8 | Kalibrownica |
| 9 | Podgrzewarka |
| 10 | Parownica |
| 11 | Śrutownica |
| 12 | Maszyna wytrzymałościowa |
+-----------------+--------------------------+
12 rows in set (0.00 sec)

Tylko w np. w TListview niemam polskich znaków.

0

BTW gdzie i kiedy to wpisujesz? (SET CHARACTER SET xxx)

0

komendy:
SET character_set_client = latin2;
SET character_set_results = latin2;
SET character_set_connection = latin2;
Wpisuję bezpośrednio w CMD po zalogowaniu do mysql i wybraniu bazy.

także
mysql> SET CHARACTER SET latin2;
Query OK, 0 rows affected (0.00 sec)

nie pomaga

0

Na początku połączenia spróbuj dać zapytanie:
SET NAMES latin2;

0

Dałem tak:
SQLDataSet.CommandText := 'SET NAMES latin2';
SQLDataSet.CommandText := 'SELECT * FROM rodzajmaszyny';
al dalej to samo :-(

0

Już wiem w czym problem, używam drivera "dbExpress driver for MySQL" firmy Core Labs i chyba nie obsługuje polskich znaków jak używałem dbx4mysql polskie zanki tam są obsługiwane ale niestety ucina mi zapytania jak np.
'SELECT * FROM rodzaj maszyny' na 'SELECT * FROM rodzaj masz' i tak samo przy wstawianiu rekordów wiec sobie darowałem ten driver.

Może ktoś zna jakiś driver do dbExpress na Turbo Delphi .net Explorer Edition bo walczę już jakiś czas z tym i po prostu cycki opadają :-(

0

powiem tak - u mnie trybi i nie ma problemów. Czy jesteś pewien, że to driver Ci obcina zapytania

0

no na pewno bo jak zmieniłem na Core labs to wszystkie zapytania były ok. Próbowałem na kompie w domu i w robocie i za każdym razem dbx4mysql obcina mi zapytania. Obchodziłem to w ten sposób że np. tworzyłem tabelę o nazwie do jakiej skracał mi w zapytaniu i przy wstawianiu rekordów wstawiał mi do tabeli o "nieskruconej nazwie" ale podczas innych zapytań odwoływał sie do tabeli "skruconej". Może chodzi o to że to tylko trial.
Niewiem co mam zrobić bo to dość ważna sprawa i niemogę tego po prostu olać.

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