تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
هل أكسس بها خاصية Scope_Identity()
#1
حتى لا اطيل احيلكم للسؤال والجواب لكنه خاص بsqlserver
واستفسر عن access
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: ابو ليلى
#2
مرحبا اخي سعود

لا يوجد في access داله Scope_Identity ولكن تقدر تستعيض عنها ب Identity@@ مع تعديل بسيط جدا للطريقه والنتيجه هي نفسها
PHP كود :
Dim query As String "insert Into Categories (CategoryName) Values (@CategoryName);"
Dim ID As Integer
Dim connect 
As String "Provider=Microsoft.ACE.OLEDB.12.0;" _
    
"Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=True;"
Using conn As New OleDbConnection(connect)
 
 Using cmd As New SqlCommand(queryconn)
 
   cmd.Parameters.AddWithValue("@CategoryName"Category.Text)
 
   conn.Open()
 
   cmd.ExecuteNonquery()
 
   cmd.Commandtext="select @@Identity"
 
   ID cmd.ExecuteScalar()
 
   conn.close()
 
 End Using
End Using 

لاحظ اخي سعود الاضافه اتعملت بexecutenonquery والاستعلام اتعمل بexecutescalar
ولازم كلهم يتعملو والاتصال مزال مفتوح ما تسكر

ملاحظه هامه للي بيتعامل مع قاعده البيانات انه ضروري يسكر الاتصال وما يتركه معلق متل الكود الاصلى اللى في الرابط
علشان ما يستنفذ عدد الاتصالات المسموحه بالوقت نفسه خصوصا بتعدد المستخدمين وكثره التعامل مع البيانات
ولا يفكر المبرمج انه مدام استخدم using انه ما يهتم يسكر الاتصال لالا هاذى الفكره غلط عن تجربه
الرد }}}
تم الشكر بواسطة: سعود , ابو ليلى
#3
بارك الله فيك وفي علمك
و اشكر لك ماقدمته من نصائح ....وفعلا كنت اظن ان using كفيلة بالاغلاق.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: ابو ليلى , أبو نوره
#4
Thumbs Up 
السلام عليكم و رحمة الله و بركاته

اخالفك الرأي اخي ابو نوره , استعمال 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
تحياتي للجميع
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: أبو نوره , سعود
#5
مرحبا اخي ابو ليلى

اشكرك ودا مش رايي،
مع احترامي الكامل لحضرتك ولميكروسوفت لكن بالتجربه اللي حصلت شفتها بنفسي لما كنت اعمل في شركه قبل كم سنه
فريق المبرمجين عملو تجربه فتح الاتصال بعدد هائل باستخدام using لتعريف الاتصال وفتحه بدون ما يسكروه على السيرفر
ما يقدرش يكمل بعد عدد معين الا بعد وقت انتظار الين تتسكر مجموعه منها لوحدها

وعملو نفس التجربه بس بتسكير الاتصال ومشى الحال بدون مشكله

يمكن انت عملت تعديل لاعدادت السيرفر معملوهاش الفريق عندنا لان اذكر ما سمحو للفريق انهم يلمسو السيرفر

انا معرفش السيرفر غير من connectionstring لكن باعمل احتياطاتي في البرمجه عشان ما يحصلش مشكله ولو من باب الاحتياط


واتوقع انك خبير في السيرفرات، فهل الاصدارات الجديده للسيرفرات لها دور في المسأله دي؟

وتحياتي لك وللجميع
الرد }}}
تم الشكر بواسطة: سعود , ابو ليلى
#6
(03-08-17, 11:06 PM)أبو نوره كتب : مرحبا اخي ابو ليلى

اشكرك ودا مش رايي،
مع احترامي الكامل لحضرتك ولميكروسوفت لكن بالتجربه اللي حصلت شفتها بنفسي لما كنت اعمل في شركه قبل كم سنه
فريق المبرمجين عملو تجربه فتح الاتصال بعدد هائل باستخدام using لتعريف الاتصال وفتحه بدون ما يسكروه على السيرفر
ما يقدرش يكمل بعد عدد معين الا بعد وقت انتظار الين تتسكر مجموعه منها لوحدها

وعملو نفس التجربه بس بتسكير الاتصال ومشى الحال بدون مشكله

يمكن انت عملت تعديل لاعدادت السيرفر معملوهاش الفريق عندنا لان اذكر ما سمحو للفريق انهم يلمسو السيرفر

انا معرفش السيرفر غير من connectionstring لكن باعمل احتياطاتي في البرمجه عشان ما يحصلش مشكله ولو من باب الاحتياط


واتوقع انك خبير في السيرفرات، فهل الاصدارات الجديده للسيرفرات لها دور في المسأله دي؟

وتحياتي لك وللجميع

تحياتي لك الاخ ابو نوره , هي ليست مسألة سيرفرات الموضوع كله متعلق بـ    Garbage Collection    
و متى يتم استنهاظها اذ ان المتحكم في الموضوع هو الوندوز نفسه و ليس البرنامج خاصتنا .
اذ ان تشغيل و استدعاء الـ  Garbage Collection    يتم عن طريق الوندوز لتنظيف الذاكرة من كل العناصر غير المستخدمة , و هذه العملية مكلفة على موارد النظام لذا لا يفضل برمجياً استدعائها بل يترك الامر للوندوز للقيام بها
ممكن تكون سرعة الاتصالات و عددها الكبير في وقت واحد لم يسمح ولم يتمكن الوندوز من التخلص من هذه الاتصالات المفتوحة
كما ننوه في مثل هذه الحالة التي تحتوي على عدد كبير من الاتصالات من عدد كبير من المستخدمين
ان يستخدموا مفهوم Pool Connection افضل لسلامة التطبيقات الكبيرة.
وكما قلت انت الحرص واجب , و اشد على يديك في هذا.

تحياتي للجميع
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: أبو نوره , أبو نوره , سعود
#7
فقط الإفراط في استخدام جملة Using له أضرار ومخاطر لا يمكن التنبؤ بها ابدا
وعلي ما أعتقد و الله أعلم أن السبب هو المبرمج نفسه لأنه
لا يضع في اعتباره الفترة الزمنية التي يحتاجها نظام التشغيل لكي يتخلص من المتغيرات
أيضا المبرمج لا يضع في اعتباره ان يفشل Constructor الخاص بأي متغير في أن يبدأ بشكل صحيح وهذا قد يحدث لأي سبب من الاسباب
وغالبا هنا يحدث memory leak
مثلا لنفترض أن  SqlCommand فشل لسبب ما
هنا ستظل Connection مفتوحة
والسبب ان جملة using هنا قد لا تجد ما تقوم بعمل Dispsoe له


أيضا هناك حالات من الأفضل للمبرمج أن يضمن فيها تماما أن الكود الخاص به
قد تم تنفيذه بشكل لائق و هذا قد يتم بأساليب بسيطة كثيرة
Retired
الرد }}}
تم الشكر بواسطة: أبو نوره , ابو ليلى


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  منع التكرار في اضافة بيانات لقاعدة بيانات أكسس vb.net ahmedshafea 3 10,246 01-07-19, 12:28 PM
آخر رد: essamprog
  هل تعدد ملفات أكسس يحل اشكالية المحدودية سعود 8 3,414 31-05-16, 10:41 AM
آخر رد: samerselo
  الترقيم التلقائي .. أكسس abdulla2 1 3,013 27-12-15, 12:59 AM
آخر رد: zinom
Question سحب صورة من scanner وحفظها بقاعدة بيانات أكسس سيد درويش 18 29,351 05-08-15, 12:04 PM
آخر رد: مصطفى
  [سؤال] هل يوجد كود إغلاق كافة الاتصالات بقاعدة بيانات أكسس سعود 2 2,737 09-02-15, 10:46 AM
آخر رد: سعود
  حفظ الصورة فى قاعدة بيانات أكسس والبحث عنها على رمضان 7 4,415 01-09-14, 08:21 AM
آخر رد: qqqqq
  [سؤال] الإتصال بقاعدة البيانات أكسس بواسطة Module djelloul 2 2,480 19-07-14, 05:10 AM
آخر رد: aftfm
  [سؤال] كيفية إنشاء قاعدة بيانات أكسس عندما يتم إضافة مستخدم جديد staryas54 3 3,212 28-02-14, 05:50 PM
آخر رد: ahmed saba
  [Acces2007] طلب مساعدة في تكملة قاعدة البيانات أكسس 2007 khalid0577 1 1,864 11-02-14, 01:12 AM
آخر رد: khalid0577
Sad [سؤال] طلب ف خاصية من حقل ف قاعدة البيانات محمد هبي 2 2,539 31-01-14, 11:47 PM
آخر رد: Genius Live

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


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