ادخال بيانات في قاعدة ms sql server
#1
السلام عليكم ورحمة الله وبركاته
مساكم الله بالخير

عندي جدولين في قاعدة بيانات ms sql server وأحاول أن أدخل بيانات الفورم في الجدول الأول ونفس البيانات وزيادة في الجدول الثاني لكن الخطأ قائم


كود :
// ادخال البيانات في جدول المستخدمين adoquery5.Close; adoquery5.Parameters.ParamByName('nouser').Value:=trim(edit1.Text); adoquery5.Parameters.ParamByName('nuser').Value:=trim(edit2.Text); adoquery5.Parameters.ParamByName('pass').Value:=trim(edit3.Text); adoquery5.Parameters.ParamByName('section').Value:=trim(combobox1.Text); adoquery5.Parameters.ParamByName('nosection').Value:=trim(edit4.Text); adoquery5.Parameters.ParamByName('guser').Value:=trim(combobox2.Text); // تنفيذ استعلام ادخال البيانات في جدول المستخدمين adoquery5.ExecSQL; //============= adoquery8.Close; // ادخال بيانات الحركة على في جدول spy1 adoquery8.Parameters.ParamByName('names').Value:=trim(edit5.Text); adoquery8.Parameters.ParamByName('sections').Value:=trim(edit6.Text); adoquery8.Parameters.ParamByName('nos').Value:=trim(edit7.Text); adoquery8.Parameters.ParamByName('whatt').Value:=trim(SpeedButton2.caption); adoquery8.Parameters.ParamByName('nouser').Value:=trim(edit1.Text); adoquery8.Parameters.ParamByName('nuser').Value:=trim(edit2.Text); adoquery8.parameters.paramByName('section1').value := trim(combobox1.Text); adoquery8.Parameters.ParamByName('guser1').Value:=trim(combobox2.Text); adoquery8.Parameters.ParamByName('times').Value:=trim(label9.Text); adoquery8.Parameters.ParamByName('gdate').Value:=trim(label10.Text); adoquery8.Parameters.ParamByName('hdate').Value:=trim(label11.Text); //تنفيذ استعلام ادخال بيانات الحركة في الجدول spy1 adoquery8.ExecSQL; //===========================


شاكر مقدماً للجميع
الرد
#2
وعليكم السلام و رحمة الله و بركاته

أهلا و مرحبا بك أخ computer50 في منتدى دلفي للعرب:
http://www.delphi4arab.net/forum/showthread.php?tid=9
راجع القوانين وشروط الكتابة
http://www.delphi4arab.net/forum/showthread.php?tid=29


سؤال في قسم الأسئلة

* ما هي رسالة الخطأ ؟
* أين هو نص SQL الـ adoquery المستعمل ؟

بالتوفيق
الرد
#3
السلام عليكم ورحمة الله وبركاته
أنا آسف جدا أخ عبدالجليل لوضعي موضوع في مكان لا يناسبه.

أما بالنسبة للرسالة فهو لا يستطيع الوصول لقيم النعليمة الثانية الموجودة في adoquery8 .


وهذه هي الرسالة :


[DCC Error] Unit4.pas(277): E2362 Cannot access protected symbol TControl.Text

وفي هذا الكود وضعت له استعلامان الاستعلام الأول رقم 5 adoqurey5 وتعليمته كالتالي:

كود :
insert into users (nouser, nuser, pass, nosection, section, guser) values (:nouser, :nuser, :pass, :nosection, :section, :guser)

أما رقم 8 فتعليمته كالتالي:

كود :
insert into spy1 (names,sections,nos,whatt,nouser,nuser,section1,guser1,times,gdate,hdate) values (:names,:sections,:nos,:whatt,:nouser,:nuser,:section1,:guser1,:times,:gdate,:hdate)

فهذا الكود ضمن مشروع قد طرحته في أحد المنتديات ولم ألق أي تجاوب وبدأت أعمل عليه وحدي فإن أبديتم الاستعداد لمشاركتي فيه فحيا هلا.

شاكر حسن أخلاقك أخي عبدالجليل وشاكر لك سرعة تجاوبك
الرد
#4
و عليكم السلام و رحمة الله و بركاته

أهلا بك أخي computer50 Smile

هل الخطأ في وقت التشغيل ؟ إذا كان كذلك جرب :

* ربما مشكل في أحد الحقول ( جرب الإضافة المباشرة دون إستخدام sql

* جرب إنشاء البارامتر ديناميكيا ( قبل وضع نص الـ Sql ) " رغم أني لا أشك فيه"

كود :
ADOQuery8.Close ; ADOQuery8.SQL.Clear ; adoquery8.Parameters.CreateParameter('names',ftstring ,pdUnknown ,20,Edit5.Text ) ; . . . ADOQuery8.SQL.Text :='insert into spy1 (names,sections,nos,whatt,nouser,nuser,section1,guser1,times,gdate,hdate)'+ 'values (:names,:sections,:nos,:whatt,:nouser,:nuser,:section1,:guser1,:times,:gdate,:hdate)'; adoquery8.ExecSQL;
* ضع نقطة توقف و تتبع سبب المشكلة !

بالتوفيق
الرد
#5
إقتباس :Cannot access [COLOR="Red"]protected symbol TControl.Text
تأكد أنه للكتابة:
كود :
Direction:= [color=Blue]pdInput[/color]
[/COLOR]
الرد
#6
السلام عليكم ورحمة الله وبركاته

بارك الله فيكم اخواني عبدالجليل والاخ كاتش واحد.

أنا جربت الكثير من الطرق لكن اذا الغيت كل ما يتعلق بالاستعلام رقم 8 يضيف والأمور تمام التمام لكن أضيف لكم السورس كامل.

ادخل باسم (99) وكلمة السر (99) لأجل أن تدخل وكأنك Gmanager لتتمكن للوصول للفورم 4 وبه تكمن المشكلة ويوجد ملف sql مع السورس يُنشأ جميع الجداول المطلوبة ويدخل فيها البيانات.

لعل نظرتكم لها أعلى من نظرتي وخبرتكم تكون أكبر لأني قليل خبرة . وقاعدة البيانات اسمها wared ففي الجدول spy1 يضيف الخطوات التي يعملها المستخدم الحالي.

بارك الله فيكم


الملفات المرفقة
.rar   wared.rar (الحجم : 319.68 ك ب / التحميلات : 64)
الرد
#7
السلام عليكم ورحمة الله وبركاته

مساكم الله بالخير

شاكر لكم حسن تعاونكم ومشاركتكم في الموضوع ، فقد اكتشفت المشكلة وهي بسيطة جدا ولكن أنتظر حلولا أخرى من عندكم بارك الله فيكم جميعا.

بعد أن أرى أي حل أضع حل المشكلة ان شاء الله تعالى
الرد
#8
السلام عليكم ورحمة الله وبركاته

حفظك الله أخي عبدالجليل من كل سوء، وشاكر جدا على الملحوظات التي أبديتها وليتني كنت أستطيع الرد الرد، ولكن هي في الحسبان.

الحل بسيط جدا حيث إني أخطأت في الكود التالي :

كود :
adoquery8.Parameters.ParamByName('times').Value:=trim(label9.Text); adoquery8.Parameters.ParamByName('gdate').Value:=trim(label10.Text); adoquery8.Parameters.ParamByName('hdate').Value:=trim(label11.Text);

حيث أن الـ value للـ label هو Caption وليس Text .

وبالنسبة لشروط IF فبنفس هذه الطريقة وجدتها أقوى في مشاريع أخرى وابقيت عليها في جميع مشاريعي تقريبا الا ما ندر منها.

واما بالنسبة للمفاتيح لا حاجة لها في هذا الوقت من البرنامج فالبرنامج ما زال في إعداد الصلاحيات للمستخدمين وهذه أفضل طريقة أراها من وجهة نظري.

وسوف أدرج السورس كود (source code) كاملا لترى أخي كيف أن كل خطة يخطيها الآدمن للإضافة أو التعديل على أو مسح مستخدم يتم تسجيلها في الجدول spy1 وفيما بعد تستطيع البحث في هذا الجدول بالطريقة التي تناسبك وطبعا في شاشات مستقلة لا يراها إلا من هو في مجموعة Gmanager والتي هي لم تضاف ضمن المجموعات لغرض عدم معرفة الـ administrator وهذا ايضا من ضمن الصلاحيات والسكيورتي للبرنامج حيث أنه يمكن إضافة أكثر من آدمن.

ثم اذهب للجدول spy1 في قاعدة البيانات لترى ماذا أضاف لك من بيانات !!!!!!!!

ثم بنفس طريقة الصلاحيات هذه نستخدمها مع المستخدمين في المعاملة من إضافة وتعديل وحذف وإحالة وتصدير وما إلى ذلك من إجراءات على المعاملة في جدول spy2 والخاص بستجيل كل ما يعمله المستخدمون.

تجد في المرفقات نسخة من السورس كود ومعه أيضا ملف الـ SQL نفذ هذا الاستعلام في قاعدة بيانات اسمها wared ثم شعل البرنامج وجرب الإضافة والحذف والتعديل على المستخدمين بعد دخولك باسم (99) وكلمة السر (99) لتدخل كـ Gmanager .

بالتوفيق لنا ولكم ان شاء الله تعالى

تحياتي لك أخي عبدالجليل.


الملفات المرفقة
.rar   wared.rar (الحجم : 323.15 ك ب / التحميلات : 116)
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم