PDA

View Full Version : جستجوی داده فارسی



atenaa
شنبه 06 مرداد 1386, 19:00 عصر
ببخشید من در جستجوی داده های فارسی در پایگاه داده دچار مشکل می شم
searchهم کردم بین تاپیک ها ولی مشکلم حل نشد
داده های فارسی ذخیره شده تو رو نمی تونم select کنم
مشکل کجاست؟
اینم دستور

" ' نام'rst.open"select * from tablename where filedname=N

البته این دستور رو وقتی تو sql analyzer اجرا می کنم مشکلی نداره

atenaa
شنبه 06 مرداد 1386, 21:21 عصر
یک موضوع دیگه اینه که این دستو تو vbnet مشکلی نداره تو vb6 نمی دونم چرا به مشکل می خورم اگه کسی کمک کنه ممنون می شم

__siavash__
یک شنبه 07 مرداد 1386, 23:02 عصر
این سورس از یه همچین دستور Select که شما نوشتی استفاده میکنه و فارسی رو هم جستجو میکنه ببین به دردت میخوره !
البته به این تاپیک ها هم یه سری بزن قایدتا باید مشکلت حل بشه (کد انواع جستجو حتی فارسی...)
http://barnamenevis.org/forum/showthread.php?t=73139&highlight=Select
http://barnamenevis.org/forum/showthread.php?t=69834&highlight=Select

atenaa
دوشنبه 08 مرداد 1386, 13:59 عصر
شاید من منظورم رو بد گفتم من تاپیکهای دیگه رو سر زدم ولی مشکلم حل نشد اینم کد

Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
a = (Text1.Text)
b = (Text2.Text)
cn.Open "file name=d:\my system\1.udl"
strsql = "select * from userpass where username like N'%" & a & "%' and password like N'%" & b & "%'"
rst.Open strsql, cn, 1, 3
If rst.EOF = True Then
MsgBox ("not found")
Text1.Text = ""
Text2.Text = ""
End If
If cn.State = adStateOpen Then cn.Close
If rst.State = adStateOpen Then rst.Close
End Sub
نمی دونم مشکل کد من کجاست اگه کسی مشکلی تو این کد می بینه میشه کمکم کنه

atenaa
سه شنبه 09 مرداد 1386, 08:10 صبح
هیچ کس یعنی نمی خواد کمک کنه؟

samiraamiri
سه شنبه 09 مرداد 1386, 13:49 عصر
احتمال می دم از نصب باشه شاید sql رو درست نصب نکرده باشی

__siavash__
سه شنبه 09 مرداد 1386, 13:57 عصر
تو کدی که تو پست 4 نوشتی تو کدوم خط چه ارروری میده ؟

atenaa
سه شنبه 09 مرداد 1386, 14:38 عصر
مرسی دیگه داشتم نا امید می شدم گفتم کسی دیگه جواب نمی ده

error:



Run-time error'2147217900 (80040 e14)':
Syntax error(missing operator)in query expression 'username like

N'% علی % 'and password like N'% احمدی % " .






و اینکه فکر نمی کم به خاطر sql باشه چون این select بدون هیچ مشکلی تو vbnet اجرا میشه


بازم ممنون

__siavash__
سه شنبه 09 مرداد 1386, 15:08 عصر
خوب شما چند تا تست انجام بده
یکی اینکه ببین اصلا با همین دستورات بدون تغییر تو فرمت فیلد های بانک اطلاعاتی داده انگلیسی رو میتونی جستجو کنی
اگه بشه بعد مشکل برمیگرده به فارسی بودن داده ها !!!!!!!!!!!!!!! :متفکر:
در ضمن فرمت فیلدهای بانکت چیه ؟ String هستند ؟
یا این که اسپل نام تیبلت رو درست وارد میکنی ؟
راستی نگفتی این اررور تو کدوم خط اتفاق میوفته ؟ (احتمالا تو باز کردن ریکوردست اتفاق میوفته)

atenaa
سه شنبه 09 مرداد 1386, 21:54 عصر
بله ارور تو باز کردن رکورد ست اتفاق می افتاد
البته همه اون مواردی که شما گفتید رو من قبل تاپیک زدن امتحان کردم انقدر مدلهای مختلف نوشتم تا بالاخره مشکل من حل شد D:
تنها کاری که کردم این بود که select رو اینجوری نوشتم




strsql = "select * from userpass where username='" & Text1.Text & "' and "'"&password=' " & Text2.Text


و بعد من واسه اینکه چک کنم که این select رکوردی رو بر می گردونه یا نه از rst.eof=false استفاده می کردم ولی الان rst.recordcount<> -1 می کنم (بعد کلی همه چی رو امتحان کردن تنها موردی بود که فکر نمی کردم مشکلی داشته باشه d:)
به هر حال ممنون لطف کردید بازم ممنون

__siavash__
سه شنبه 09 مرداد 1386, 22:56 عصر
پس قبلا با اون دستور Select قبلی داده انگلیسی هم نمیشد جستجو کنی ؟ :متفکر:
چون دستور Select مشکل داشت !!! درسته ؟

atenaa
چهارشنبه 10 مرداد 1386, 14:53 عصر
در مورد اینکه دستور select مشکل داشت یا نه....نه مشکل از select نبوده چون همون طور که قبلا گفتم همین
select هم تو Query Analayzer و هم تو vbnet جواب می ده
واسه خودم خیلی جالب بود که اون select قبلی اگه با پایگاه داده sql مورد استفاده قرار می گرفت تو vb6 حداقل
واسه داده های انگلیسی جواب می داد ولی وقتی پایگاه داده من accsess بود نه واسه انگلیسی نه واسه داده های
فارسی جواب نمی داد
و جالبتر اینکه تو vbnet به راحتی اون select قبلی واسه داده های فارسی و انگلیسی با هر نوع پایگاه داده ای
جواب می داد اشکالش چی بود که تو vb6 جواب نمیگرفتم واسه خودم جای سواله
بازم ممنون آقای سیاوش که کمک کردید