نمایش نتایج 1 تا 4 از 4

نام تاپیک: جستجوي پيشرفته(بسيار فوري)

  1. #1

    جستجوي پيشرفته(بسيار فوري)

    من يك فرم دارم با انواع جعبه متن ها مثل نام - نام خانوادگي - .... مي خواهم جستجو فقط روي فيلدهايي كه پر مي كنم انجام بشه و بقيه رو ناديده بگيره از Like و % استفاده كردم نشد. چگونه مي توان اين كار را انجام دهم ؟ چه كدي در Stored Procdure بنويسم كه همين كار انجام دهد؟ كدام بهتر است؟ كاملا گيجم

  2. #2
    کاربر تازه وارد آواتار hyl_piano
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    شیراز
    سن
    39
    پست
    41

    نقل قول: جستجوی پیشرفته(بسیار فوری)

    Select * from Table1 where (field1 like '%'+Edit1.text+'%') and (field2 like'%'+Edit2.text+'%') and ...

  3. #3
    کاربر جدید
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    سمنان
    پست
    12

    نقل قول: جستجوي پيشرفته(بسيار فوري)

    می تونی از adoquery استفاده کنی و دستورات sql را برای قسمت where با کد وارد کنید
    adoquery1.close;
    adoquery1.sql.add('select * from table');
    if edit1.text<>'' then
    adoquery1.sql.add('where name='+edit1.text')
    else if edit2.text<>'' then
    ...

  4. #4
    کاربر دائمی آواتار nilidelphi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ارومیه
    پست
    418

    نقل قول: جستجوي پيشرفته(بسيار فوري)

    سلام دوست عزیز
    می تونی از کد زیر هم استفاده کنی جستجو خیلی بهتر میشه.
    البته سرعتش پایین میاید ولی برای جبران کمبود سرعت می تونی کد رو در یک storeproceduree بنویسی
    و پارامتر هاشو بفرستی :

    procedure TForm1.E1Change(Sender: TObject);
    begin
    if e1.Text<>'' then
    begin
    adq.SQL.Clear;
    adq.SQL.Add('select * from dbname where name like '+#39+e1.Text+'%'+#39+';');
    adq.Open;
    end
    else
    begin
    adq.SQL.Clear;
    adq.SQL.Add('select * from dbname ;');
    adq.Open;
    end;
    end;

قوانین ایجاد تاپیک در تالار

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