PDA

View Full Version : مشکل سرچ در حروف فارسی



Ehsansh
چهارشنبه 25 اردیبهشت 1392, 19:07 عصر
سلام.
یه مشکل عجیب خوردم. وقتی روی یک فیلد با محتوای فارسی سرچ میکنم چیزی برنمیگردونه با اینکه دقیقا چیزی که توی فرمان SELECT گفتم بیاره رو از داخل جدول کپی کردم.
مشکل چی هست و چطوری میشه حلش کرد؟

benyaminrahimi
چهارشنبه 25 اردیبهشت 1392, 19:21 عصر
شاید ی و ک دارید و نوع فیلدتون varchar هست .. Nvarchar این مشکل رو نداره اگه اینطور هست از این تکه کد میتونید برای تصحیحش استفاده کنید


DECLARE @Table NVARCHAR(MAX)
DECLARE @Col NVARCHAR(MAX)
DECLARE Table_Cursor CURSOR
FOR
--پيدا کردن تمام فيلدهاي متني تمام جداول ديتابيس جاري
SELECT a.name, --table
b.name --col
FROM sysobjects a,
syscolumns b
WHERE a.id = b.id
AND a.xtype = 'u' --User table
AND (
b.xtype = 99 --ntext
OR b.xtype = 35 -- text
OR b.xtype = 231 --nvarchar
OR b.xtype = 167 --varchar
OR b.xtype = 175 --char
OR b.xtype = 239 --nchar
)

OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Col
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC (
'update [' + @Table + '] set [' + @Col +
']= REPLACE(REPLACE(CAST([' + @Col +
'] as nvarchar(max)) , NCHAR(1610), NCHAR(1740)),NCHAR(1603),NCHAR(1705)) '
)

FETCH NEXT FROM Table_Cursor INTO @Table,@Col
END CLOSE Table_Cursor DEALLOCATE Table_Cursor

Ehsansh
چهارشنبه 25 اردیبهشت 1392, 20:13 عصر
باتشکر از کدی که فرستادی اما این هم مشکل رو حل نکرد.
حتی چیزی که توش ی و ک نداره هم مشکل داره :|
این دستور چیزی برنمیگردونه در حالیکه احسان وجود داره!
SELECT * FROM Persons WHERE FullName LIKE '%احسان%'

benyaminrahimi
چهارشنبه 25 اردیبهشت 1392, 21:06 عصر
عجیبه .. شاید مربوط به کالیژن دیتابس باشه یه دیتای جدید به تیبل اضافه کن و اونو سرچ کن

amin.m1993
چهارشنبه 25 اردیبهشت 1392, 21:19 عصر
SELECT * FROM Persons WHERE FullName LIKE N'%احسان%'