![]() |
|
البحث باستخدام اكثر من حقل - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : البحث باستخدام اكثر من حقل (/showthread.php?tid=10024) |
البحث باستخدام اكثر من حقل - ali mohamme - 26-01-2019 السلام عليكم ورحمة الله وبركاتة عند البحث عبر اكثر من حقل . في SQL SERVER UK عن طريق StoredProcedure K نكتب . كود : ALTER proc [dbo].[SelectMainAcc]
@ID_Acc varchar(50)
as select acc_char.[id_acc],acc_char.[Name_acc],acc_char.[main_acc]as mainacc,acc1.[Name_acc] as Tarhil,acc_char.[palance]
from acc_char
inner join acc_char as acc1 on acc1.id_acc=acc_char.main_acc
where
(acc_char.id_kind=1 and acc_char.View_f=2 and
CONVERT (varchar,acc_char.[id_acc])+
acc_char.[Name_acc]
like '%'+@ID_Acc+'%')والجزء المهم في الكود هو التحويل الى VARCHAIR . لان رقم الحساب ID_ACC من نوع INTEGER كود : CONVERT (varchar,acc_char.[id_acc])+
acc_char.[Name_acc]
like '%'+@ID_Acc+'%')مع العلم في الكود التالي يعمل اذا كان محتوى EDIT ارقام حتى لوكانت VARCHAR . مثل حقل TEL كود : with DM.FDQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select id_acc as "رقم الحساب" ,name_acc as "اسم الحساب" from access');
SQL.Add('where id_kind =0 and VEW_ACC=true');
SQL.Add('and ( id_acc like'+ QuotedStr('%'+LBLEDT_FatherAcc.Text +'%' ) + ')');
SQL.Add('or ( name_acc like'+ QuotedStr('%'+ LBLEDT_FatherAcc.Text +'%' ) + ')');
SQL.Add('or ( tel like'+ QuotedStr('%'+ LBLEDT_FatherAcc.Text +'%' ) + ')');
Open();
end;مع جزيل الشكر RE: البحث باستخدام اكثر من حقل - S.FATEH - 26-01-2019 السلام عليكم مشكلتك منطقية اكثر منها برمجية ان كنت تريد ان تتعامل مع الارقام كنص لماذا تحفظها كرقم !!! الأرقام لا يتم التعامل معها كنصوص في حالة حفظها كرقم تعامل معها كأرقام في حالة حفظتها كنص تعامل معها كنصوص يمكنك استخدام Between بدل التعامل معها كنص ؟ RE: البحث باستخدام اكثر من حقل - ali mohamme - 26-01-2019 وعليكم السلام . لكنها في StoredProcedure تعمل بشكل جيد. بعد عمل كود : CONVERT (varchar,acc_char.[id_acc])ثم انها شجرة حسابات من الضروري ان تكون integer من اجل الربط مع الجداول الاخرى . يعني ان احتاج تحويلها الى string في حالة الاستعلام فقط . اما ان وضعتها varchar علي ان احولها الى ارقام في اكثر من مكان مثلا عند اريد ان استخرج max id_acc RE: البحث باستخدام اكثر من حقل - Delphi4Us - 30-01-2019 جملة الاستعلام التي تنجح في StoredProcedure تنجع حتى في مكون الاستعلام . وايضا لاتحول الى نص وانما قم بهذا التحويل اذا كان له ضرورة في برنامجك فقط وانت تملاء اي اداة معينة اخرى . |