السلام عليكم
لماذا ناتج هذا الكود دائما
-1 :wacko:
Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails where SrvD_Name ='xxx'")
MsgBox (rs_TST.RecordCount)السلام عليكم
لماذا ناتج هذا الكود دائما
-1 :wacko:
Set rs_TST = cn.Execute("select SrvD_Name from ServicesDetails where SrvD_Name ='xxx'")
MsgBox (rs_TST.RecordCount)<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
أختي POWER _GIRL
ربما تكون المشكلة في الـ Connection ( الاتصال بالجدول ) نفسه ..
فإنه إذا كانت الخاصية CursorType تساوي adOpenForwardOnly فإن القيمة العائدة من خاصية الـ RecordCount ستكون -1
وإذا كانت تساوي adOpenKeyset فإن القيمة العائدة من خاصية الـ RecordCount ستكون عدد السجلات الفعلي
وإذا كانت تساوي adOpenDynamic فإن القيمة العائدة من خاصية الـ RecordCount ستكون -1
وإذا كانت تساوي adOpenStatic فإن القيمة العائدة من خاصية الـ RecordCount ستكون عدد السجلات الفعلي
هذا على عجالة
وإذا أردت معرفة الفروق بين الأربعة طرق السابقة فسأسردها لاحقاً
ياريت توضيح للمكتوب فعلا.......
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>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
أختي 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
والله أعلم ..
اخي عجبني جدا الموضوع ياريت كل ماصار عندك وقت تجي هنا وتتكلم عنه قدر الوقت المتاح لك انا فهمت ولكن احتاج للمزيد عشان افهم اكتر...
لك شكري وتقديري
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>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
اخي هذا يختصر الاسطر
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>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
هذا الموضوع مغلق.