• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشکل با جستجوی رکوردهای فارسی

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
من یه فرم جستجو دارم که از طریق get یک فرم محتوای رکوردها رو مورد جستجو قرار میده.تا حالا با access و mysql
هم از این شیوه استفاده می کردم اما با فارسی مشکل نداشت اما تو sql با فارسی مشکل داره ایا به نحوه وارد کردن فیلد های فارسی ربط داره اگه کمک کنید ممنون میشم کارم خیلی گیره.
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
براي وارد كردن فيلد فارسي يه N قبلش بزار
مثلا
کد:
select * from mytable where username=N'مقدار فارسي'
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
مشکل من اینه که اینتوری رکورد اضافه می کنم و نمی دونم N رو کجاش بگذارم.
PHP:
  Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_my_Dbco_STRING
    MM_editCmd.CommandText = "INSERT INTO dbo.kala (skala, id, user) VALUES (?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 100, Request.Form("skala"))
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
مشکل من اینه که اینتوری رکورد اضافه می کنم و نمی دونم N رو کجاش بگذارم.
PHP:
  Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_my_Dbco_STRING
    MM_editCmd.CommandText = "INSERT INTO dbo.kala (skala, id, user) VALUES (?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 100, Request.Form("skala"))

خط سوم كه قبلا احتمالا اينجوري بوده رو
کد:
MM_editCmd.CommandText = "INSERT INTO dbo.kala (skala, id, user) VALUES ('مقدار فارسي', 'مقدار فارسي', 'مقدار فارسي')"
الان اينجوريش كن
کد:
MM_editCmd.CommandText = "INSERT INTO dbo.kala (skala, id, user) VALUES (N'مقدار فارسي', N'مقدار فارسي', N'مقدار فارسي')"
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
حواست باشه دیتا تایپ هات هم باید با n شروع بشه مثلا ntext یا nvarchar و ...

در ضمن مشکل حروف فارسی رو مثل ی و ک که با عربی قاطی میشه رو هم در نظر داشته باش .
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
nvarchar هست با تکست های بدون ی و ک هم امتحان کردم.حتی خودم دستی تو sql دیتا فارسی وارد کردم
دیگه نمی دونم چیکار کنم من حتی با mysql هم این مشکلو نداشتم.
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
آقا تا اونجايي كه من كار كردم براي ديتاي فارسي فرق mysql و sql server همون N كه خدمتتون گفتم
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
N رو بذار حله دیگه چی مینویسی بذار اینجا ببنیم !
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
من یا بهتره بگم دریم ویور اینطوری رکورد اضافه می کنه به صورت پارامتری اگه بخوام همه insert هاش رو دوباره بنویسم خیلی زمان می بره.اما نمی دونم اون N رو کجای این کدها بگذارم.

از این کد برای خواندن استفاده می کنم:
PHP:
Set User _cmd = Server.CreateObject ("ADODB.Command")
User _cmd.ActiveConnection = MM_MY_Conntection_STRING
User _cmd.CommandText = "SELECT * FROM dbo.User WHERE Name LIKE ?" 
User _cmd.Prepared = true
User _cmd.Parameters.Append User _cmd.CreateParameter("param1", 2000, 1, 100, "%" + User__MMColParam + "%") ' adVarChar

Set User = User _cmd.Execute

User__MMColParam هم اینه:

PHP:
User__MMColParam = Request.QueryString("mnt")

اینم کد نوشتن:

PHP:
Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_MY_Conntection_STRING
    MM_editCmd.CommandText = "INSERT INTO dbo.User (id, name, username) VALUES (?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 100, Request.Form("id"))
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
خوب اون بالا كه بهتون گفتم N رو كجا بزاري:eek:
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
اینجا پارامتری وارد میشه و علامت سواله نه مقدار فارسی اگه ممکنه تو همین کدها این N رو اضافه کن به عنوان نمونه.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
بابا همون N رو بذار قبل از پارامترهات:
کد:
INSERT INTO dbo.User (name) VALUES (N'"+strName+"')"

گرفتی ؟؟؟:happy:
 
بالا