رفتن به مطلب
  • 0

جستجوی سریع در اطلاعات دیتابیس


afraz aa

سوال

سلام دوستان 

 

من یه دیتابیس دارم که شامل 10هزار رکورد است حالا من میخوام یه جستجو براش بزارم

با edite textگذاشتم سرعتش کمه

 

لطفا کمک کنی روشی رو پیشنهاد بدید خیلی ممنون و تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

منم دقیقا همین مشکلو دارم.


دیکشنری با 70000 لغت می سازم.


روش های  بالا جواب نداد.لیمیت دادنم به درد نخورد.دوستان رو دیگه بلد نیستن؟


لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستم ، بهینه ترین کار رو خدمتتون گفتم

تو بیسیک، روش دیگه ای به ذهن من نمیرسه

این پست رو ببینید

http://answercenter.ir/topic/9892-جستجوی-سریع-در-اطلاعات-دیتابیس/?p=63971

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

وقتی جست جو میکنید توی چ چیزی بالا میارید و‌ نمایش میدید ؟؟؟

مولتی پنل یا ... ؟؟؟

خوب طبیعیه با ده هزار رکورد افت سرعت داشته باشید اما بازم میشه حلش کرد

توی چ چیزی نمایش میدید ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

وقتی جست جو میکنید توی چ چیزی بالا میارید و‌ نمایش میدید ؟؟؟

مولتی پنل یا ... ؟؟؟

خوب طبیعیه با ده هزار رکورد افت سرعت داشته باشید اما بازم میشه حلش کرد

توی چ چیزی نمایش میدید ؟

 

تو لیست ویو

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تو لیست ویو

 

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

 

آموزش لیمیت دادن ب دیتابیس هم داخل فروشگاه موجوده ک باهاش میتونید یاد بگیرید ک چججوری مطالبو تیکه تیکه لود کنید و بالا بیارید ک در سرعت کار هم بسیار تاثیر داره :fekr:

 

http://answercenter.ir/index.php?app=nexus&module=payments&section=store&do=item&id=9

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با استفاده از AutoCompleteEditText :

Sub AutoCompleteEditText1_TextChanged (Old As String, New As String)
	  If File.Exists(File.DirRootExternal,"/parsroid/video_data.db") = False Then
     File.Copy(File.DirAssets,"video_data.db",File.DirRootExternal,"/parsroid/video_data.db")
     End If
	 cur = Act_home.Sql1.ExecQuery("select * from Video_tbl where name like '%"&AutoCompleteEditText1.Text&"%'")
	 ListView1.Clear
	 For i = 0 To cur.RowCount-1
	 cur.Position=i
	 ListView1.AddSingleLine(cur.GetString("name"))
	  Next
End Sub

موفق باشید 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با استفاده از AutoCompleteEditText :

Sub AutoCompleteEditText1_TextChanged (Old As String, New As String)
	  If File.Exists(File.DirRootExternal,"/parsroid/video_data.db") = False Then
     File.Copy(File.DirAssets,"video_data.db",File.DirRootExternal,"/parsroid/video_data.db")
     End If
	 cur = Act_home.Sql1.ExecQuery("select * from Video_tbl where name like '%"&AutoCompleteEditText1.Text&"%'")
	 ListView1.Clear
	 For i = 0 To cur.RowCount-1
	 cur.Position=i
	 ListView1.AddSingleLine(cur.GetString("name"))
	  Next
End Sub

موفق باشید 

 

ببخشید مگه editetext باAutoCompleteEditTextچه فرقی داره که باعث سرعت میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

ببین، بحث سرعت جداست

هر چی داده کمتر باشه، سریعتر کوئری اجرا میشه

اما برای 10000 تا، اونقدرا هم طول نمیکشه

2 تا پیشنهاد

1- اینکه به جای AutoCompleteEditText1_TextChanged 

از کلیک باتن یا چیز دیگه اتفاده کنی، چون با هر بار تغییر ادیت تکست، یه بار کوئریت باید اجرا شه، بیا و بگو بعد از کلیک روی دکمه کوئری اجرا شه تا به ازای کل عبارت سرچ شده، یه کوئری داشته باشی نه برای هر حرفش

2- اینکه بیا و یه progreessDialoge نشون بده

بعد که کوئری انجام شد، ProgressDialog رو برداتر

برای اینکار کد زیر شاید کمکت کنه

Dim sql As SQL
	
	sql.ExecQueryAsync("sql","select * from Video_tbl where name like '%"&EditText1.Text&"%'",Null)
	ProgressDialogShow("loading...")
Sub sql_QueryComplete (Success As Boolean, Crsr As Cursor)
	If Success = True Then
			 ListView1.Clear
	 For i = 0 To Crsr.RowCount-1
	 Crsr.Position=i
	 ListView1.AddSingleLine(Crsr.GetString("name"))
	  Next
	  ProgressDialogHide
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...