PDA

View Full Version : سوال: مشکل در مرتب سازی حرف"ک"



heivin
پنج شنبه 12 شهریور 1388, 19:27 عصر
موقعی که از محتویات جدولم رو select میکنم در مرتب سازی حرف ک و برخی حروف دیگر درست عمل نمیکنه. در ضمن Collation اون رو Arabic_CI_AS گذاشتم
از sql 2005 استفاده میکنم اینم بانکمه که ضمیمه کردم
چجوری این مشکل حل میشه؟
میشه persian collation رو به SQL2005 اضافه کرد؟

meysam_pro
پنج شنبه 12 شهریور 1388, 20:16 عصر
در Collation ی که شما انتخاب کردین حروف ک و ی به خاطر مختلف بودن در استانداردهای کیبورد دو جور در دیتابیس ذخیره میشن مثل ی و ي.
واسه حل مشکلتون یه Backup از دیتابیس تون بگیرید و کد زیر رو اجرا کنید.
کد از جناب نصیری (http://vahidnasiri.blogspot.com)


declare @tbl nvarchar(max)
,@col nvarchar(max)
declare tbl_cursor cursor
for
select
a.name,
b.name
from
sysobjects a,
syscolumns b
where a.id=b.id
and a.xtype='u'
and b.xtype=231
open tbl_cursor
fetch next from tbl_cursor into @tbl,@col
while(@@FETCH_STATUS=0)
begin
exec('update ['+@tbl+'] set ['+@col+']=replace('+@col+',nchar(1111),nchar(2222))')
fetch next from tbl_cursor into @tbl,@col
end
close tbl_cursor

heivin
پنج شنبه 12 شهریور 1388, 22:33 عصر
در Collation ی که شما انتخاب کردین حروف ک و ی به خاطر مختلف بودن در استانداردهای کیبورد دو جور در دیتابیس ذخیره میشن مثل ی و ي.
واسه حل مشکلتون یه Backup از دیتابیس تون بگیرید و کد زیر رو اجرا کنید.
کد از جناب نصیری (http://vahidnasiri.blogspot.com)


declare @tbl nvarchar(max)
,@col nvarchar(max)
declare tbl_cursor cursor
for
select
a.name,
b.name
from
sysobjects a,
syscolumns b
where a.id=b.id
and a.xtype='u'
and b.xtype=231
open tbl_cursor
fetch next from tbl_cursor into @tbl,@col
while(@@FETCH_STATUS=0)
begin
exec('update ['+@tbl+'] set ['+@col+']=replace('+@col+',nchar(1111),nchar(2222))')
fetch next from tbl_cursor into @tbl,@col
end
close tbl_cursor
مشکلم حل نشد فک کنم این کد حرف ک نیست :nchar(1111)
چجوری این کدها رو بدست بیارم و کد صحیح رو جایگزین کنم

meysam_pro
جمعه 13 شهریور 1388, 10:56 صبح
select unicode(N'ک') as Unicode

heivin
جمعه 13 شهریور 1388, 12:54 عصر
select unicode(N'ک') as Unicode
این کد ، کد کاراکتر ک رو تو سیستم من بر میگردونه. کد صحیح کاراکترها رو چجوری بدست بیارم؟

misoft.ir
شنبه 14 شهریور 1388, 02:16 صبح
سلام
دوست عزیز من مشکلم رو اینطوری حل کردم




private void TxtAddress_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'ي')
{
e.KeyChar = 'ی';
}
if (e.KeyChar == 'ك')
{
e.KeyChar = 'ک';
}

}

ب- تات
شنبه 14 شهریور 1388, 08:58 صبح
يه SP بساز مثل اين و مشكلتو حل كن


CREATE PROCEDURE [FixChar] @Tbl NVarchar(MAX),@Fld NVarchar(MAX)
AS
EXECUTE ('UPDATE '+@Tbl+
' SET '+@Fld+' = replace('+@Fld+',char(152),char(223))')



من هم يك عمر همين مشكل رو داشتم و يك عمر همينجوري حل كردم

heivin
شنبه 14 شهریور 1388, 19:12 عصر
يه SP بساز مثل اين و مشكلتو حل كن


CREATE PROCEDURE [FixChar] @Tbl NVarchar(MAX),@Fld NVarchar(MAX)
AS
EXECUTE ('UPDATE '+@Tbl+
' SET '+@Fld+' = replace('+@Fld+',char(152),char(223))')



من هم يك عمر همين مشكل رو داشتم و يك عمر همينجوري حل كردم

اگه کد صحیح حرف های و-ه-ی رو هم بذارید ممنون میشم.

در ضمن برای رفع مشکل حرف ک تو برنامه از کد زیر استفاده کردم(با کد misoft.ir اما جای 'ك' و 'ک' رو تو کد ایشان عوض کردم (چرا؟)) درست شد:


privatevoid txtLastName_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'ک')
e.KeyChar = 'ك';
}

heivin
یک شنبه 15 شهریور 1388, 16:32 عصر
ترتیب حروف 'و' 'ه' موقع مرتب کردن اطلاعات جدولم پس و پیش نشون داده میشه
چیکار کنم که ترتیب درست شه؟

ب- تات
دوشنبه 16 شهریور 1388, 08:03 صبح
ترتیب حروف 'و' 'ه' موقع مرتب کردن اطلاعات جدولم پس و پیش نشون داده میشه
چیکار کنم که ترتیب درست شه؟

آها... اين از اون مشكلاتي هست كه فكر كنم مثل من بايد باهاش سر كني . البته اگر از عزيزان كسي بتونه بصورت عملي اين مشكل رو حل كنه كمال تشكر را خواهيم داشت

heivin
دوشنبه 16 شهریور 1388, 09:47 صبح
یعنی همه این مشکلو دارن؟
کدهای این دو کاراکتر رو دیدم و فهمیدم که کد 'ه' کوچکتر از کد 'و' است.
چجوری این مشکل حل میشه؟

heivin
سه شنبه 17 شهریور 1388, 21:25 عصر
کمک کنید خیلی زایس که نرم افزار ساخته شده نتونه یه مرتب سازی ساده رو انجام بده!!!!!!!!!!!!!!!!!!!!!!!!!!!

مرتضی حمزه ئی
چهارشنبه 18 شهریور 1388, 14:40 عصر
با سلام خدمت دوستان
عزیز داخل query analayzer کد زیر را اجرا کن که یکی مربوط به حرف ی ویکی مربوط به حرف ک است این کد واسه اینه که اطلاعات قبلی داخل فایلت راجایگزین میکنه ولی اگرمیخواهی از این به بعد نیز اگر اطلاعاتی داخل فایل واردکردی این بلا سرت نیاد فایل kbdfa.dll را که واسه ات میذارم بریز داخل system32 وبعد رجیستر کن واز این به بعد با خیال راحت به کارت ادامه بده

Update Table1 SET [name] = REPLACE([name],NCHAR(1740),NCHAR(1610))
Update Table1 SET [name] = REPLACE([name],NCHAR(1705),NCHAR(1603))

باز هم اگه مشکل داشتی بگو

heivin
پنج شنبه 19 شهریور 1388, 14:18 عصر
با حروف و ه مشکل دارم:


SELECT unicode('و')AS'و'
SELECT unicode('ه')AS 'ه'

خروجی خط اول 1608
خروجی خط دوم 1607
که باعث میشه موقع مرتب سازی ه قبل از و نشون داده بشه

heivin
جمعه 20 شهریور 1388, 21:43 عصر
مشکل بالا چجوری حل میشه؟

heivin
سه شنبه 31 شهریور 1388, 00:49 صبح
دوستان گرامی لطفا راهنمایی کنید خیلی مهمه برام
سپاسگزارم

heivin
چهارشنبه 01 مهر 1388, 10:29 صبح
دوستانی که این مشکل رو دارند بگید که با هم یه فکری در این رابطه بکنیم.
میخوام بدونم همه این مشکل رو دارند یا فقط منم