delphi4arab منتديات دلفي للعرب
البحث باستخدام اكثر من حقل - نسخة قابلة للطباعة

+- 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+'%')
ولكن لو اردنا كتابة هذا الكود ضمن QUERY  . كيف سيتم التحويل .
مع العلم في الكود التالي يعمل اذا كان محتوى 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 تنجع حتى في مكون الاستعلام .
وايضا لاتحول الى نص وانما قم بهذا التحويل اذا كان له ضرورة في برنامجك فقط وانت تملاء اي اداة معينة اخرى .