السلام عليكم
قمت بالربط بواسطة الانتربيز بين جهازين فقمت بانشاء سيرفر في الانتربيز واضفت قاعدة بيانات على هذا السيرفر ولكن بواسطة برتوكول NetBEUI ولم تفلح محاولتى للربط بواسطة البرتوكول tcp/ip وفي برنامج تجريبي قمت باضافة حقل في جدول والحصول على النتجة في برنامج اخر على الجهاز الاخر ويحدث هذا اذا قمت باعطاء امر اغلاق قاعدة البيانات ثم امر فتحها
ولكن في البرنامج الفعلى الذي اريد العمل عليه فقمت بربط النسخة التى على الجهاز الاول بقاعدة البيانات والتى هي موجودة عليه بواسطة local server والنسخة التى على الجهاز اللاخر بواسطة remote server ولكن عند فتح البرنامج من احد الجهازين ويكون البرنامج الذي على الجهاز الاخر يعمل تظهر رسالة الخطا update conflicts with concurrent update
وعند الفحص وجدت اني في الحدث oncreate للفورم الرئيسي وضعت الكود التالي
كود
IBTable1.Active:=true;
IBTable1.First;
while not IBTable1.Eof do
begin
if ibtable1['costprice']=0 then
begin
IBTable1.Edit;
IBTable1['costprice']:=IBTable1['soldprice']*100/110;
IBTable1.Post;
end;
وبهذا انتهت المشكلة ولكن المشكلة الاخرى اني احتاج للكود التى مسحته
الشى الاخر عن العمليات وانا شخصيا بحاجة الى شرح اكبر عن العمليات واستخدامها وخاصة يبدو ان لها دور اكبر في العمل على الشبكة فلو يتكرم احد الاخوة بمزيد من التوضيح ولا احدد سؤال معين في الموضوع فربما استطاع احد او بعض الاخوة ان يقدم شرح عام عن الموضوع
ثالثا وبما ان البرنامج عبارة عن برنامج مبيعات اي يقوم بعمل فواتير بيع وعندما يكون البرنامجين على كلا الجهازين يعملان وبتجربة عملية في الشاشة على الجهاز الاول رقم الفاتورة الحالية هو 70 وقمت بملء بيانات الفاتورة وترحيلها وتغير الرقم امامي الى الرقم 71 وطبعا لم يتغير الرقم في الجهاز رقم 2 وقمت بملء الفاتورة في الجهاز رقم 2 وعند الترحيل تصدر رسالة الخطا والتى سببها ان الرقم موجود والحقل مفتاح وحاولت ان اتغلب على المشكلة بان وضعت كود قبل عملية ترحيل البيانات يقوم بالبحث عن اكبر قيمة للرقم max"invoiceno" واضافة 1 الى القيمة فلم تنجح ان ان عملية البحث لم تر الفاتورة التى ادخلها الجهاز الاول فما هو المتبع لحل هذه المشكلة خاصة واني اعتقد بانها شائعة واكيد هناك اجراء لااعرفه يعرفه اخواني اعضاء هذا المنتدى
إقتباس
فقط لاتترك الاتصال مع القاعدة واغلقه عند الانتهاء واعد الاتصال عند تنفيذ البرنامج
ايضا حاول استخدام اتصال واحد في البرنامج
فهمت من قطع الاتصال ان ان اغير خاصية connected لمكون قاعدة البيانات الى false ولكن هذا يجعل البيانات الموجودة في dbgrid تختفي
ولم افهم استخدام اتصال واحد في البرنامج فانا استخدم مكون قاعدة واحد في كل البرنامج على الفورم الرئيسي
اعذروني للاطالة