Avatar billede arnejan Nybegynder
06. februar 2004 - 23:09 Der er 14 kommentarer og
1 løsning

arabisk text i database.

Hvad skal jeg gøre for at kunne gemme f.eks. arabisk text i en database. Har forsøgt at skifte typen fra varchar til nvarchar. Men det hjælper ikke, der kommer stadig nogen spørsmålstegn.

Jeg snakker med DB fra .NET.

Mvh
Avatar billede trer Nybegynder
07. februar 2004 - 10:12 #1
Du skal sætte COLLATION på de tabeller / kolonner du vil have arabisk tekst i, til en type der understøtter arabisk.

ALTER TABLE MyTable ALTER COLUMN CharCol
            varchar(10)COLLATE xxxxxxxx NOT NULL

Hvor xxxxxxxx er navnet på den collation du vil bruge.

Du kan se de forskellige collations ved denne query:

SELECT *
FROM ::fn_helpcollations()
Avatar billede arnejan Nybegynder
07. februar 2004 - 16:26 #2
Jeg bruger ikke SQL til at skabe eller ændre i min DB, det gør jeg inde i Interprice Manager.

Men jeg kigger på det. Kan jeg godt køre SELECT * FROM ::fn_helpcollations() inde i Interprice Manager.
Avatar billede arnejan Nybegynder
07. februar 2004 - 16:27 #3
Jeg mener : Jeg kan jo godt køre SELECT * FROM ::fn_helpcollations() inde i Interprice Manager. Så jeg kigger på det.

Flere råd er stadig velkomne.
Avatar billede arnejan Nybegynder
07. februar 2004 - 17:30 #4
Men jeg har fundet ud af at bare jeg sætter typen til nvarchar kan jeg sagtens have arabisk. Jeg kan bare ikke køre SQL´en fra .NET. Hvis jeg i min kode kører:

UPDATE textTable SET text = 'noget_arabisk' WHERE

Kommer der bare spørsmålstegn i DB. Man må skulle sende det afsted til DB på en anden måde?

Mvh
Avatar billede arnejan Nybegynder
07. februar 2004 - 17:49 #5
Hvis jeg skriver

UPDATE textTable SET text = N'noget_arabisk' WHERE

Og ændrer typen til nvarchat (eller ntext) virker det fint.

Det er vel det der skal til, eller er der er der problemer med at gøre det på denne måde.

Mvh
Avatar billede arne_v Ekspert
07. februar 2004 - 17:56 #6
Umiddelbart vil jeg sige at VARCHAR => kun et alfabet (f.eks. vest europæisk),
NVARCHAR => flere alfabeter (f.eks. vest europæisk og arabisk), collation =
sorterings regler.
Avatar billede trer Nybegynder
07. februar 2004 - 18:09 #7
VARCHAR er 8 bit (8bit ANSI charset - men stadigt valgfrit collation), NVARCHAR er lig UNICODE er 16bit.

Og det korrekte ved indsættelse i unicode er N'tekststreng'  - det overholder SQL92 standarden.
Avatar billede trer Nybegynder
07. februar 2004 - 18:11 #8
Mht at bruger Enterprise Manager; Ingen problemer i det - det er blot nemmere at vejlede med SQL syntaks fremfor at forklare hvor man klikker i et grafisk miljø.

I øvrigt kan EM scripte ændringerne for dig, så du har en nem dokumentation for hvad du har lavet af ændringer; Når du ændrer / opretter en tabel er der en lille scriptikon i EM du kan trykke på...
Avatar billede trer Nybegynder
07. februar 2004 - 18:47 #9
hov, havde ikke set, at det var dig Arne, der kom med input - og i øvrigt imho korrekt input :-)
Avatar billede arne_v Ekspert
07. februar 2004 - 19:22 #10
Jeg ville bare lige sikre mig at forskellen på VARCHAR/NVARCHAR og COLLATION
fremgik nogenlunde klart.
Avatar billede trer Nybegynder
10. februar 2004 - 12:50 #11
arnejan> Har du behov for mere hjælp?
Avatar billede arnejan Nybegynder
10. februar 2004 - 13:13 #12
Tak, det virker fint nu, og jeg har ikke engang rigtig fattet hvad COLLATION er for noget.
Avatar billede arnejan Nybegynder
10. februar 2004 - 13:14 #13
Hvis det har noget med sortering/rækkefølge at gøre er jeg ligeglad. Fordi jeg soterere kun på ID.
Avatar billede arne_v Ekspert
10. februar 2004 - 13:27 #14
COLLATION er primært sortering
Avatar billede yanay Praktikant
01. juni 2013 - 21:55 #15
Hvor ændre du det der hen? sådan så der ikke står ????? når man skriver arabisk?


Fordi når jeg skriver arabisk så kommer der spørgsmåltegn..

Jeg bruger MSSQL
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester