الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل من حل لموضوع find,seek في Ado

مغلق
بدأه عبدالمجيد في 4 ديسمبر 2002 · 8 رد · 1,146 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لا توجد خاصية find في ado ولذلك حاولت استخدام seek بدلا من ذلك ولكن للاسف لم اوفق هل من طريقة .

#2

السلام عليكم

اخي العزيز استخدم Locate فهي ال Method المفضلة لدي في BDE و ADO فهي ذكية بما فيها الكفاية وميزتها انها تعمل في حال عدم وجود فهرس، واذا كان الفهرس موجود فسوف تستخدمه مما يؤدي على زيادة السرعة

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#3

ممكن مثال مرفق الله يحفظك

#4

يوجد مثال مع الأمثلة المرفقه مع Delphi6

C:Program FilesBorlandDelphi6DemosAdoAdoTest

#5

شكرا لك

#6

يمكنك اخي الكريم ايضا استخدام اجراءات SQL

مثال :

procedure TfrmPhone.Button3Click(Sender: TObject);

begin

Close;

end;



procedure TfrmPhone.Button1Click(Sender: TObject);

begin



if Button1.Caption ='ابحث' then

begin

  StatusBar1.Panels[1].Text := 'جاري البحث...';

  Application.ProcessMessages;

  MyData.QFindR.Close;

  MyData.QFindR.SQL.Clear;

  MyData.QFindR.SQL.Add('SELECT * FROM Phones WHERE Name LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR WPhone LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR Fax LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR Mobile LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR Address LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR HPhone LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR Email LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('OR Remark LIKE ' + '"%'+Edit1.Text+'%"');

  MyData.QFindR.SQL.Add('ORDER BY Name');

  MyData.QFindR.Open;



     if MyData.QFindR.RecordCount <> 0 then

     begin

       MyData.QFindR.First;

       GetData;

       StatusBar1.Panels[1].Text := ' تمت عملية البحث بنجاح ، تم العثور على '+IntToStr(MyData.QFindR.RecordCount) + ' سجل/سجلات';

       StatusBar1.Panels[0].Text := 'انت الان تستعرض السجل رقم ' + IntToStr(MyData.QFindR.RecNo);



      if MyData.QFindR.RecordCount > 1 then

          begin

            Button1.Caption :='التالي';

            Button1.SetFocus;

            Exit;

          end;



     end else begin

       StatusBar1.Panels[1].Text :=' لم يتم العثور على أي سجل يحتوي على  '+ chr(13) + '" '+ Edit1.Text + ' "';

       StatusBar1.Panels[0].Text := '';

       DoNull;

       ShowMessage(' لم يتم العثور على أي سجل يحتوي على  '+ chr(13) + '" '+ Edit1.Text + ' "');

       Edit1.SelectAll;

     end;

end;



if (Button1.Caption ='التالي') and  (not MyData.QFindR.Eof) then

begin

  MyData.QFindR.Next;

  GetData;

  StatusBar1.Panels[0].Text := 'انت الان تستعرض السجل رقم ' + IntToStr(MyData.QFindR.RecNo);

end;



end;
#7

تقبل الله طاعتكم وصيامكم واسعدكم بالعيد

شكراً لجميع الاخوة وخاصة الاخ محمد نسمان

هذا مثال بعد التجربة بإستخدام locate

adotable1.Locate('Day',edit1.text,[loPartialKey

([

حيث Day اسم الحقل المراد البحث فيه ويمكن علي اكثر من حقل

#8

السلام عليكم

الأخ Midas

هذا مثال مبسط ل Locate وفي حالة عدم وجود السجل سوف يظهر رسالة

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not AdoTable1.Locate('FirstName',Edit1.Text,[]) then
    ShowMessage('السجل غير موجود');
end;

المثال يبحث عن الاسم المطابق ان اردت البحث على جزء من الاسم اضف loPartialKey في المعامل الثالث مثل مثال الأخ عبدالمجيد لكنه لا يعطي نفس امكانيات جمل ال SQl فمثلا ان اردت ان تبحث عن اي سجل قيمته تنتهي بكلمة معينة لا يمكن ذلك

يمكن ايضا البحث على قيمتين في حقلين مثل

procedure TForm1.Button2Click(Sender: TObject);
begin
  if not AdoTable1.Locate('FirstName; LastName',VarArrayOf([Edit1.Text,Edit2.Text]),[]) then
    ShowMessage('السجل غير موجود');
end;

مع تحياتي

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#9

بارك الله فيكم

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…