تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 9 از 9

نام تاپيک: ساخت جستجو مثل گوگل برای بانک اطلاعاتی برنامم

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2009
    پست ها
    68

    14 ساخت جستجو مثل گوگل برای بانک اطلاعاتی برنامم

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

    این داده ها توی بانک هست :
    جدول 1 --> کتاب فارسی نویسنده این کتاب ...
    جدول 2--> کتاب ریاضی انتشارات ...
    جدول 3--> کتاب انگلیسی ( کتاب تست )

    من وقتی زدم در باره کتاب جستجو کنه می خوام خروجی رو بصورت زیر نشون بده:

    کتاب فارسی ...
    کتاب ریاضی ...
    کتاب انگلیسی ...


    اگه اساتید راهنمایی کنن که چطوری می تونم این کار رو انجام بدم ممنون می شم.

  2. #2
    داره خودمونی میشه shahrokhkian's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    -
    پست ها
    70

    پيش فرض

    شما میتونی یک View بسازی و برای اینک اطلاعات مورد نظر را در اون بریزی از یک کوئری با تابع (insert into) استفاده کنی که در قسمت Where اون از تابع Like استفاده میکنی.

  3. این کاربر از shahrokhkian بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2009
    پست ها
    68

    پيش فرض

    یک کوئری با تابع (insert into) استفاده کنی که در قسمت where اون از تابع like استفاده میکنی.
    اگه می شه یه کم بیشتر توضیح بدید یا اگه مثالی چیزی دارید لطف کنید اینجا بزارید ممنون.

  5. #4
    داره خودمونی میشه shahrokhkian's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    -
    پست ها
    70

    پيش فرض

    سلام
    اول یه جدول توی بانک برنامت بساز برای اینکه حاصل جستجوهات را توی اون ذخیره کنی. فیلدهای اونم میتونه نام کتاب و توضیحات مرتبط با اون باشه. من از این دوتا فیلد با نام BookName و Explain استفاده میکنم. فرض میکنیم نام این جدول MyTable است.
    حالا وقتی میخوای یه جستجو انجام بدی ابتدا این جدول را خالی میکنیم تا چیزی از جستجوهای قبلی باقی نمونده باشه.
    برای این کار توی دلفی از یک کوئری مثلا با نام ExecQuery استفاده میکنیم.

    ExecQuery.Close;
    ExecQuery.Sql.Clear;
    ExecQuery.Sql.Append('Delete From MyTable');
    ExecQuery.ExecSQL

    حالا میتونیم جستجو را انجام بدیم و حاصل اونو در این جدول ذخیره کنیم.
    برای مثال این جستجو را من بر روی جدول 1(Table1) و جدول 2 (Table2) انجام میدم.فرض میکنیم شما عبارت Book را جستجو کرده اید و همه جداول شما فیلدهای BookName و Explain را دارند.

    ExecQuery.Close;
    ExecQuery.Sql.Clear;
    ExecQuery.Sql.Append('Insert Into MyTable Select BookName,Explain From Table1 Where BookName
    Like ''%Book%''');
    ExecQuery.ExecSQL

    همین کار را برای جدول دوم انجام میدهیم.


    ExecQuery.Close;
    ExecQuery.Sql.Clear;
    ExecQuery.Sql.Append('Insert Into MyTable Select BookName,Explain From Table2 Where BookName
    Like ''%Book%''');
    ExecQuery.ExecSQL

    این کار را برای تمامی جداول انجام میدهیم.(البته میتوانید اینکار را در یک حلقه انجام دهید)
    حالا چیزی را که شما جستجو کرده بودید همه در جدول MyTable ذخیره شده است و شما میتوانید محتویات آنرا به عنوان حاصل جستجو نماش دهید.
    Last edited by shahrokhkian; 11-03-2009 at 19:35.

  6. 2 کاربر از shahrokhkian بخاطر این مطلب مفید تشکر کرده اند


  7. #5
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    پيش فرض

    نمی دونم دقیقا درست فهمیدم یا نه : ( اینجوری فهمیدم که می خواهید یک سری اطلاعات را در تمام جدول ها جستجو کنید ) برای این کار بهتر است از Join استفاده کنید به این صورت می تونید هر اطلاعاتی را که می خواهید به راحتی از تمام جدول ها به دست بیارید ویرایش کنید ...

  8. #6
    داره خودمونی میشه shahrokhkian's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    -
    پست ها
    70

    پيش فرض

    as13851365 عزیز
    با توجه به تعریفی که دوستمون از جدولهاش کرده فکر نمیکنم بشه با Join این اطلاعات را بدست آورد.

  9. این کاربر از shahrokhkian بخاطر این مطلب مفید تشکر کرده است


  10. #7
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2009
    پست ها
    68

    پيش فرض

    بازم سلام
    چون من تا حالا جستجو با دلفی نساختم (قبلا با vb برنامه می نوشتم) موضوع جستجو برنامم رو کامل می گم که اساتید بهتر بتونن راهنمایی کنن:
    همون طور که قبلا گفتم 9 تا جدول دارم . می خوام کاربر هر چی که توی کادر جستجو نوشت و زد روی دکمه جستجو برنامه بره توی این 9 تا جدول بگرده و زیر کادر جستجو هر چی که به کلمه در خواستی کاربر شبیه باشه بیاره دقیقا مثل جستجوی گوگل بعد که نتایج جستجو امد کاربر روی هر کدوم رو که کلیک کرد صفحه ای که مربوط به اون اطلاعات هست باز بشه.

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

    برای این کار بهتر است از Join استفاده کنید
    اگه باید از join استفاده کنم لطفا مقاله ای چیزی در این رابطه معرفی کنید. ممنون 

    مشخصات برنا مم و بانک اطلاعاتیم:

    بانک اطلاعاتی : Microsoft SQL Server 2005 Standard Edition

    زبان برنامه نویسی : Delphi 7

    ابزاری که با هاش با بانک ارتباط برقرار می کنم : ADOQuery و ADOConnection
    Last edited by delphi7; 12-03-2009 at 00:00.

  11. #8
    داره خودمونی میشه shahrokhkian's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    -
    پست ها
    70

    پيش فرض

    برای اینکار شماره جدول وکلید اصلی هر رکورد را هم در MyTable ذخیره کن.
    بعد وقتی روی یک رکورد این جدول کلیک میشه شما اول جدول اصلی را با شماره جدول مورد دسترسی قرار میدی بعد با کلید اصلی که داری رکورد مرد نظرت رو توی این جدول پیدا میکنی. حالا به راحتی میتونی اونو نمایش بدی.

  12. این کاربر از shahrokhkian بخاطر این مطلب مفید تشکر کرده است


  13. #9
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2009
    پست ها
    68

    پيش فرض

    ممنون از راهنمایی ها تون فقط یه سوال دیگه چطور می تونم نام فیلد رو هم بر گردونم که بدونم داده مال کدوم فیلد هست ؟؟
    چون هر فیلد یه بخش برای خودش توی برنامم داره یا ساده تر بگم هر فیلد برای خودش یه textbox و یه TrackBar

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •