ورود

View Full Version : مشکل در Sort حروف و - ه در Sql server



ardavan
چهارشنبه 09 آبان 1386, 12:19 عصر
با سلام و خسته نباشید
مشکلی که به آن بر خوردم به قرار زیر است
زمانی که انتخابی از جدولی می شود که sort ان بر اساس یک فیلد رشته ای(nvarchar)
می باشد. در نتیجه که به من می دهد حروف 'ه' را قبل از 'و' می آورد
مثال ابتدا سطر "هامون "... و بعد آن "وارد" را می آورد .
اطلاعات :
OS:Xp With Farsi Component
SQL Ver:2000 or 2005
Data Entry with Unicode
Collation :Arabic
Font:Tahoma
Select * from Tbl_Name Order By char_Field
در جستجو سایت چیزی پیدا نکردم .پوزش اگر مشکلم تکراری می باشد.

ardavan
شنبه 12 آبان 1386, 14:51 عصر
1 راه حل :کار با unicode حل میشه

Dim res As String = vbNullString
If stext <> vbNullString Then
Dim Mytmp As String = stext.Substring(0, 1)
If AscW(stext) = 1607 Then 'H
stext = Replace(stext, ChrW(1607), ChrW(1726), 1, 1, CompareMethod.Binary)
End If
If AscW(stext) = 1749 Then 'H
stext = Replace(stext, ChrW(1749), ChrW(1726), 1, 1, CompareMethod.Binary)
End If

If AscW(stext) = 1731 Then 'H
stext = Replace(stext, ChrW(1731), ChrW(1726), 1, 1, CompareMethod.Binary)
End If

If AscW(stext) = 1609 Then 'Ye
stext = Replace(stext, ChrW(1609), ChrW(1740), 1, 1, CompareMethod.Binary)
End If
If AscW(stext) = 1610 Then 'Ye
stext = Replace(stext, ChrW(1610), ChrW(1740), 1, 1, CompareMethod.Binary)
End If
If AscW(stext) = 1745 Then 'Ye
stext = Replace(stext, ChrW(1745), ChrW(1740), 1, 1, CompareMethod.Binary)
End IF

و حالا این مقدارو ذخیره کنید.