المشاركات : 27
المواضيع 9
:
: 106
الإنتساب : Oct 2016
السلام عليكم
ممكن مثال بسيط حول طريقة إستعمال المكون ZUpdateSQL في لازاروس وكيف تطبيق جمل SQL التي تحتويها
وشكرا وبارك الله فيكم
المشاركات : 141
المواضيع 22
:
: 107
الإنتساب : Nov 2015
يتم ربط zupdatesql مباشرة مع الجدول أو الكيري وهو يقوم بتوليد كود سكيال المناسب من إضافة وتحديث أو حذف
لتطبيق الكود لا تحتاج إلى شئ كل ما عليك هو الترميز المعتاد لكل إجراء على الجدول أو الكيري اي تكفي ztable1.post أو ztable1.edit ....الخ وهو يستدعي كود الإستعلام المناسب
المشاركات : 27
المواضيع 9
:
: 106
الإنتساب : Oct 2016
(19-10-2019, 09:58 AM)delphi17 كتب : يتم ربط zupdatesql مباشرة مع الجدول أو الكيري وهو يقوم بتوليد كود سكيال المناسب من إضافة وتحديث أو حذف
لتطبيق الكود لا تحتاج إلى شئ كل ما عليك هو الترميز المعتاد لكل إجراء على الجدول أو الكيري اي تكفي ztable1.post أو ztable1.edit ....الخ وهو يستدعي كود الإستعلام المناسب
السلام عليكم
بارك الله فيك أخي
لقد جربت هذا المثال لعميلة الإدراج
كود :
ZQuery1.Open;
ZQuery1.Append;
ZQuery1.FieldByName('CODE1').Value := 7;
ZQuery1.FieldByName('NAME').Value := 'bbbbbb';
ZQuery1.FieldByName('SUMNAME').Value := 'bbbbbbb';
ZQuery1.FieldByName('AGE').Value := 50;
ZQuery1.Post;
ZQuery1.Close;
ZQuery1.Open ;
مع العلم أن محتوى ZUpdateSQL1.InsertSQL.Text ;
كمايلي
كود :
INSERT INTO tt
(CODE1, NAME, SUMNAME, AGE)
VALUES
(:CODE1, :NAME, :SUMNAME, :AGE)
ونجح الأمر و لكن بالنسبة لعملية التغيير والحذف لم ينجح الأمر فمثلا هذا الكود الخاص بعملية الحذف لم يعمل
كود :
ZQuery1.UpdateObject.Params.ParamByName('OLD_CODE1').AsInteger :=1;
ZQuery1.Open;
ZQuery1.Append;
ZQuery1.Delete ;
ZQuery1.Close;
ZQuery1.Open ;
ممكن معرفة أينا يكمن الخطأ أو النقص الموجود في الكود البرمجي
وشكرا
المشاركات : 3,686
المواضيع 98
:
: 567
الإنتساب : Feb 2008
(21-10-2019, 09:53 AM)العيد1403 كتب : كود :
ZQuery1.UpdateObject.Params.ParamByName('OLD_CODE1').AsInteger :=1;
ZQuery1.Open;
ZQuery1.Append;
ZQuery1.Delete ;
ZQuery1.Close;
ZQuery1.Open ;
ممكن معرفة أينا يكمن الخطأ أو النقص الموجود في الكود البرمجي
وشكرا
السلام عليكم
لدبك خطأ منطقي او سوء استعمال الأوامر
.Append تعني تضيف سجل جديد وهذا خطأ لانك تقوم بالتحرير
اصلا الاستعلام inser into يعني اضافة
.Delete تعني حذف وهذا خطأ اخر
انصحك بمراجعة ما سبق من دروس وامثلة بالمنتدى والاطلاع على بعص الكتب...
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 141
المواضيع 22
:
: 107
الإنتساب : Nov 2015
لن ينجح معك الأمر بتلك الطريقة هناك خطاء فادح في الكود انت تعمل إضافة ثم حذف يعني +1 -1 لن يتغير شئ في قاعدة المعطيات لأنك تحذف السجل الذي تدرجه في الحين
ZQuery1.UpdateObject.Params.ParamByName('OLD_CODE1').AsInteger :=1;
ZQuery1.Open; لا اعرف هذا سطر ماء يفعل هنا لان عند إعادة فتح الجدول ينتقل المؤشر إلى السجل الاول مما يلغي عملية البحث
ZQuery1.Append; احذف هذا السطر من الكود
ZQuery1.Delete ;
ZQuery1.Close; وهذا❗❗
ZQuery1.Open ; وهذا ❗❗
المشاركات : 551
المواضيع 48
:
: 298
الإنتساب : Dec 2008
السلام عليكم
إقتباس :ونجح الأمر و لكن بالنسبة لعملية التغيير والحذف لم ينجح الأمر فمثلا هذا الكود الخاص بعملية الحذف لم يعمل
عندما تكون ZUpdateSQL مربوطة مع الكويري لن يعمل معك اي شيئ من حذف وتعديل الا بواسطة ZUpdateSQL
للحذف او التعديل استعم SQL مع ZUpdateSQL
لأستهلنّ الصعب أو أدرك المنى فما انقادت الآمال إلاّ لصابر
كل من 1 user says قال شكرا ل mobile على المشاركة المفيدة1 user says Thank You to mobile for this post
• العيد1403
المشاركات : 27
المواضيع 9
:
: 106
الإنتساب : Oct 2016
السلام عليكم
أشكر الجميع على كل التوضيحات
أخي Delphi17 بالنسبة للكود الذي قمت بتصحيحه لقد عمل ولكن الغريب في الأمر أنه يقوم بحذف التسجلية التي فيها المؤشر ولا يراعي قيمة Parameter المرسلة إليه فمثلا عندما يكون قيمة Parameter المرسلة هي 1 و عند التنفيد فإنه لا يحذف التسجيلة التي يحتوي حقلها على قيمة 1 و إنما يتم حذف التسجيلة التي فيها المؤشر رغم أن قيمة حقلها يختلف عن قيمة Parameter المرسلة للجملى SQL الموجودة في ZUpdateSQL1.DeleteSQL.Text;
وشكرا وبارك الله فيكم جميعا
المشاركات : 141
المواضيع 22
:
: 107
الإنتساب : Nov 2015
عليك كتابة كود الحذف المستعمل لكي اعرف اين الخطاء أو كود التغيير
المشاركات : 27
المواضيع 9
:
: 106
الإنتساب : Oct 2016
(01-11-2019, 04:26 PM)delphi17 كتب : عليك كتابة كود الحذف المستعمل لكي اعرف اين الخطاء أو كود التغيير
السلام عليكم
هذا هو الكود
كود :
ZQuery1.UpdateObject.Params.ParamByName('OLD_CODE1').AsInteger :=1;
ZQuery1.Delete ;
مع العلم أن جملة SQL االموجودة في في الخاصية ZUpdateSQL1.DeleteSQL.Text هي كالتالي
كود :
DELETE FROM tt
WHERE
tt.CODE1 = :OLD_CODE1
المشاركات : 141
المواضيع 22
:
: 107
الإنتساب : Nov 2015
06-11-2019, 10:02 PM
(آخر تعديل لهذه المشاركة: 06-11-2019, 10:11 PM بواسطة delphi17.)
اكيد عندك مشكل في ParamByName انت لا تستعمله بالطريقة الصحيحة
جرب هذا الكود من غير ParamByName
ZQuery1.sql := ' select * tt
Where code1 = ' + edit1.text