25-02-2013, 12:37 AM
السلام عليكم ورحمة الله وبركاته
لدي dbgrid مربوط بـ adotable وقمت بتفعيل خاصية الـ Filter الخاصة بالـ table
وأضفت Edit من أجل البحث
الـ Edit يعمل جيدا مع القيم النصية وفي الأساس وظيفة الـ Filter لا تقبل إلا String فقط
حقل الـ ID في قاعدة بياناتي هو عبارة عن Auto number - Integer وهذا مايسبب تضارب وأخطاء عند المحاولة للبحث برقم الـ ID
قمت بمحاولة تحويل رقم الـ ID إلى VARCHAR وهي الوظيفة التي تحول إلى نصوص في لغة الـ SQL ولكنني فشلت.
يمكن حل المشكل بواسطة تغير نوع البيانات للحقل ID من Integer إلى String ولكنني سأخسر سرعة الفهرسة بالإضافة إلى وظيفة إدراج أرقام أوتوماتيكيا في حقل الـ ID
هل لديكم أية أفكار عن تخطي هذا المشكل دون تغيير نوع البيانات أو أية أفكار آخرى ؟
مقدرة لكم جهودكم وجزاكم الله خيرا ومتأسفه جدا على الإزعاج
لدي dbgrid مربوط بـ adotable وقمت بتفعيل خاصية الـ Filter الخاصة بالـ table
وأضفت Edit من أجل البحث
كود :
procedure TForm1.SearchEditChange(Sender: TObject);
var
temp: String;
begin
temp := Stringreplace(SearchEdit.Text, '''', '''''', [rfReplaceAll, rfIgnoreCase]);
if temp <> '' then
begin
ADOTable.Filter := '(Name LIKE ''%' + temp + '%'')' + ' OR ' +'(ID LIKE '+'%'+ temp + '%'+')';
end
else
ADOTable.Filter := '';
end;الـ Edit يعمل جيدا مع القيم النصية وفي الأساس وظيفة الـ Filter لا تقبل إلا String فقط
حقل الـ ID في قاعدة بياناتي هو عبارة عن Auto number - Integer وهذا مايسبب تضارب وأخطاء عند المحاولة للبحث برقم الـ ID
قمت بمحاولة تحويل رقم الـ ID إلى VARCHAR وهي الوظيفة التي تحول إلى نصوص في لغة الـ SQL ولكنني فشلت.
يمكن حل المشكل بواسطة تغير نوع البيانات للحقل ID من Integer إلى String ولكنني سأخسر سرعة الفهرسة بالإضافة إلى وظيفة إدراج أرقام أوتوماتيكيا في حقل الـ ID
هل لديكم أية أفكار عن تخطي هذا المشكل دون تغيير نوع البيانات أو أية أفكار آخرى ؟
مقدرة لكم جهودكم وجزاكم الله خيرا ومتأسفه جدا على الإزعاج


