PDA

View Full Version : اشكال در مقدار بازگشتي از دستور RecordCount



soheil_programmer
شنبه 03 اسفند 1387, 00:45 صبح
با سلام

من در VB از دستور RecordCount براي گرفتن تعداد ركوردها استفاده ميكنم اما متاسفانه اين دستور مقدار منفي يك 1- را بر ميگردونه در صورتي 2 ركورد دارم و بايد عدد 2 را برگردونه.

xxxxx_xxxxx
شنبه 03 اسفند 1387, 03:47 صبح
اين موضوع اينجا (http://barnamenevis.org/forum/showthread.php?t=148431) هم مطرح شده و جواب داده شده. اما دليلش معلوم نيست!!!

EffatBandehlou
شنبه 03 اسفند 1387, 11:07 صبح
دوست عزيز اين مربوط ميشه به نحوه باز كردن ديتا بيست در vb لطفاً موقع باز كردن بعد از نام connectionString مربوطه به شكل زيردوبار 3 بگذار:
conn,3,3

mpmsoft
شنبه 03 اسفند 1387, 11:42 صبح
Conn.CursorLocation = 1

soheil_programmer
شنبه 03 اسفند 1387, 16:58 عصر
سلام

دوستان عزيز من بالاخره راه حل منطقي و صحيح اين قضيه را پيدا كردم كه ظاهراً در تاپيك ديگري اين قضيه بيان شده و من جهت نتيجه گيري تاپيك در زير قرار ميدهم:

rs.Open "select count(*) from TableName", db, adOpenKeyset, adLockPessimistic
RecordCount = rs(0)

kashaneh
شنبه 03 اسفند 1387, 20:05 عصر
دوستان این مشکل مربوط به انتخاب نوع مکان نما (کرسر) در هنگام بازکردن بانک اطلاعاتی است. به خاطر داشته باشید که اگر به همراه خاصیت RecordCount از مکان نمای Forward-Only (کرسر پیش فرض همین است) استفاده کنید، مقدار -1 برگردانده خواهد شد.
برای رفع این مشکل باید نوع مکان نما (کرسر) را قبل از بازکردن بانک اطلاعاتی مشخص کنید و یکی از انواع Scrollable که عبارتند از (adopenKeySet ، adopenDynamic ، adopenStatic ) را انتخاب کنید.
** نوع adopenDynamicدر اکسس پشتیبانی نمی شود.

موفق باشید

soheil_programmer
یک شنبه 04 اسفند 1387, 07:57 صبح
دوستان این مشکل مربوط به انتخاب نوع مکان نما (کرسر) در هنگام بازکردن بانک اطلاعاتی است. به خاطر داشته باشید که اگر به همراه خاصیت RecordCount از مکان نمای Forward-Only (کرسر پیش فرض همین است) استفاده کنید، مقدار -1 برگردانده خواهد شد.
برای رفع این مشکل باید نوع مکان نما (کرسر) را قبل از بازکردن بانک اطلاعاتی مشخص کنید و یکی از انواع Scrollable که عبارتند از (adopenKeySet ، adopenDynamic ، adopenStatic ) را انتخاب کنید.
** نوع adopenDynamicدر اکسس پشتیبانی نمی شود.

موفق باشید


دوست عزیز لطفاً مثالی بزنید...

EffatBandehlou
یک شنبه 04 اسفند 1387, 08:42 صبح
اگه به جاي اون عبارتها فقط دوبار عدد 3 را بگذاريد هم درسته.در واقع اين عدد معادل همون عبارتهاست

kashaneh
یک شنبه 04 اسفند 1387, 08:54 صبح
دوست عزیز به منابع زیر از شرکت مایکروسافت مراجعه کنید :

مثالی از طریقه تنظیم کرسر در رکوردست :
http://msdn.microsoft.com/en-us/library/ms675320(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms675320%28VS.85%29.aspx)


توضیح کامل و جامع در مورد انواع کرسر و کاربرد آنها :
http://msdn.microsoft.com/en-us/library/ms677593(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms677593%28VS.85%29.aspx)


مثالی در مورد استفاده صحیح از متد RecordCount در ویژوال بیسیک :
http://msdn.microsoft.com/en-us/library/ms681465(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms681465%28VS.85%29.aspx)


موفق باشی...