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

-1 مجموع السجلات !؟

مغلق
بدأه POWER _GIRL في 19 مارس 2005 · 6 رد · 693 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لماذا ناتج هذا الكود دائما

-1 :wacko:

 Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails where SrvD_Name ='xxx'")
MsgBox (rs_TST.RecordCount)

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#2

أختي POWER _GIRL

ربما تكون المشكلة في الـ Connection ( الاتصال بالجدول ) نفسه ..

فإنه إذا كانت الخاصية CursorType تساوي adOpenForwardOnly فإن القيمة العائدة من خاصية الـ RecordCount ستكون -1

وإذا كانت تساوي adOpenKeyset فإن القيمة العائدة من خاصية الـ RecordCount ستكون عدد السجلات الفعلي

وإذا كانت تساوي adOpenDynamic فإن القيمة العائدة من خاصية الـ RecordCount ستكون -1

وإذا كانت تساوي adOpenStatic فإن القيمة العائدة من خاصية الـ RecordCount ستكون عدد السجلات الفعلي

هذا على عجالة

وإذا أردت معرفة الفروق بين الأربعة طرق السابقة فسأسردها لاحقاً

ani.gif
#3

ياريت توضيح للمكتوب فعلا.......

 
Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails where SrvD_Name ='XXXXX'", adOpenKeyset, adLockOptimistic)
MsgBox (rs_TST.RecordCount)

أصبح لا يعطي اي قيمه!؟؟

ما العمل !؟؟

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 19 مارس 2005 في 16:24

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#4

أختي Power_Girl

على عجالة أيضاً لضيق الوقت :D

يمكن أن تحتوي الخاصية CursorType على أربع ثوابت كما ذكرنا سابقاً

ويختلف تأثير هذه الثوابت في تصفحنا للـ RecordSet وفي عمليات الإضافة والتعديل والحذف

ففي التصفح

عند اختيار الثابت adOpenForwardOnly يمكن التحرك داخل ال RecordSet للأمام فقط دون الرجوع إلى الخلف

وأما الثوابت الثلاثة الأخرى فيمكن التحرك في أي اتجاه

وفي عمليات الإضافة والتعديل والحذف

فعند اختيار أي من الثابتين adOpenForwardOnly أو adOpenStatic لا يمكن استخدام هذه العمليات، لأنه عند استخدامها فإن الـ Recordset سيحتوي على صورة للجدول فقط عند فتحة، ولكن هذه الصورة لن تكون مرتبطة بعد ذلك بالجدول، وبالتالي فإن تغيير يحدث على الجدول لن ينعكس أيضاً على ال RecordSet ..

وعند اختيار أي من الثابتين adOpenKeyset أو adOpenDynamic سيكون بالإمكان استخدام جميع هذه العمليات ..

بالنسبة لكودك الحالي جربي

rs_TST.Open "select SrvD_Name from ServicesDetails where SrvD_Name ='XXXXX'", CN, adOpenStatic

والله أعلم ..

ani.gif
#5

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

لك شكري وتقديري

Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails ", adOpenStatic)
  
MsgBox (rs_TST.RecordCount)
MsgBox (rs_TST.Fields(0))

الغريب اخي هنا ان رساله عرض السجل تظهر السجل اما رساله العدد ماتطلعلي عدد دايما -1 ما السبب

مع اني استخدمت adOpenStatic زي ما قلت

وجربت الاربعه..

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 21 مارس 2005 في 02:01

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#6

لماذا لا تجربي تمرير جملة ال SQL إلى الوظيفة Open لكائن ال RecordSet مباشرة ..

ani.gif
#7

اخي هذا يختصر الاسطر

Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails ", adOpenStatic)

يعني دا سطر واحد اما بالشكل الاخر

Set rs_TST = New ADODB.Recordset
 rs_TST.CursorLocation = adUseClient
 rs_TST.Open "select SrvD_Name from ServicesDetails ", cn, adOpenKeyset, adLockOptimistic

انا اكتب السطر دا اصلا لاغراض بسيطه وكثيره فما ابغا اكتر اكواد وابطئ البرنامج

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

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

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