PDA

View Full Version : حالی بودن رکوردست



mahmoodreza
جمعه 27 شهریور 1383, 19:36 عصر
سلام
از کجا میتونم بفهمم بعد از کیوری گرفتن از یک رکورد ستا داخلش خالی هست
از این دستور استفاده میکنم ولی ایراد میگیره
If rsCustomers.Fields("name").Value = "" Then
یک سوال
recordcount چه کاری انجام میدهد ؟ برای من همیشه عدد 1- را بر میگرداند

v_shalchian
جمعه 27 شهریور 1383, 20:56 عصر
Recordcount برای یک رکوردست ,تعداد رکوردهای موجود در آن را به ما می دهد.
یعنی برای بررسی خالی بودن رکوردست می نویسیم

if rsCustomers.RecordCount = 0 then
...


برای من همیشه عدد 1- را بر میگرداند

دقت بیشتری بکنید حتما یک جای کار را درست انجام نمی دهید.

AminSobati
شنبه 28 شهریور 1383, 00:42 صبح
دوست عزیزم،
برای اینکه RecordCount مقدار واقعی رو نشون بده، باید قبل از باز کردنRecordset، براش CursorLocation رو تنظیم کنید:

MyRecordset.CursorLocation=adUseClient

موفق باشید،
امین ثباتی MCSD

hmm
شنبه 28 شهریور 1383, 07:30 صبح
if (rst.eof=true) and (rst.bof=true) then
....
end if

hmm
شنبه 28 شهریور 1383, 07:32 صبح
متد recordcount برای بعضی از provider ها جواب نمیده و همیشه مقدار 1- رو برمیگردونه

FatemehB
یک شنبه 29 شهریور 1383, 08:20 صبح
در عبارت زیر مقدار count همیشه ۱- خواهد بود :

(myrs.execute(query
count=myrs.RecordCount

برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :

myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
count=myrs.RecordCount

:wink:

hmm
یک شنبه 29 شهریور 1383, 09:57 صبح
در عبارت زیر مقدار count همیشه ۱- خواهد بود :

(myrs.execute(query
count=myrs.RecordCount

برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :

myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
count=myrs.RecordCount

در بعضی از provider ها از قبیل اوراکل شما اصلا این قابلیت رو ندارید همچنین امکان سورت یا فیلتر کردن هم وجود ندارد
و تازه بازکردن رکوردست از نوع static برای کسانی که میخواهند اطلاعات online رو ببینند (مثلا برنامه تحت شبکه) زیاد مفید نیست

vbprogramer
یک شنبه 29 شهریور 1383, 10:55 صبح
سلام
اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount

do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop

mahmoodreza
یک شنبه 29 شهریور 1383, 11:34 صبح
:flower:

کم حوصله
دوشنبه 30 شهریور 1383, 23:01 عصر
اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount


do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop
عجیب ترین و غیر منطقی ترین راه حل :shock:


if (rst.eof=true) and (rst.bof=true) then
....
end if

در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل :)

hmm
سه شنبه 31 شهریور 1383, 07:31 صبح
نقل قول:
اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount


do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop

عجیب ترین و غیر منطقی ترین راه حل

نقل قول:
if (rst.eof=true) and (rst.bof=true) then
....
end if


در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل

بله وقتی خود ado میتونه تشخیص بده که رکوردست خالیه چرا از حلقه استفاده کنیم