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

نام تاپیک: عدم کارکرد درست locate

  1. #1

    Exclamation عدم کارکرد درست locate

    سلام من با استفاده از AdoTable.sort اطلاعات را به صورت نزولی و صعودی مرتب کردم و دست آخر با فرمان locate میخواهم به همان سطری برود که قبل از مرتب سازی انتخاب شده بوده.
    شکل کلی دستورات :

    procedure TForm5.wwDBGrid1TitleButtonClick(Sender: TObject;
    AFieldName: String);
    var Nu: integer;
    begin
    Application.ProcessMessages;
    nu := form1.ADOTable2.fieldbyname('IdEmployees').AsInteg er;
    Memo1.Lines.Add(inttostr(Nu));
    if (AFieldName <> 'RecNu')and(OnMoveColu = false) then
    if (form1.ADOTable2.Sort <> '')and (Copy(form1.ADOTable2.Sort,length(form1.ADOTable2. Sort)-2,3)='ASC') then
    form1.ADOTable2.Sort := AFieldName + ' DESC' else
    form1.ADOTable2.Sort := AFieldName + ' ASC'
    else OnMoveColu := false;
    form1.ADOTable2.Locate('IdEmployees',nu,[]);
    end;

    ولی فرمانlocate برای بار اول درست عمل میکنه ولی وقتی کاربر دوبار سطر wwdbgrid را کلیک میکنه بار دوم locate به سطر قبل از مرتب سازی می رود.

    2- نظر خودتون را در باره Sort برنامه ام بگید.
    3- من از فرمان locate در برنامه ام خیلی استفاه کردم آیا قابل اطمینان است. چون در فرمان بالا حتی وقتی درستی پیدا کردن سطر مرد نظر را ازش میخوام true جواب میده ولی به سطر اشتباهی میره.

  2. #2
    کاربر دائمی آواتار soroush_vs
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    شیراز
    سن
    38
    پست
    457
    از اس کیو ال برای سورت استفاده کنید و قبل از سورت فیلدیکتای ردیف را در یک متغیر ذخیره کنید و بعد از سورت به اون ردیف برید

  3. #3
    ببخشید خواشتم مطمتن بشم.
    1- برای سورت در SQL باید از ADOQuery استفاده کنم و در قسمت SQL فرمانه را با برنامه نویسی هنگام انتخاب سطر توسط کاربر تغییر دهم.
    2- منظور از ( فیلدیکتای ) چیست؟ همان Perimery Key است! و چگونه باید از آن استفاده کنم؟
    و پیشاپیش از پاسخ شما متشکرم.

  4. #4
    کاربر دائمی آواتار soroush_vs
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    شیراز
    سن
    38
    پست
    457
    حتما لازم نیست فیلد کلیدی باشه شما میتونید ترکیب چند فیل رو که اونها باهم یه مقدار یکتا دارند رو به عنان شاخصی برای شناسایی یک ردیف(رکورد) در نظز بگیرید
    مثلا فیلد های نام و نام خانوادگی ونام پدر رو برای مشخص کردن این ردیف در نظز بگیرید

    برای مرتب کردن هم ازSQL زیر استفاده میکنید که حتما خودتون بهتر بلدید
    SELECT * FROM TABEL_NAME ORDER BY Field_Name

تاپیک های مشابه

  1. کسی میتونه در مورد Locate یه راهنمائی بکنه ؟
    نوشته شده توسط delphi5 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: چهارشنبه 31 مرداد 1386, 23:31 عصر
  2. مشکل با Locate
    نوشته شده توسط mehdi_mohamadi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 9
    آخرین پست: سه شنبه 26 تیر 1386, 06:58 صبح
  3. کار با Locate یا یه سرچ جدید
    نوشته شده توسط Answer در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 07 تیر 1386, 01:53 صبح
  4. شرط نقیض یا ترکیبی در Locate
    نوشته شده توسط Saeid59_m در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: سه شنبه 29 خرداد 1386, 15:13 عصر
  5. Locate
    نوشته شده توسط Harry در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: شنبه 08 آذر 1382, 11:09 صبح

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

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