PDA

View Full Version : مشکل حروف (ی) و (ک) در سیستم جستجو DB



سالومه
سه شنبه 31 خرداد 1384, 20:03 عصر
من یا جورایی دارم از دست زبون فارسی دیوونه میشم :mad:
من دارم روی یک دیتابیس کار می کنم که اطلاعات اون تماماً به صورت فارسی ( نه عربی ) وارد شده.

مشکل اینجاست که وقتی کاربر میخواد در بین داده ها جستجو کنه وقتی حروف رو وارد می کنه برنامه من رکوردهای مشابه اون رو میاره. اما تا به حرف (ی) و (ک) می رسیم همه چیز خراب میشه!

من اول گفتم نکنه کیبورد عربی هست! دیدم نه فارسیه! بعداً که SQL Query رو دیدم، فهمیدم که این دو کاراکتر به صورت عربی وارد شدن!

بعد از این کد برای تبدیل این دو کاراکتر مسخره استفاده کردم:


for I := 1 to length(S) do
if Ord(S[I]) = 1705 then S[I] := #1603
else if Ord(S[I]) = 1740 then S[I] := #1610;


این هم Query من هست:


ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Products');
ADOQuery1.SQL.Add(' WHERE pr_NAME LIKE ''%'+SS+'%''');
ADOQuery1.open;


ضمناً من برای ورود اطلاعات از کاربر، از کامپوننت های TNT هم استفاده می کنم!
ولی باز هم همون مشکل هست!!!!!
من برنامه نویسی فارسی زیاد بلد نیستم.
مشکل کارم کجاست؟

gbg
چهارشنبه 01 تیر 1384, 00:53 صبح
از sql server استفاده کردی؟
nvarchar یا varchar تعریف کردی

سالومه
چهارشنبه 01 تیر 1384, 01:05 صبح
خیر این دیتابیس با Access هست
مشکل از دیتابیس هست؟
چون اطلاعات توی جدول به صورت درست نمایش داده میشن

Inprise
چهارشنبه 01 تیر 1384, 01:41 صبح
مشکلت یحتمل از Keyboard Layout است . روی نسخه های مختلف ویندوز از دو Keyboard Layout فارسی/عربی مختلف استفاده شده که عموما" باعث بروز این مشکلات میشه .

سالومه
چهارشنبه 01 تیر 1384, 02:13 صبح
خوب مشکل همینجاست که منو دیوونه کرده
هم دیتابیس و هم برنامه در یک سیستم نوشته شدن! با یک کیبورد!