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

مشكلة ظهرت فجأة ؟

مغلق
بدأه Red star في 9 أبريل 2003 · 8 رد · 674 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السـلام عليكم :

أخوتي في المنتدى ظهر عندي مشكلة بقاعدة البيانات وهي :

عندي فورم لادخال البيانات و فورم ثاني للبحث ضمن البيانات المدخلة .

المشكلة لا أستطيع البحث عن قيمة مدخلة حديثاً الا بعد اطفاء البرنامج و تشغيله مرة أخرى أما القيم القديم فهو يتم البحث عنها

فوراً .

علماً أني جربت تعليمات التحديث وغيرها ولم أنجح .

فما هو الحل ؟ ؟ ؟ :confused::'(

لمزيد من التوضيح البرنامج مرفق .

#2

عفوا الملف المرفق :

exam.zip

#3

هنا الملف بعد التعديل

new.zip

#4

شــكرا أخي mina

لاهتمامك السريع . .

ســوف أجربه و أخبرك (f)(f)(f)(f)(f)

:rolleyes:

#5

شــكرا أخي mina مرة ثانية . .

لكن لم تنجح معي ؟ ؟ ؟

لكنك أوحيت لي بطريقة حذف العنصر adoconnection1 في الفورم الثاني .

لماذا لانحذف كل شيء أي حتى الadotabel and data source من

الفورم الثاني ونربط بعناصر الفورم الأول .

الطريقة ناجحة لكن . .

هل يمكن أن تظهر مشاكل في هذه الطريقة ؟

أو عندك تعليق اخـر ! ؟

أخبرني و شــكرا لك .

#6

يمكن حذفها طبعاً و لكن إن كنت متأكداً من أن الفورم لن يغلق بل يجب أن يبقى مفتوحاً سواء ظاهراً أم مخفياً -هناك طريقة أخرى و هي استخدام DataModule و وضع كل الـADO التي سنحتاجها فيه و ربط الفورمات التي تستخدمها مع هذا الMoldule- نعود لموضوعنا لم أحذفها لأنك قلت بأن الفورم الثاني للبحث ، و إن كان كذلك يفضل استخدام ADOQuery لإرجاع نتيجة البحث بدلاً من Table..

على كل حال عندي البرنامج شغال 100% ، لا أدري لماذا لم يشتغل عندك بشكل تام ؟ ألم يكن الهدف إظهار السجلات التي قمنا بإضافتها حالياً؟؟؟

#7

ماقام به الاخ مينا مشكور صحيح

فحيث أنه ضبط خواص عناصر الادخال لعناصر البيانات برمجيا افضل من إعادة تشغيل الملف

لكن أخي red star

لو انك تريد حل جذري لمشاكلك قم بعمل خوارزمية واضحة للعمل

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

يمكن الاطلاع هنا

http://www.arabdevelopers.com/lessons

والان

مارأيك بهذه الفكرة للحل والتي تجعل من برنامج حصنا منيعا أما المشاكل

 
procedure TForm1.DataSource1StateChange(Sender: TObject);
var reda: string;
begin
 case ADOTable1.State of
  dsInactive: reda:='الحلة مغلق';
  dsBrowse  : reda:='الحالة يتم التصفح';
  dsEdit    : reda:='تحرير';
  dsInsert  : reda:='ادراج سجل جديد';
 else
  reda:='حالة اخرى'
 end;
 label1.caption:='ADOTable1 state: ' + reda;
end;

طبعا عندما تبحث داخل قاعدة اليبيانات يكون الحدث

ا on dsbrowse

طبعا المثال أن الحالة ستظهر على label وهي من نوع string طبعا

تستطيع حسب حالة برنامجك أن تقوم بالاجراءات المناسبة

أرجو أن أكون أفدتك وأن لاأكون قد تدخلت بينك وبين الاخ mina

;)

#8

شـــكرا على ردك أخي reda(f)(f)(f)

يحق لك أن تتدخل متى تريــد ;)

#9

و شــكرا للأخ mina أيضــاً :o

(f)(f)(f)(f)

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

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