Uzkrauk tuos stringinius raktus i OLAP serveri, ir tada pasiziurek. P.S Navision branduoli lietuvos sistemai pagrinde adaptavo Sonex sutelkti studentai-praktikantai. "Jornada Del Muerto" <ask@me.email> wrote in message news:hk1kav$746$1@trimpas.omnitel.net... > Sveikas, > > Nelabai supratai manes, teke kazkada daryti rysi su pvz. Navision tai > ten visur raktai stringai, del to nieko as blogo nesakau, jei jau kalbant > apie rimtus raktus tai mano nuomuone GUID geriausia, ipac kalbant apie > MSSQL, kur jie poto gali buti reusinti replikavimui ir tuo paciu buti ID. > > Pirmas dalykas as neminejau nieko kad as pries stringus, o klausimas > buvo konkreciai kodel naudojamas butent char! > > Jeigu konkreciau, kalba apie tai kuo remiantis naudojamas CHAR arba > NCHAR, o ne varchar ar nvarchar, kur char visada atlieka tarpais jo > nurodyto ilgio islyginima, jeigu laukas bus CHAR(10) ir ivesta bus i ji > '1' tai jis ji duomenu bazeje pavers i '1 ' - kas veliau pridaro > labai daug bedu ir nekalbu apie tokio lauko pastovu RTRIM'inima ir kitas > problemas kuriant sistemas su panaudotais xCHAR o ne xVARCHAR tipais. > > Esu ne karta susidures su pradinuku ar megeju architekturomis kur > prideda be jokios priezasties CHAR tipus, o poto lenda bugas ant bugo ir > jei toki sutikciau tai per nagus gautu kaip reikalas uz tai... > > Pvz buvo atvejis, programuotojas sukure sistema ir duombazeje naudota > pastoviai CHAR tipas, poto jis su .NET String.Trim metodu trimmina tarpus > pries teksto paieska kur, del vienos klaidos pasirenkant bloga duomenuu > tipa glimsta dar i didesnes problemas, nes pradeda naudoti String.Trim, > sis metodas trimins visus tarpus, o ne vien nereikalingus nuo galo ir > rezultate pvz. tekstas: > > string compare1 = "ABCDE "; > string compare2 = "ABC DE "; > > Po Trim funkcijos bus vienodas, tas liecia ir duomenu baze! > > =========================================================== > > Pirmas dalykas kas yra kas: > ---------------------------------- > CHAR - duomenu tipas skirtas laikyti NE unicode(utf) > informacijai, kurio tuscia vieta issaugojus jame ka nors visada uzpildoma > tarpo kodais, kad islyginti duomenu ilgi iki maksimalaus nurodyto lauko > ilgio, sio lauko kilme labai sena ir jis kilo dar nuo space delimited > tekstiniu duomenu baziu, kur islyginimu iki maksimalaus nurodyto lauko > ilgio buvo pasiekiamas didesnis performance ; > > VARCHAR - taip pat ne unicode duomenu tipas skirtas laikyti tekstui, > taciau laiko tik tiek teksto kiek buvo jame issaugota, nedaro jokiu > uzpildymu papildomais simboliais iki maksimalaus lauko ilgio; > > NCHAR - analogiskas CHAR tipui tik skirtas laikyti unicode > informacijai; > > NVARCHAR - analogiskas VARCHAR tipui tik skirtas laikyti unicode > informacijai; > > > > Toliau kas nezino ka naudot siulyciau laikytis maniskiu taisykliu: > --------------------------------------------------------------------- > 1. Niekada nenaudoti CHAR, NCHAR tiesiog kaip tekstinio tipo - be > tikrai svarbios priezasties ir vien tik is tingejimo kad kuriant DB > lentele grafineje char combobox sarase bus pirmas; > > 2. Jeigu jusu DB klientas tai .NET Application ar ASP.NET (.NET by > default visus stringus laiko Unicode'u) ar kitas web puslapis naudojantis > UTFx ar Unicode, visada reikia rinktis unicode'ini duomenu tipa o ne > paprasta, informacija kad ir su paprastu UTF uzims daugiau vietos ir pvz i > varchar(10) gali netilpti 10 simboliu tekstas... > > > varchar ar nvarchar yra ir taupesni ir sudarantys ateityje maziau bedu, > tiesiog jei bus daroma paieska, ivairus sulyginimai tai teks kiekviena > kart SQL poto nepamirst RTRIM, o atvejai kada realiai reikia CHAR ar NCHAR > yra labai reti ir daznai susija kaip tik su kiek didesniu Low leveliu! > > > Nepatingejau parasyti, nes ne karta teko susidurti su sistemom kur > zmones is nesupratimo dare klaidas ir labai juos del to ilgai ir > nuobodziai keikti, bei poto visa duombaze taisyti ir grybu pripjauta koda, > del to ????? ???????! Gal maziau teks susidurti poto su tokiais sedevrais > :) > > JDM. > --------------------------- > Freelancer programmer > www.lythum.lt > > > > "IF" <nojauslaivas@gmail.com> wrote in message > news:hk1dj9$1mr$1@trimpas.omnitel.net... >> Kai labai senais, senais, akmens amziaus laikais,buvau jaunas ir durnas >> ir >> programavau asembleriu, taip pat maniau kad laukai turi ristis, >> grieztomis >> primary - secondary key, number strukturomis. bet laikai keiciasi, niekas >> nestovi vietoje vyksta progresas ir nauji gyvenimopoziuris ir manau kad >> pasikeitus ateiti hardvarui, sis STRING risys tik tobules :) >> >> Juk lentu tarpusavio risys, taip pat risys tarp objektu, ne tiesa >> Jordanai, >> o kodel ir cia nepanaudojus stringo :), o dar plius kaip matome >> apkabineto >> logiskomis duomenu transformaciju klasemis ;) >> >> "Jornada Del Muerto" <ask@me.email> wrote in message >> news:hju5sg$kk0$1@trimpas.omnitel.net... >>> da... o char naudojimo kokia priezastis? paprastai neleisciau to daryt >>> jokiam programeriui be tikrai svarbios priezasties... >>> >>>> char(x) >>> >>>>> koks lauko, i kuri insertini tipas DB? >>> >> >>