السلام عليكم و رحمة الله
بعد التحية
عندي قاعدة بيانات على MySQL و نصبت على جهازي الذي يعمل بنظام تشغيل Win7 دلفي Delphi7 و OBDC Drive لضان الاتصال بين قاعدة البيانات و دلفي و ذلك بإنشاء الملف ذو الامتداد .udl و بختيار الصفحة (ADO) و (ADOConnection) و (ADOQuery) و فعلا تحقق ذلك و أصبحت أنفذ الاستعلات من نوع SELECT حتى المعيرة منها بالعبارة where بدون أي مشكلة و تظهر النتائج على دليفي مثلما تظهر على ماي اسكيل لكن عندي مشكلة مع الاستعلامات الحذف و الإضافة و التغيير و إنشاء التقارير.
لذا اطلب منكم إرشادي إلى الحل و إلى روابط لتحميل دروس تساعدني على حل هذي المعضلة
و في الأخير تقبلوا مني فائق التقدير.
تحياتي أخي mobile
شكرا على اهتمامك بالموضوع و على الرابط الذي يحتوي على معلومات مهمة عن SQL لكن انا لا اعاني مشكلة مع SQL بل مع DEPHI 7 عندما احاول تنفيذ استعلامات الاضافة او الحذف يرفض البرنامج
هذا مثال عن الاستعلام المرفوض
كود :
INSERT INTO stagiaire VALUES (
null,
:Nom,
:Prenom,
:Grade,
:Stage,
:Origine,
:sexe,
:Age
);
و هذا كود التنفيذ
كود :
procedure TForm1.etnAjouClick(Sender: TObject);
VAR
nbEnregistrement : integer;
begin
// dm = dataModule
dm.rqtInsertStagiaire.Parameters.ParamByName('Nom').Value := edtNom.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Prenom').Value := edtPrenom.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Grade').Value := StrToInt(edtIDGrade.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Stage').Value := StrToInt(edtIDStage.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Origine').Value := StrToInt(edtIDOrigine.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Sexe').Value := edtSexe.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Age').Value := StrToInt(edtAge.Text);
dm.rqtInsertStagiaire.ExecSQL ;
nbEnregistrement := dm.rqtInsertStagiaire.ExecSQL ;
if nbEnregistrement = 1 then
showmessage('un enregistrement ajouté')
else
showmessage('aucun enregistrement n’’a été ajouté !') ;
end;
اسف على التاخير خرجت لصلاة العشاء قد تراني في المنتى وانا غائب
هل تقصد هذا ولا لدي شك في احتمال لخر لما تقصده
كود :
[align=left]
try
dm.rqtInsertStagiaire.insert
dm.rqtInsertStagiaire.Parameters.ParamByName('Nom' ).Value := edtNom.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Pren om').Value := edtPrenom.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Grad e').Value := StrToInt(edtIDGrade.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Stag e').Value := StrToInt(edtIDStage.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Orig ine').Value := StrToInt(edtIDOrigine.Text);
dm.rqtInsertStagiaire.Parameters.ParamByName('Sexe ').Value := edtSexe.Text;
dm.rqtInsertStagiaire.Parameters.ParamByName('Age' ).Value := StrToInt(edtAge.Text);
dm.rqtInsertStagiaire.open;
showmessage('un enregistrement ajouté');
except
showmessage('aucun enregistrement n’’a été ajouté !') ;
end;
[/align]
وعليكم السلام ورحمة الله وبركاته
لم أجرب الاتصال MySQL->ODBC->ADO بعد
غير أني استثقله، اقترح عليك الحلول:
- مكونات DevArt MyDAC (تجارية)
- مكونات ZeosLib (مفتوحة المصدر)
- نسخة دلفي أحدث ثم مكونات DBExpress، مع الانتباه إلى المسارات (مكتبات الربط dll) وضبط الإعدادات
بالتوفيق.
السلام عليكم و رحمة االله
هل تظهر رسالة خطأ أم ماذا ؟
+
كود :
dm.rqtInsertStagiaire.ExecSQL ;
nbEnregistrement := [COLOR=Red]dm.rqtInsertStagiaire.ExecSQL ;[/COLOR]
أليس
RowsAffected هي ما تبحث عنها ؟
بالتوفيق
تحباتي اخوتي الاعزاء اعتذر عن تاخري في الرد و السبب اني كنت خارج التغطية
عند تنفيذي للبرنامج و محاولتي ادخال المعلومات عند ضغطي على الزو الذي يحوي الكود تظهر هذي الرسالة :
[
attachment=2007]
و بعدها هذي الرسالة :
[
attachment=2008]
السلام عليكم
انا الان لم انصب دريفر MySql
لكن عندك مشكلة في ربط قاعدة البيانات لانه لا يجدها .خذ بنصيحة kachwahed
خاصة مع DBExpress ولا تنسى الملفات dbxmys.dll و libmysql.dll
شكرا للجميع على تعاونهم الحمد لله لقد تغلبت على المشكلة حيث ان الجهاز يحتوي على اكثر من قاعدة البيانات و عند ما قمت بحديد قاعدة البيانات في الاستعلام تغلبت على المشكل