المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
بسم الله
السلام عليكم ورحمة الله
اخواني الكرام...
لدي مشكلة مع ال FilterOptions في دلفي...
والله المشكلة اكاد ابكي منها والله المستعان...
كل ما اضيف الكود يقول خطا...
وبصراحة لقد حاولت كثيرا ولكن بدون نتيجة...
الكود هو التالي..
PHP كود :
procedure TForm1.AdvEdit1Change(Sender: TObject);
begin
adotable1.filteroptions:=[foNoPartialCompare];
adotable1.filter:='UserName = '+QuotedStr(advedit1.Text+'*');
adotable1.filtered:=true;
end;
وفي الحقيقة لا ادري اين المشكلة لكن اظن انه في الكود...
PHP كود :
adotable1.filteroptions:=[foNoPartialCompare];
عند التنفيذ يمشي الحال...
لكن عند كتابة اي شي يعدث خلل...
والخلل هو التالي...
رسالة مكتوب فيها...
إقتباس :Project Project1.exe raised exception class EDatabaseError with message 'FilterOptions are not supported'. Process stopped. Use Step Or Run to continue
الله المستعان...
ان شاء الله السؤال واضح... على كل حال السؤال هو... ما سبب الظهور؟ وما هو الحلّ؟
بارك الله فيكم
والسلام عليكم ورحمة الله
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
احذف filteroptions من الكود فوق
والسلام عليكم
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم اخي لكن انا بحاجة الى هذه الخاصية...
هل هناك طريقة اخرى لإضافتها ؟
بارك الله فيك
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
انظر ما قمت به
استخدمت * اي جزء من قيمة الحقل يمكن مقارنهتا
استخدمت foNoPartialCompare اي ان قيمة الحقل يجب ان تكون كاملة
هذا تناقض
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
DeltaAziz كتب :
انظر ما قمت به
استخدمت * اي جزء من قيمة الحقل يمكن مقارنهتا
استخدمت foNoPartialCompare اي ان قيمة الحقل يجب ان تكون كاملة
هذا تناقض
نعم اخي الكريم...
واضح الآن ... كنت اظن انه تعني العكس...
طيب انا جربت بهذا الكود... اي بدون
PHP كود :
procedure TForm1.AdvEdit1Change(Sender: TObject);
begin
adotable1.Filtered:= false;
adotable1.filter:='UserName='+QuotedStr(advedit1.Text+'*');
adotable1.filtered:=true;
end;
ولكن النتيجة هي انه يعمل فلتر لكل شئ...
فمثلا...
عندي الأسماء
Ahmad
abo-kalil
abo_mohammad
adam
abo-zaytuona
mohammad
mouhsin
اليس من المفترض اذا كتبت انا حرف ال
a
ان يختفي آخر اسمين وتبقى الأسماء الأخرى ؟
لكن الذي يحصل هو ان الجميع يختفي ولا ادري لماذا ؟
اكيد هناك خطأ ما ؟
بارك الله فيكم
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
السلام عليكم من جديد...
والله يا اخواني...
حيّرني هذا الكود...
جربت بهذا
PHP كود :
adotable1.filter:='UserName='+QuotedStr('*');
adotable1.filtered:=true;
اليس من المفترض ان تظهر كل الأسماء في الجدول UserName في هذه الحالة ؟
لكن المحيّر هو ان كل الأسماء تختفي... والله المستعان...
على كل حال انا ماضي وسأجد الجواب بإذن الله تعلى...
بارك الله فيكم وسلام عليك
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم اخواني...
انا مازلت احاول... ولن اتوقف عن المحاولة... :o
توصلت الى شئ جديد ممكن يفيد...
ان كتبت انا هذا الكود...
PHP كود :
adotable1.filter:='UserName='+QuotedStr('adnanov' + '*');
وعندي الإسم المراد البحث عنه هو... adnanov2
في هذه الحالة لا يظهر الإسم...
لماذا ؟
نعم... حسب ما اعتقد وربما اعتقادي خطأ...
هو انه يعتبر ال
كنص string والله اعلم...
هل من طريقة مثلا StringToWildCard او ما شابه ذلك ؟
بارك الله فيكم
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم اخواني الكرام...
الآن بفضل الله تأكدت ان المشكلة هي كما في المشاركة السابقة...
دلفي يعتبر ال '*' نص سترينج String ... و الدليل على هذا انه تم اضافة اسم
وبعدها البحث عنها... والنتيجة النّها تم ايجادها...
..........
+ انه تم البحث كثيرا وتوصلت الى شي قد يكون مفيدا...
بنسبة للعلامة
إقتباس :An at sign after a string matches any number of occurrences of that string followed by any characters, including zero characters. For example, bo@ matches bot, boo, and bo.
ولكن مشكلتي الآن كيف اضيفها في الكود.. ؟
ان اضفتها لشكل التاآلي...
PHP كود :
adotable1.filter:='UserName='+QuotedStr('adnanov' + '@');
فسيعتبرها كنص string....
و المراد هو ليس هذا ...
بل ان تكون كما في الشرح فوق...
والله المستعان...
انا على كل حال... سأتابع حتى اجد الحلّ بإذن الله....لأستفيد ويستفيد غيّري بإذن الله... وان كان لدى احد منكم الحلّّّ فأنا موجود

والسلام عليكم ورحمة الله
المشاركات : 171
المواضيع 24
:
: 0
الإنتساب : Jan 2009
السلام عليكم محاولة فقط
كود :
procedure TForm1.AdvEdit1Change(Sender: TObject);
begin
adotable1.Filtered:= false;
adotable1.filter:='UserName='+QuotedStr(advedit1.Text+'*''');
adotable1.filtered:=true;
end;
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
بارك الله فيك اخي
Anter2010 على المحاولة...
لكن لم تنجح العمليّة
اختفا كل شئ