Zadejte hledaný výraz...

Collation

Scorpius
verified
rating uzivatele
(19 hodnocení)
10. 1. 2008 21:00:48
Hoj
mam problem s MSSQL serverem. Potrebuju zmenit collation jedné tabulky. (Nebo alespon tusim ze to je collation) Spatne se v te tabulce zobrazuji ceske znaky.
Jak na to?
Diky
10. 1. 2008 21:00:48
https://webtrh.cz/diskuse/collation#reply36285
duben
verified
rating uzivatele
(49 hodnocení)
10. 1. 2008 21:35:12
Potřebuješ radu s MSSQL nebo s MySQL? Protože collation u MSSQL nezměníš u jedné tabulky. Můžeš nastavit při instalaci v jakém kódování povedeš data a při přístupu k nim můžeš použít collation pro konverzi (přístupu k jiné MSSQL databázi s jiným nastavením při instalaci).
Pokud by šlo o MySQL tak sice collation ti může pomoct, ale dost často je problém spíš v tom že jinak data ukládáš a jinak čteš. Například v Joomla funguje česky jen v win1250 a ISO899něco ... ale do databáze v UTF-8 jde ukládat, jen číst to musíš zase jako win1250 (pokud jsi to tak ukládal), protože jinak ti to vrací znaky v utf-8, ale to je špatně a nepřevedeš do do češtiny jinak než nějakou binární konverzí což je zbytečná šílenost.
Další o co jde jestli je to MSSQL čteš to z ASP nebo ASP.NET, nebo je to MySQL a PHP, nebo MSSQL a PHP?
Víc specifikuj problém ať můžu poradit. Tj. co nejvíc informací :)
10. 1. 2008 21:35:12
https://webtrh.cz/diskuse/collation#reply36284
Scorpius
verified
rating uzivatele
(19 hodnocení)
10. 1. 2008 21:48:18
ASP .NET MSSQL Server 2008
10. 1. 2008 21:48:18
https://webtrh.cz/diskuse/collation#reply36283
Scorpius
verified
rating uzivatele
(19 hodnocení)
10. 1. 2008 21:52:54
Takže jediná cesta bude asi predelani znaku pri vstupu z databaze. Muzes me nejak navest? Co to je? Jak se tomu rika?
10. 1. 2008 21:52:54
https://webtrh.cz/diskuse/collation#reply36282
duben
verified
rating uzivatele
(49 hodnocení)
10. 1. 2008 21:59:42
S tebou je to těžké, moc sdílný nejsi. Co takhle ukázat kus kódu kde přistupuješ k DB a taháš z toho data a pak je je tiskneš do stránky? Jaký jazyk v .NET používáš?
Obecně se změna collation na MSSQL provádí takhle
Alter database DATABASE_NAME collate COLLATION_NAME
pro změnu Collation u databáze
Alter table TABLE_NAME alter column COLUMN_NAME datatype collate COLLATION_NAME.
Pro změnu collation u sloupce tabulky.
Typy collation si snad už v SQL Helpu :), protože z tvého "rozsáhlého" popisu problému není vůbec jasné jaké kódování používáš. BTW. předem upozorňuji že MSSQL do verze 2005 neumělo normální UTF-8, pouze UTF-16, nevím jak je to v MSSQL 2008 protože ta je pořád v prerelease stavu, ale předpokládám že to tam bude stejné.
10. 1. 2008 21:59:42
https://webtrh.cz/diskuse/collation#reply36281
duben
verified
rating uzivatele
(49 hodnocení)
10. 1. 2008 22:05:34
Nevím jak se to nastavuje v ASP.NET (záleží na jazyku co použiješ, jak máš nastavené ODBC, nebo DAO, ADO).
V PHP a MySQL se to provádí napříklade takhle:
mysql_query("set character set cp1250_latin2");
Jenže ASP a MSSQL fungují jinak. Tak vytváříš connection k DB pomocí různých zdrojů a záleží na tom které používáš. Většinou se to nastaví přímo v nastavení ODBC, Connection properities (pokud použiješ VB). Jak říkám bez dalších informací chceš po mě radu která zahrne půlku encyklopedie, abych zahrnul všechny dot.net jazyky a možnosti connection
10. 1. 2008 22:05:34
https://webtrh.cz/diskuse/collation#reply36280
Scorpius
verified
rating uzivatele
(19 hodnocení)
11. 1. 2008 11:28:30
C#
Alter database DATABASE_NAME collate COLLATION_NAME
to jsem zkousel, nepomohlo.
Nacitam do toho data ze souboru ktery je v kodovani cp1250, kdyz dam primo v mssql adminu vypis z tabulky tak to uz spatne zobrazuje kodovani. (otazniky misto znaku z diakritikou)
11. 1. 2008 11:28:30
https://webtrh.cz/diskuse/collation#reply36279
duben
verified
rating uzivatele
(49 hodnocení)
11. 1. 2008 11:50:42
Database Collation ti nepomůže. MSSQL neumí měnit collation celé databáze jen sloupce. DB je v kódování jako je kódování serveru po instalaci. Takže zkusit můžeš collation sloupce.
Jestliže načítáš data ze souboru v CP1250, děláš to ve windows s instalovanou cz podporou? Třeba pod Windows Server 2003 EN je čeština problém a musíš podporu kódování CP1250 doinstalovat, jinak nefunguje. Máš to v tom souboru správně uložené (dobře to jde ověřit přes PSPad, ten umí snad skoro všechno).
Pak jde o to jak to načítáš do DB, načítáš soubor jako CP1250, je connection pro INSERT ve správném kódování? (ADO, DAO nebo co používáš).
Když vypisuješ data, můžou být uvnitř správně a tobě se jen špatně ukáží v Server Managenet Studiu, jestli máš EN windows bez CZ podpory.
Jaké kódování máš instalované na serveru? Jaké je nastavené na sloupci tabulky?
11. 1. 2008 11:50:42
https://webtrh.cz/diskuse/collation#reply36278
Scorpius
verified
rating uzivatele
(19 hodnocení)
11. 1. 2008 19:39:01
Už jsem na to přišel. Problém byl, že jsem měl všechny soubory uložené ve formátu UTF-8 (v mete bylo nastavene win-1250) všechno jsem předělal na UTF-8 a běží to krásně. Takže asi MSSQL server 2008 podporuje UTF-8.
Diky za pomoc
11. 1. 2008 19:39:01
https://webtrh.cz/diskuse/collation#reply36277
Pro odpověď se přihlašte.
Přihlásit