جستجو در پلاگین (Sqlite)

mmb4us

Member
:oops:سلام دوستان :oops:
من جستجوی سورس sample 1 رو با کمی جابجایی تو کد ها بصورت جستجوی سورس دیکشنری (Dict) در آوردم .
فقط یک مشکلی که داره اینه که دفعه ی اولی که بر روی هر رکورد ی که از پلاگین (Sqlite) پیدا شده کلیک میکنم ،
اطلاعات رکورد های دیگه رو برام نشون میده ولی از دفعه دوم به بعد دقیقا اطلاعات همون رکورد انتخاب شده رو برام نشون میده (فقط اینو بگم که اطلاعات بازگشتی از پلاگین Sqlite در چندین list box به نمایش در میاد )

از دوستان ممنون میشم اگه بگن کجای کار ایراد داره
من سورس برنامه رو پیوست کرده ام تا دوستان بهتر متوجه منظورم بشن
 

پیوست ها

  • Sample1.rar
    402.2 کیلوبایت · بازدیدها: 85

evil_gates

اين نيز بگذرد ...
قط یک مشکلی که داره اینه که دفعه ی اولی که بر روی هر رکورد ی که از پلاگین (sqlite) پیدا شده کلیک میکنم ،
اطلاعات رکورد های دیگه رو برام نشون میده ولی از دفعه دوم به بعد دقیقا اطلاعات همون رکورد انتخاب شده رو برام نشون میده (فقط اینو بگم که اطلاعات بازگشتی از پلاگین sqlite در چندین list box به نمایش در میاد )

دوست عزيز

من دقيقا متوجه منظور شما نشدم. برنامه كه مشكلي نداره؟ من تست كردم اولين ركورد و ركوردهاي بعدي رو هم همچنين به درستي شناسايي ميكنه.
 

mmb4us

Member
سلام آقای evil_gates

ممنون که به سورس برنامه نگاه کردی ولی تا اونجایکه من با این سورس ور رفته ام یادمه که دفعه ی اولی که بر روی هر رکورد پیدا شده کلیک میکنیم ، اطلاعات آخرین رکورد قبلی رو که نگاه کرده ایم رو برامون نشون می ده ( به غیر از رکورد اولی ثبت شده در پلاگین ، که اگه اولین رکورد انتخابی ما پس از ورود به برنامه باشه دقیقا اطلاعات بازگشتی از پلاگین همون اطلاعات همون رکورده)
 

peyman136

کاربر متخصص مولتی مدیا بیلدر
سلام من هم چک کردم مشکلی نبود
منظور خودتون رو واضحتر بگید و اگه براتون ممکنه یه عکس از مشکل هم بذارید تا بررسی بشه
 

mmb4us

Member
آقا سامان عزیز سلام

خوب گفته بودید منظورم رو واضحتر بگم

خوب شما برای اینکه متوجه مشکل برنامه بشید هر رکورد پیدا شده رو 2 مرتبه امتحان ( انتخاب) کنید ، تا متوجه تفاوت اطلاعات دریافتی از پلاگین بشید .

(مثلا 2 مرتبه رکورد شماره یک رو انتخاب کنید بعد در ادامه اش 2 مرتبه رکورد شماره دو را انتخاب کنید )

بعدا متوجه منظورم میشید .
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
فرصت نبود نمونه شما رو اصلاح كنم. اشكال شما تو فرايند جستجو و فراخواني نتايج تو ليست باكس هست.

من اين كد رو پيشنهاد ميكنم. شما ميتونيد با يكم تغيير از اين كد استفاده كنيد و نتايج بدست اومده رو تو ليست باكس ها نمايش بديد.

کد:
SQLQuery$='SELECT * FROM contacts WHERE LastName LIKE "'+Search$+'%";'
PluginSet("PlugIn","SQLQuery$")
PluginRun("PlugIn","Query")
PluginGet("PlugIn","Result$")
PluginGet("PlugIn","Rows")
If (Rows>0) Then
  For i=1 To Rows
    record$[i]=GetArrayItem(Result$,'#',i)
    record$[i]=record$[i]+'|'
    field_arraynum=GetArrayNum(record$[i],'|')
    For j=1 To field_arraynum
      field$[j]=GetArrayItem(record$[1],'|',j)
    Next j
  Next i
  ListBoxAddItem("List1","field$[1]")
  ListBoxAddItem("List2","field$[2]")
  ListBoxAddItem("List3","field$[3]")
  ListBoxAddItem("List4","field$[4]")
  ListBoxAddItem("List5","field$[5]")
  ListBoxAddItem("List6","field$[6]")
  ListBoxAddItem("List7","field$[7]")
  ListBoxAddItem("List8","field$[8]")
  ListBoxAddItem("List9","field$[9]")
  ListBoxAddItem("List10","field$[10]")
  ListBoxAddItem("List11","field$[11]")
  ListBoxAddItem("List12","field$[12]")
End
 

mmb4us

Member
سلام Evil _Gate عزیز

یک دنیا ممنون از راهنمایتون ،مشکلم حل شد

خیلی ممنون
خیلی ممنون
خیلی ممنون
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

خوشحالم كه مشكلتون حل شد اما طبق قوانين سايت براي تشكر كردن كافيه همون دكمه تشكر رو بزنيد و از زدن پست هاي اضافي خودداري كنيد.

موفق باشيد.
 

behjati mohamma

کاربر VIP
یک تجربه در سرچ کردن:
دوست گرامی جهت سرچ کردن حتما یک دکمه برای شروع سرچ کردن درست کن میگی چرا:!!!!
چون تو روش سرچ کردن معمول مثل نمونه شما با وارد کردن هر حرف یا کلمه کل دیتا بیس همون زمان و لحظه جستجو ومی شه شاید این در مرحله اول خوب به نظر بیاد ولی با افزایش حجم دیتابیس اینقدر سرعت رو پایین میاره که واقعا غیر قابل تحمل میشه
یک تجربه دیگه:
در موقع ران کردن از پیش فرض نمایش آخرین ثبت یعنی ران شدن اسکریپ ReadFirstRow خودداری کنید چون باز هم باید کل دیتا بیس خوانده شود و این در دیتا بیس حجم کم نشون نمیده ولی وای به روزی که حجم دیتا بیس بشه 200kb راه حل نمایش دادن پس از سرچ میباشد.
امیدوارم مفید بوده باشه.
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

دوست گرامی جهت سرچ کردن حتما یک دکمه برای شروع سرچ کردن درست کن میگی چرا:!!!!
چون تو روش سرچ کردن معمول مثل نمونه شما با وارد کردن هر حرف یا کلمه کل دیتا بیس همون زمان و لحظه جستجو ومی شه شاید این در مرحله اول خوب به نظر بیاد ولی با افزایش حجم دیتابیس اینقدر سرعت رو پایین میاره که واقعا غیر قابل تحمل میشه
در اين مورد شما ميتونيد با يك حلقه كه مثلا 20 بار ميچرخه فقط 20 تا ركورد اولي كه جستجو ميشه رو پيدا كنيد و بعد عمليات رو متوقف كنيد.

در موقع ران کردن از پیش فرض نمایش آخرین ثبت یعنی ران شدن اسکریپ readfirstrow خودداری کنید چون باز هم باید کل دیتا بیس خوانده شود و این در دیتا بیس حجم کم نشون نمیده ولی وای به روزی که حجم دیتا بیس بشه 200kb راه حل نمایش دادن پس از سرچ میباشد.
امیدوارم مفید بوده باشه.
در اين مورد ضمن اينكه بر اينكه با شما موافقم يعني شايد در بسياري از موارد اجراي اين اسكريپت ضروري نيست اما ميشه با يك شرط بعد از خوندن اولين ركورد عمليات جستجو رو متوقف كرد.
 

behjati mohamma

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

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
تا جایی که من تست کردم، ازنظر سرعت، پلاگین؛ یا درحقیقت موتور SQLite خیلی قوی هست ! (دیتابیس مورد تست حدود پنجاه و دو هزار رکورد داشت و حدود چهار مگابایت حجم )

مثلاً قسمتی در دیکشنری که همراه با جستجو، کلمات مشابه لود میشن؛ یک دیتابیس پنجاه و چند هزار رکوردی مورد جستجو قرار میگیره و تقریباً بدون تأخیر محسوسی نتایج نمایش داده میشن، دلیل اینکه تأخیر احساس نمیشه این هست که نمایش رکوردها به 10 عدد محدود شده، ولی اگر قرار بود این تعداد داده داخل لیست باکس نمایش داده بشن خیلی خیلی از سرعت کاسته میشد و عملاً بلااستفاده...

با تست هایی که من انجام دادم پاسخی که از پلاگین دریافت میشه خیلی سریع هست، ولی تاخیری که ایجاد میشه بخاطر این هست که نمایش اطلاعات در لیست باکس به میزان زیاد زمان و منابع زیادی رو می طلبه
از طرفی ذخیره کردن اطلاعات در یک فایل ( در اون مثال یک فایل HTML برای نمایش در شئ Browser)، خیلی بیشتر زمانبر هست، به همین دلیل هست که جستجوهایی که نتایج زیادی دارن ممکن هست نمایششون کمی طول بکشه، در صورتی که پاسخ دریافت شده از پلاگین به سرعت زیادی انجام شده...

درکل، پلاگین از لحاظ سرعت جوابگو هست، برای عدم افت سرعت بهتر هست کدها رو بهبود ببخشید و از روش صحیحی برای نمایش اطلاعاتتون استفاده کنید
 

جدیدترین ارسال ها

بالا