![]() |
|
هل أكسس بها خاصية Scope_Identity() - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41) +--- الموضوع : هل أكسس بها خاصية Scope_Identity() (/showthread.php?tid=21270) |
هل أكسس بها خاصية Scope_Identity() - سعود - 03-08-17 حتى لا اطيل احيلكم للسؤال والجواب لكنه خاص بsqlserver واستفسر عن access RE: هل أكسس بها خاصية Scope_Identity() - أبو نوره - 03-08-17 مرحبا اخي سعود لا يوجد في access داله Scope_Identity ولكن تقدر تستعيض عنها ب Identity@@ مع تعديل بسيط جدا للطريقه والنتيجه هي نفسها PHP كود : Dim query As String = "insert Into Categories (CategoryName) Values (@CategoryName);"لاحظ اخي سعود الاضافه اتعملت بexecutenonquery والاستعلام اتعمل بexecutescalar ولازم كلهم يتعملو والاتصال مزال مفتوح ما تسكر ملاحظه هامه للي بيتعامل مع قاعده البيانات انه ضروري يسكر الاتصال وما يتركه معلق متل الكود الاصلى اللى في الرابط علشان ما يستنفذ عدد الاتصالات المسموحه بالوقت نفسه خصوصا بتعدد المستخدمين وكثره التعامل مع البيانات ولا يفكر المبرمج انه مدام استخدم using انه ما يهتم يسكر الاتصال لالا هاذى الفكره غلط عن تجربه RE: هل أكسس بها خاصية Scope_Identity() - سعود - 03-08-17 بارك الله فيك وفي علمك و اشكر لك ماقدمته من نصائح ....وفعلا كنت اظن ان using كفيلة بالاغلاق. RE: هل أكسس بها خاصية Scope_Identity() - ابو ليلى - 03-08-17 السلام عليكم و رحمة الله و بركاته اخالفك الرأي اخي ابو نوره , استعمال Using يؤدي تلقائياً الى استدعاء الطريقة Dispose الخاصة بالكائنات المعرفة داخله و بالتالي يتم اغلاق الاتصال عند End using يبقى دور Garbage Collection ان تقوم بدورها. كل وثائق Microsoft تشير الى ذلك . انظر للملاحظة التي فوق المثال في الرابط التالي The following example creates a SqlConnection, opens it, and displays some of its properties. The connection is automatically closed at the end of the using block.
SqlConnection.Open Methodسابقاً اجريت اختبارات على هذه الطريقة و تم مراقبة العمليات التي تجري على السيرفر و النتيجة كما اشارت Microsoft تماماً يمكنك مراجعة الرابط التالي لمعلومات اوفر عن استخدام Using using Statement معلومات عن Garbage Collection تحياتي للجميع RE: هل أكسس بها خاصية Scope_Identity() - أبو نوره - 03-08-17 مرحبا اخي ابو ليلى اشكرك ودا مش رايي، مع احترامي الكامل لحضرتك ولميكروسوفت لكن بالتجربه اللي حصلت شفتها بنفسي لما كنت اعمل في شركه قبل كم سنه فريق المبرمجين عملو تجربه فتح الاتصال بعدد هائل باستخدام using لتعريف الاتصال وفتحه بدون ما يسكروه على السيرفر ما يقدرش يكمل بعد عدد معين الا بعد وقت انتظار الين تتسكر مجموعه منها لوحدها وعملو نفس التجربه بس بتسكير الاتصال ومشى الحال بدون مشكله يمكن انت عملت تعديل لاعدادت السيرفر معملوهاش الفريق عندنا لان اذكر ما سمحو للفريق انهم يلمسو السيرفر انا معرفش السيرفر غير من connectionstring لكن باعمل احتياطاتي في البرمجه عشان ما يحصلش مشكله ولو من باب الاحتياط واتوقع انك خبير في السيرفرات، فهل الاصدارات الجديده للسيرفرات لها دور في المسأله دي؟ وتحياتي لك وللجميع RE: هل أكسس بها خاصية Scope_Identity() - ابو ليلى - 04-08-17 (03-08-17, 11:06 PM)أبو نوره كتب : مرحبا اخي ابو ليلى تحياتي لك الاخ ابو نوره , هي ليست مسألة سيرفرات الموضوع كله متعلق بـ Garbage Collection و متى يتم استنهاظها اذ ان المتحكم في الموضوع هو الوندوز نفسه و ليس البرنامج خاصتنا . اذ ان تشغيل و استدعاء الـ Garbage Collection يتم عن طريق الوندوز لتنظيف الذاكرة من كل العناصر غير المستخدمة , و هذه العملية مكلفة على موارد النظام لذا لا يفضل برمجياً استدعائها بل يترك الامر للوندوز للقيام بها ممكن تكون سرعة الاتصالات و عددها الكبير في وقت واحد لم يسمح ولم يتمكن الوندوز من التخلص من هذه الاتصالات المفتوحة كما ننوه في مثل هذه الحالة التي تحتوي على عدد كبير من الاتصالات من عدد كبير من المستخدمين ان يستخدموا مفهوم Pool Connection افضل لسلامة التطبيقات الكبيرة. وكما قلت انت الحرص واجب , و اشد على يديك في هذا. تحياتي للجميع RE: هل أكسس بها خاصية Scope_Identity() - silverlight - 04-08-17 فقط الإفراط في استخدام جملة Using له أضرار ومخاطر لا يمكن التنبؤ بها ابدا وعلي ما أعتقد و الله أعلم أن السبب هو المبرمج نفسه لأنه لا يضع في اعتباره الفترة الزمنية التي يحتاجها نظام التشغيل لكي يتخلص من المتغيرات أيضا المبرمج لا يضع في اعتباره ان يفشل Constructor الخاص بأي متغير في أن يبدأ بشكل صحيح وهذا قد يحدث لأي سبب من الاسباب وغالبا هنا يحدث memory leak مثلا لنفترض أن SqlCommand فشل لسبب ما هنا ستظل Connection مفتوحة والسبب ان جملة using هنا قد لا تجد ما تقوم بعمل Dispsoe له أيضا هناك حالات من الأفضل للمبرمج أن يضمن فيها تماما أن الكود الخاص به قد تم تنفيذه بشكل لائق و هذا قد يتم بأساليب بسيطة كثيرة |