Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Collation za naša slova

[es] :: MS SQL :: Collation za naša slova

[ Pregleda: 9332 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Collation za naša slova29.12.2008. u 17:37 - pre 185 meseci
Koji collation u SQL serveru 2005 koristite za bazu koja će sadržati srpsku latinicu?
Na početku mi je baza bila podešena na SQL_Latin1..., a sva tekstualna polja su bila tipa nvarchar i ntext. Tada sam imao problema pri unosu č i ć(pretvarala su se u c), dok je ž bilo normalno! Kada sam prebacio na collation SQL_Croatian_CP1250_CI_AS onda je sve bilo ok. Da li je pravilno koristiti taj collation?

Koja je razlika između SQL_Croatian_CP1250_CI_AS i SQL_Croatian_CP1250_CS_AS?


 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Collation za naša slova29.12.2008. u 18:53 - pre 185 meseci
to su modifikatori za kolaciju.

CI vs CS je "Case sensitivity", tj kad sortiras i poredis dal da tretira mala i velika slove identicno

CS - Case Sensitive
CI - Case insensitive


AS vs AI je 'accent sensitivity' tj dal da razlikuje akcente pri poredjenju i sortiranju tj, dal je ć isto sto i c

AS - accent sensitive
AI - accent insensitive


pored toga postoji i Kana i width sensitivity ali to ne vazi za nase podneblje.

inace, mozes da koristis croatian collation za latinicu jer je poredak slova isti (bar koliko ja znam), medjutim ne postoji bas striktna SQL kolacija za srpski. Alternativa koja se svodi na isto je da izaberes jedno od Windows kolacija predvidjenih za srpski, dole ti je spisak na mojoj SQL2008 instanci (izbacio sam one koji nemaju smisla), moja preporuka je da ides obavezno sa AS, opciono CS ako ti igra ulogu (mada je uglavnom bolje imati CI zbog pretrazivanja stringova). BIN nisam nikad koristio tako da ne znam dal ima neih razlika.

Medjutim nista od toga ne bi trebalo da ima veze sa tvojim problemom, nvarchar mora da uskladisti nasa slova bez obzira na kolaciju (mada ti kolacija treba zbog ispravnog sorta), cime se unose podaci u tabelu?

Code:

Serbian_Latin_100_BIN      Serbian-Latin-100, binary sort
Serbian_Latin_100_BIN2     Serbian-Latin-100, binary code point comparison sort
Serbian_Latin_100_CI_AI    Serbian-Latin-100, case-insensitive, accent-insensitive
Serbian_Latin_100_CI_AS    Serbian-Latin-100, case-insensitive, accent-sensitive
Serbian_Latin_100_CS_AI    Serbian-Latin-100, case-sensitive, accent-insensitive
Serbian_Latin_100_CS_AS    Serbian-Latin-100, case-sensitive, accent-sensitive

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Collation za naša slova29.12.2008. u 20:12 - pre 185 meseci
Vrednosti unosim kroz TextBox kontrole. Aspx stranica na kojoj se nalaze ima liniju:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Collation za naša slova29.12.2008. u 20:22 - pre 185 meseci
Kako izgleda kod koji updatuje bazu?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Collation za naša slova29.12.2008. u 21:13 - pre 185 meseci
Cela funkcija:
Code:

// dodavanje autora
public int dodaj(string parIme, string parPrezime)
{
    SqlConnection konekcija = new SqlConnection();
    konekcija.ConnectionString = ConfigurationManager.ConnectionStrings[0].ConnectionString;

    SqlCommand komanda = new SqlCommand();
    komanda.CommandText = String.Format("INSERT INTO autori(ime, prezime) VALUES('{0}', '{1}')", parIme, parPrezime);
    komanda.Connection = konekcija;

    konekcija.Open();
    int rezultat = komanda.ExecuteNonQuery();
    konekcija.Close();

    return rezultat;
}


Upit:
Code:

komanda.CommandText = String.Format("INSERT INTO autori(ime, prezime) VALUES('{0}', '{1}')", parIme, parPrezime);


Stranica koja submituje je sadrži dva tekst boksa i dugme!


Samo da napomenem da od kada sam promenio collation cele baze na hrvatski unos radi normalno, mada me baš interesuje zašto nije radio ranije kada su polja bila nvarchar.

 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Collation za naša slova30.12.2008. u 09:27 - pre 185 meseci
Ok, sad mi je jasno. Problem je do ado.net implementacije, ne do kolacije ili sql servera. U nastojanju da bude od velike pomoci ado.net zapravo zabrlja stvar. Bez obzira na to koja ti je kolacija polja i koji je tip stringa (nchar ili char) ado.net ce pri pripremi SQL skripte konvertovati string u code page koji je default za bazu. TO se posle kaskadno odnosi na sve aplikacije koje ga koriste (kao sto je query analyzer u menadzment studiju). Jedini nacin da se ovo resi je da SQL komanda bude parametrizovana i da se ado.net-u kaze da je string unicode i da ga ostavi na miru:

Code:

            SqlConnection conn = new SqlConnection(Settings.Default.conn);
            SqlCommand cmd = new SqlCommand("insert into autori values (@ime, @prezime)", conn);
            cmd.Parameters.Add("@ime", SqlDbType.NText).Value = "žćčđš";
            cmd.Parameters.Add("@prezime", SqlDbType.NText).Value = "šđžćč";
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();


ovo ce ti raditi.

U svakom slucaju iskoristi ili hrvatsku SQL ili Windows Serbian kolaciju zbog sortiranja stringova.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Collation za naša slova30.12.2008. u 11:14 - pre 185 meseci
Hvala!
 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
*.vektor.net.



+1 Profil

icon Re: Collation za naša slova31.12.2008. u 09:52 - pre 185 meseci
Mozda da probas i nesto ovako:

SqlCommand komanda = new SqlCommand();
komanda.CommandText = String.Format("INSERT INTO autori(ime, prezime) VALUES(N'{0}', N'{1}')", parIme, parPrezime);
komanda.Connection = konekcija;



 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Collation za naša slova31.12.2008. u 10:21 - pre 185 meseci
Radi!
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Collation za naša slova31.12.2008. u 11:27 - pre 185 meseci
Nevezano za konkretan ado.net collation problem, ja bih ti i dalje preporucio parametrizaciju zbog sql injection napada.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: MS SQL :: Collation za naša slova

[ Pregleda: 9332 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.