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

في BDE طريقة الأدخال البيانات في Query

مغلق
بدأه YACIN في 1 يونيو 2006 · 9 رد · 1,150 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

أخوتي الكرام أود الاستفسار . عن إدخال البيانات للمكون Query

مع العلم لدبا ربط بين جدولين واستعملت لهما Query2.Query1

ويجب علياء استعمال Query بدل Table لأني استخدم ميزات توجد فقط في Query مثل البحث بالحرف مع غربلة البيانات ...الخ.

في خصائص المكون Query وجدت RequestLive عند تغييره إلى True تصبح Query مفتوحة للإضافة مباشرة بحيث يكون كود إدخال البيانات مثل Table . ماذا عن هذا ...؟

أم نستخدم جمل SQL عند الإدخال والتعديل

وشكرا لكم . :rolleyes:

تم تعديل هذه المشاركة بواسطة YACIN في 1 يونيو 2006 في 22:34

#2
اقتباس
ويجب علياء استعمال Query بدل Table لأني استخدم ميزات توجد فقط في Query مثل البحث بالحرف مع غربلة البيانات ...الخ.

هناك ايضا في table بحث باستخدام احد التابعين Lookup او استخدام التابع Locate و هناك ايضا الخاصية Filter

اقتباس
في خصائص المكون Query وجدت RequestLive عند تغييره إلى True تصبح Query مفتوحة للإضافة مباشرة بحيث يكون كود إدخال البيانات مثل Table . ماذا عن هذا ...؟

يمكن استخدام هذه الخاصية اذا اردت ان تكون Query هي ليست Readonly اي ليست للقراءة فقط و بالتالي يمكن التعديل باستخدامها و لكن لم اجرب ان اعمل

ذلك يوم لان Tableيؤدي كل ما هو مطلوب

و اذا كان هناك شيئ تريد ان تعمله لا يمكنك تنفيذه باستخدام table قم باستخدام تعليمات SQL فهي افضل و اسرع

اذا عليك استخدام Table في حال هناك شيئ لم تستطع تنفيذه استخدم Query + SQL

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

الله يفتح عليك اخي الكريم waeldalol كنت اتوقع الرد منك .

في حالة استخدمناء جمل SQL لتعديل جدول ما

فيجب عليناء وضع اثنين من Query واحدة للقراءه فقط و الأخره لتعديل ويتم فتح واغلاق الأوله

- أم نتسعمل Query واحدة فقط وبعد كود التعديل مباشرة نضع جملة SQL للفتح . ماهي الطريقة العلمية والمضمونه .

وشكرا

#4

الحل الافضل ان تضع Query في ال MainForm او في DataModule

و تقوم باعتمادها فقط سواء للقراءة او للكتابة

و عندما تريد ان تتعامل مع هذه ال Query تكتب ما يلي

with adoquery1 do
begin
  close;
  sql.clear;
  sql.add('الجملة التي تريد تنفيذها');
  open;
end;

هذا افضل بكثير من وضع عدد كبير من ال Query ووضع التعليمة في وقت التصميم

تم تعديل هذه المشاركة بواسطة waeldalol في 10 يونيو 2006 في 09:23

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

نعم و ضعت Query في DataModule

- حسب ما فهمت نضع Query واحدة فقط للكتابة والقراءه معا

يمكن لهذه الطريقة تنجح مع جمل SQL للبحث وغربلة البيانات لأن توجد open في نهاية الجملة .

عندما تكون جملة أضافة مثلا نجد في نهاية الجملة ExecSQL هناء لتفتح .إلا بوضع جملة بعده وبعد End; للفتح . ماذا يعني هذا ..

كود ادخال البيانات ما الخطاء فيه

procedure TForm1.Button2Click(Sender: TObject);
begin
	with Query1 do
	 begin
	  Close;
	  SQL.Clear;
	  SQL.Add('INSERT INTO FT');
	  SQL.Add('( Annee,Nfact,Nproduit,Qun,Prix)');
	  SQL.Add(' Values');
	  SQL.Add('(:P1,:P2,:P3,:P4,:P5)');
	  Prepare;
	  Params.ParamByName('P1').Value := Edit1.Text;
	  Params.ParamByName('P2').Value := Edit2.Text;
	  Params.ParamByName('P3').Value := Edit3.Text;
	  Params.ParamByName('P4').Value := Edit4.Text;
	  Params.ParamByName('P5').Value := Edit5.Text;
	  ExecSQL;

end;

end;
end.
#6

اولا اسف على الخطأ فوق

اقتباس
sql.open;

وهي يجب ان تكون open مباشرة تم اصلاح الخطأ في المشاركة

بالنسبة ل Open و ExceSQL يؤديان نفس العمل و هناك بعض الاختلافات على ما اعتقد بينهم من حيث الاحداث التي سوف تشتعل.

اقتباس
كود ادخال البيانات ما الخطاء فيه

الخطأ في هذه الجملة

 SQL.Add('(:P1,:P2,:P3,:P4,:P5)');

حيث انك وضعت قيم و لكن لم تراعي انه يجب احاطة النصوص ب ' لكي تكون جملة الاضافة صحيحة هناك الكثير الكثير من المشاركات في هذا الصدد

ابحث في المنتدى ;)

تم تعديل هذه المشاركة بواسطة waeldalol في 10 يونيو 2006 في 09:23

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#7

شكرا لك اخوي العزيز waeldalol

#8

مشكلة في كود الأضافة بجمل الSQL المشكلة في هذا الكود في التاريخ جربت دون تاريخ يعمل جيد لكن عندا اضافة التاريخ لايعمل

ساعدوني جزاكم الله

with Query1 do
Begin
  SQL.Clear;
  SQL.Add('Insert into CaisseFou');
  SQL.Add('(Annee,Moantat,Desa,Nfournisseur,Date)');
  SQL.Add('Values ('+DM.TAnneCH_A.Text+','+
						QuotedStr(edit2.Text)+','+
						QuotedStr(edit3.Text)+','+
						QuotedStr(DM.QFornissNum_Four.Text)+','+
						QuotedStr(DateToStr(DateTimePicker1.DateTime)+')');
					ExecSQL;
#9

لازال املي فيكم في تصحيح الكود في الأعلى

#10

دائما تمثل حقول التاريخ مشكلة عند توليد عبارة sql وذلك لاختلاف تنسيق التاريخ وما تقبله قاعدة البيانات ولكن من الممكن الاعتماد على parameter من نوع تاريخ من أجل حقل التاريخ ليصبح كالتالي:

SQL.Add('Insert Into Table(IntField, StrField, DateField) Values(0, '''koko''', :DateParam)');

أو تكون كل الحقول بارامترات كالتالي:

SQL.Add('Insert Into Table(IntField, StrField, DateField) Values(:IntParam, :StrParam, :DateParam)');

تم تعديل هذه المشاركة بواسطة fh_feras في 15 يوليو 2006 في 05:49

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

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