home *** CD-ROM | disk | FTP | other *** search
- if exists (select * from sysobjects
- where sysstat & 0xf = 4
- and name = 'sp_chklangparam')
- drop procedure sp_chklangparam
- go
-
- print ''
- print 'Creating procedure sp_chklangparam.'
- go
- create procedure sp_chklangparam
- @namelist varchar(251), /* month or day name list */
- @msgparam varchar(30), /* name of list, for error messages */
- @numnames int, /* correct number of names in the list */
- @maxnamelen int /* maximum length of any name in list */
- as
-
- /*
- ** sp_chklangparam is called by sp_addlanguage to check the lists of
- ** full month names, short month names, and day names. It returns a status
- ** indicating whether any errors were found:
- ** 0 - name list is valid
- ** 1 - spaces were found, which are not allowed
- ** 2 - not enough names in the list (must be exactly @numnames of them)
- ** 3 - too many names in the list (must be exactly @numnames of them)
- ** 4 - some name(s) are too long
- ** 5 - some name(s) have non-aphabetic characters
- */
-
- declare @totallen int
- declare @mthlen int
- declare @mthname varchar(251)
- declare @msg varchar(255)
- declare @csid tinyint
- declare @csname varchar(30)
- declare @alpha_0_start tinyint
- declare @alpha_0_end tinyint
- declare @alpha_1_start tinyint
- declare @alpha_1_end tinyint
- declare @alpha_2_start tinyint
- declare @alpha_2_end tinyint
- declare @alpha_3_start tinyint
- declare @alpha_3_end tinyint
- declare @alpha_4_start tinyint
- declare @alpha_4_end tinyint
- declare @alpha_5_start tinyint
- declare @alpha_5_end tinyint
- declare @alpha_6_start tinyint
- declare @alpha_6_end tinyint
- declare @alpha_7_start tinyint
- declare @alpha_7_end tinyint
- declare @alpha_s_1 tinyint
- declare @alpha_s_2 tinyint
- declare @alpha_s_3 tinyint
- declare @alpha_s_4 tinyint
- declare @curchar tinyint
- declare @next int
-
- /* Get the Character Set id (csid) */
- select @csid = csid from master..syscharsets
- where id = (select value from master..sysconfigures
- where config = 1123)
-
- /* Get the Character Set Name (csname) */
- select @csname = name from master..syscharsets
- where id = @csid and type < 2000
-
- /* Make sure the list has no blanks. */
- if ( charindex( ' ', @namelist ) <> 0 )
- begin
- raiserror(15057,-1,-1,@msgparam)
- return (1)
- end
-
- if @csid = 1
- /* Set up the alphabetic codepoint ranges for iso_1. */
- select @alpha_0_start = 0x41, @alpha_0_end = 0x5A,
- @alpha_1_start = 0x61, @alpha_1_end = 0x7A,
- @alpha_2_start = 0xC0, @alpha_2_end = 0xD6,
- @alpha_3_start = 0xD8, @alpha_3_end = 0xF6,
- @alpha_4_start = 0xF8, @alpha_4_end = 0xFF,
- @alpha_5_start = 0x41, @alpha_5_end = 0x5A,
- @alpha_6_start = 0x61, @alpha_6_end = 0x7A,
- @alpha_7_start = 0x61, @alpha_7_end = 0x7A,
- @alpha_s_1 = 0x41, @alpha_s_2 = 0x41, @alpha_s_3 = 0x41,
- @alpha_s_4 = 0x2D
-
- if @csid = 2
- /* Set up the alphabetic codepoint ranges for cp850. */
- select @alpha_0_start = 0x41, @alpha_0_end = 0x5A,
- @alpha_1_start = 0x61, @alpha_1_end = 0x7A,
- @alpha_2_start = 0x80, @alpha_2_end = 0x9D,
- @alpha_3_start = 0xA0, @alpha_3_end = 0xA5,
- @alpha_4_start = 0xB5, @alpha_4_end = 0xB7,
- @alpha_5_start = 0xC6, @alpha_5_end = 0xC7,
- @alpha_6_start = 0xD0, @alpha_6_end = 0xD8,
- @alpha_7_start = 0xE0, @alpha_7_end = 0xED,
- @alpha_s_1 = 0xDE, @alpha_s_2 = 0xF4, @alpha_s_3 = 0xF5,
- @alpha_s_4 = 0x2D
-
- if @csid = 3
- /* Set up the alphabetic codepoint ranges for cp437. */
- select @alpha_0_start = 0x41, @alpha_0_end = 0x5A,
- @alpha_1_start = 0x61, @alpha_1_end = 0x7A,
- @alpha_2_start = 0x80, @alpha_2_end = 0x9A,
- @alpha_3_start = 0xA0, @alpha_3_end = 0xA5,
- @alpha_4_start = 0xE0, @alpha_4_end = 0xEE,
- @alpha_5_start = 0x41, @alpha_5_end = 0x5A,
- @alpha_6_start = 0x61, @alpha_6_end = 0x7A,
- @alpha_7_start = 0x61, @alpha_7_end = 0x7A,
- @alpha_s_1 = 0x9E, @alpha_s_2 = 0x41, @alpha_s_3 = 0x41,
- @alpha_s_4 = 0x2D
-
- if (@csid >= 4)
- /* Set up the alphabetic codepoint ranges for other code pages. */
- select @alpha_0_start = 0x41, @alpha_0_end = 0x5A,
- @alpha_1_start = 0x61, @alpha_1_end = 0x7A,
- @alpha_2_start = 0x32, @alpha_2_end = 0xFF,
- @alpha_3_start = 0x80, @alpha_3_end = 0xFF,
- @alpha_4_start = 0x41, @alpha_4_end = 0x5A,
- @alpha_5_start = 0x41, @alpha_5_end = 0x5A,
- @alpha_6_start = 0x61, @alpha_6_end = 0x7A,
- @alpha_7_start = 0x80, @alpha_7_end = 0xFF,
- @alpha_s_1 = 0x41, @alpha_s_2 = 0x41, @alpha_s_3 = 0x41,
- @alpha_s_4 = 0x41
-
- select @totallen = datalength( @namelist )
- while ( @totallen > 0 )
- begin
- /* Move to the next name in the list. */
- select @namelist = right( @namelist, @totallen )
-
- /* If this is not the last name in the list then there must
- ** be another comma.
- */
- if ( @numnames > 1 )
- begin
- select @mthlen = charindex( ',', @namelist ) - 1
- if ( @mthlen < 0 )
- begin
- raiserror(15058,-1,-1,@msgparam)
- return(2)
- end
- end
-
- /* This is the last name in the list, so there cannot be
- ** another comma. This name is all remaining characters
- ** in the list.
- */
- else
- begin
- if ( charindex( ',', @namelist ) <> 0 )
- begin
- raiserror(15059,-1,-1,@msgparam)
- return(3)
- end
- select @mthlen = @totallen
- end
-
- /* Check the name length. */
- if ( @mthlen > @maxnamelen )
- begin
- raiserror(15283,-1,-1,@msgparam)
- return(4)
- end
-
- /*
- ** Check to see that the names contain only true
- ** ALPHA-betic characters; not even DIGITs are allowed.
- */
- select @next = 1
- while ( @next <= @mthlen )
- begin
- select @curchar = convert(binary(1),
- substring(@namelist, @next, 1))
- if (not
- (
- (@curchar between @alpha_0_start and @alpha_0_end)
- or (@curchar between @alpha_1_start and @alpha_1_end)
- or (@curchar between @alpha_2_start and @alpha_2_end)
- or (@curchar between @alpha_3_start and @alpha_3_end)
- or (@curchar between @alpha_4_start and @alpha_4_end)
- or (@curchar between @alpha_5_start and @alpha_5_end)
- or (@curchar between @alpha_6_start and @alpha_6_end)
- or (@curchar between @alpha_7_start and @alpha_7_end)
- or @curchar = @alpha_s_1
- or @curchar = @alpha_s_2
- or @curchar = @alpha_s_3
- or @curchar = @alpha_s_4
- )
- )
- begin
- raiserror(15060,-1,-1,@msgparam,@csname)
- return(5)
- end
-
- select @next = @next + 1
- end
-
- /* Move to the next name in the list. */
- select @numnames = @numnames - 1
- select @totallen = @totallen - @mthlen - 1
- end
-
- /* No problems were found with the name list. */
- return (0)
- go
-
-
- declare @csid tinyint
-
- select @csid = (select csid from master.dbo.syscharsets where id = (select value from master.dbo.sysconfigures where config = 1123))
-
- if (@csid < 4)
- begin
-
- exec sp_addlanguage 'Dansk', 'Danish',
- 'januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december',
- 'jan,feb,mar,apr,maj,jun,jul,aug,sep,okt,nov,dec',
- 'mandag,tirsdag,onsdag,torsdag,fredag,lordag,sondag',
- dmy,1
-
- exec sp_addlanguage 'Deutsch','German',
- 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember',
- 'Jan,Feb,Mär,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez',
- 'Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag',
- dmy,1
-
- exec sp_addlanguage 'Español','Spanish',
- 'Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre',
- 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic',
- 'Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo',
- dmy,1
-
- exec sp_addlanguage 'Français','French',
- 'janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre',
- 'jan,fév,mar,avr,mai,jun,jul,aoû,sep,oct,nov,dec',
- 'lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche',
- dmy,1
-
- exec sp_addlanguage 'Italiano','Italian',
- 'gennaio,febbraio,marzo,aprile,maggio,giugno,luglio,agosto,settembre,ottobre,novembre,dicembre',
- 'gen,feb,mar,apr,mag,giu,lug,ago,set,ott,nov,dic',
- 'lunedì,martedì,mercoledì,giovedì,venerdì,sabato,domenica',
- dmy,1
-
- exec sp_addlanguage 'Nederlands','Dutch',
- 'januari,februari,maart,april,mei,juni,juli,augustus,september,oktober,november,december',
- 'jan,feb,mrt,apr,mei,jun,jul,aug,sep,okt,nov,dec',
- 'maandag,dinsdag,woensdag,donderdag,vrijdag,zaterdag,zondag',
- dmy,1
-
- exec sp_addlanguage 'Norsk','Norwegian',
- 'januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember',
- 'jan,feb,mar,apr,mai,jun,jul,aug,sep,okt,nov,des',
- 'mandag,tirsdag,onsdag,torsdag,fredag,laurdag,sundag',
- dmy,1
-
- exec sp_addlanguage 'Português','Portugese',
- 'janeiro,fevereiro,março,abril,maio,junho,julho,agôsto,setembro,outubro,novembro,dezembro',
- 'jan,fev,mar,abr,mai,jun,jul,ago,set,out,nov,dez',
- 'segunda-feira,terça-feira,quarta-feira,quinta-feira,sexta-feira,sábado,domingo',
- dmy,7
-
- exec sp_addlanguage 'Suomi','Finnish',
- 'tammikuuta,helmikuuta,maaliskuuta,huhtikuuta,toukokuuta,kesäkuuta,heinäkuuta,elokuuta,syyskuuta,lokakuuta,marraskuuta,joulukuuta',
- 'tammi,helmi,maalis,huhti,touko,kesä,heinä,elo,syys,loka,marras,joulu',
- 'maanantai,tiistai,keskiviikko,torstai,perjantai,lauantai,sunnuntai',
- dmy,1
-
- exec sp_addlanguage 'Svenska','Swedish',
- 'januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december',
- 'jan,feb,mar,apr,maj,jun,jul,aug,sep,okt,nov,dec',
- 'måndag,tisdag,onsdag,torsdag,fredag,lördag,söndag',
- ymd,1
-
-
- exec sp_addlanguage 'British', 'English',
- 'January,February,March,April,May,June,July,August,September,October,November,December',
- 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec',
- 'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday',
- dmy,1
-
- end
-
- if (@csid = 4)
- begin
-
- exec sp_addlanguage 'Czech', 'ƒeτtina',
- 'leden,únor,b²ezen,duben,kv╪ten,ƒerven,ƒervenec,srpen,zá²í,²íjen,listopad,prosinec',
- 'I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII',
- 'pond╪lí,úter∞,st²eda,ƒtvrtek,pátek,sobota,ned╪le',
- dmy,1
-
- exec sp_addlanguage 'Hungarian', 'magyar',
- 'január,február,március,április,május,június,július,augusztus,szeptember,október,november,december',
- 'jan,febr,márc,ápr,máj,jún,júl,aug,szept,okt,nov,dec',
- 'hétfï,kedd,szerda,csütörtök,péntek,szombat,vasárnap',
- ymd,1
-
- exec sp_addlanguage 'Polish', 'polski',
- 'styczeΣ,luty,marzec,kwiecieΣ,maj,czerwiec,lipiec,sierpieΣ,wrzesieΣ,pa½dziernik,listopad,grudzieΣ',
- 'I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII',
- 'poniedziaêek,wtorek,ÿroda,czwartek,piÑtek,sobota,niedziela',
- dmy,1
-
- exec sp_addlanguage 'Romanian', 'român╟',
- 'ianuarie,februarie,martie,aprilie,mai,iunie,iulie,august,septembrie,octombrie,noiembrie,decembrie',
- 'Ian,Feb,Mar,Apr,Mai,Iun,Iul,Aug,Sep,Oct,Nov,Dec',
- 'luni,marεi,miercuri,joi,vineri,sîmb╟t╟,duminic╟',
- dmy,1
-
- exec sp_addlanguage 'Croatian', 'hrvatski',
- 'sijeƒanj,veljaƒa,oºujak,travanj,svibanj,lipanj,srpanj,kolovoz,rujan,listopad,studeni,prosinac',
- 'sij,vel,oºu,tra,svi,lip,srp,kol,ruj,lis,stu,pro',
- 'ponedjeljak,utorak,srijeda,ƒetvrtak,petak,subota,nedjelja',
- ymd,1
-
- exec sp_addlanguage 'Slovak', 'slovenƒina',
- 'január,február,marec,apríl,máj,jún,júl,august,september,október,november,december',
- 'I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII',
- 'pondelok,utorok,streda,τtvrtok,piatok,sobota,nedeûa',
- dmy,1
-
- exec sp_addlanguage 'Slovene', 'slovenski',
- 'januar,februar,marec,april,maj,junij,julij,avgust,september,oktober,november,december',
- 'jan,feb,mar,apr,maj,jun,jul,avg,sept,okt,nov,dec',
- 'ponedeljek,torek,sreda,ƒetrtek,petek,sobota,nedelja',
- dmy,1
-
- end
-
- if (@csid = 5)
- begin
-
- exec sp_addlanguage 'Bulgarian', 'íΩ½úáα߬¿',
- '∩¡πáα¿,ΣÑóαπáα¿,¼áαΓ,á»ó¿½,¼á⌐,ε¡¿,,áóúπßΓ,ßÑ»ΓѼóα¿,«¬Γ«¼óα¿,¡«Ñ¼óα¿,ñѬѼóα¿',
- '∩¡πáα¿,ΣÑóαπáα¿,¼áαΓ,á»α¿½,¼á⌐,ε¡¿,,áóúπßΓ,ßÑ»ΓѼóα¿,«¬Γ«¼óα¿,¡«Ñ¼óα¿,ñѬѼóα¿',
- '»«¡Ññѽ¡¿¬,óΓ«α¡¿¬,ßα∩ñá,τÑΓóΩóΓΩ¬,»ÑΓΩ¬,ßΩí«Γá,¡Ññѽ∩',
- dmy,1
-
- exec sp_addlanguage 'Russian', 'απß߬¿⌐',
- 'ƒ¡óáα∞,öÑóαá½∞,îáαΓ,Ç»αѽ∞,îá⌐,êε¡∞,êε½∞,ÇóúπßΓ,æÑ¡Γ∩íα∞,ĬΓ∩íα∞,ì«∩íα∞,äѬáíα∞',
- '∩¡ó,ΣÑó,¼áα,á»α,¼á⌐,¿ε¡,¿ε½,áóú,ßÑ¡,«¬Γ,¡«∩,ñѬ',
- '»«¡Ññѽ∞¡¿¬,óΓ«α¡¿¬,ßαÑñá,τÑΓóÑαú,»∩Γ¡¿µá,ßπíí«Γá,ó«ß¬αÑßÑ¡∞Ñ',
- dmy,1
-
- /*
- exec sp_addlanguage 'Russian', 'áúíí≥≡c',
- '_-≈ á¼,"_≈á <¼,_ áó,_⌠á_<¼,_ c,_«-¼,_«<¼,_≈_úíó,'_-ó»÷á¼,_≥ó»÷á¼,_R»÷á¼,"_≥ ÷á¼',
- '»-≈,ñ_≈,┐ á, ⌠á,┐ c,≡«-,≡«<, ≈_,í_-,R≥ó,-R»,²_≥',
- '⌠R-_²_<¼-≡≥,≈óRá-≡≥,íá_² ,º_ó≈_á_,⌠»ó-≡ª ,íú÷÷Ró ,≈Rí≥á_í_-¼_',
- dmy,1
-
-
- exec sp_addlanguage 'Russian', ' _÷÷Γαc',
- '_-τ∩ ┐,"_τ ∩<┐,_∩ ≈,_Σ _<┐,_∩c,_R-┐,_R<┐,_τ__÷≈,'_-≈⌠µ ┐,_Γ≈⌠µ ┐,_R⌠µ ┐,"_Γ∩µ ┐',
- '⌠-τ,²_τ,⌡∩ ,∩Σ ,⌡∩c,αR-,αR<,∩τ_,÷_-,RΓ≈,-R⌠,φ_Γ',
- 'ΣR-_φ_<┐-αΓ,τ≈R -αΓ,÷ _φ∩,_≈τ_ _,Σ⌠≈-α│∩,÷_µµR≈∩,τR÷Γ _÷_-┐_',
- dmy,1
- */
-
- end
-
- if (@csid = 6)
- begin
-
- exec sp_addlanguage 'Greek', '£óó₧ñáíß',
- 'êÿñª¼ÿ¿σª¼,ö£Ö¿ª¼ÿ¿σª¼,ïÿ¿½σª¼,Ǻ¿áóσª¼,ïÿ_ª¼,ꪼñσª¼,ꪼóσª¼,Ǽܪτ⌐½ª¼,棺½£úÖ¿σª¼,Äí½αÖ¿σª¼,úÖ¿σª¼,â£í£úÖ¿σª¼',
- 'êÿñ,ö£Ö,ïÿ¿,Ǻ¿,ïÿΣ,ꪼñ,ꪼó,ǼÜ,棺,Äí½,,â£í',
- '⣼½Γ¿ÿ,Æ¿σ½₧,Æ£½ß¿½₧,ÅΓúº½₧,Åÿ¿ÿ⌐í£¼π,æßÖÖÿ½ª,뼿áÿíπ',
- dmy,1
-
- end
-
- if (@csid = 7)
- begin
-
- exec sp_addlanguage 'Turkish', 'Türkçe',
- 'Ocak,₧ubat,Mart,Nisan,Mayìs,Haziran,Temmuz,Aºustos,Eylül,Ekim,Kasìm,Aralìk',
- 'Oca,₧ub,Mar,Nis,May,Haz,Tem,Aºu,Eyl,Eki,Kas,Ara',
- 'Pazartesi,Salì,Çarƒamba,Perƒembe,Cuma,Cumartesi,Pazar',
- dmy,1
-
- end
-
- go
-