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

كيف عدم التكرار مع do while not rs.EOF

مغلق
بدأه BMW316i في 12 يناير 2003 · 15 رد · 1,529 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

المشكلة انى بستخدم شرط بقاعدة if وهى انا بيعمل تشيك فى قاعدة البيانات على اسم ملف فلو وجد هذا الملف يكتب اسم صاحب هذا الملف اما الملف

طبعا جميع اسامى الملفات موجود فى قاعدة البيانات علشان كدة انا مش حاطت شرط اخر وهو اذا لم يجد هذا الملف فى قاعدة البيانات كيف اكتب هذا الشرط فى قاعدة if مع العلم عدم التكرار حيث انى لما بكتب اى شرط بيتكرر علشان انا حاطت قاعدة if فى do while not rs.EOF فما الحل هذا هو الكود

Function ShowFolderList2(folderspec)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set sf = f.SubFolders
For Each f1 in sf
'====================================================
Set conn = Server.CreateObject("ADODB.connection")
conn.Open "DBQ=" & Server.Mappath("owdb.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
sql=" select owner ,folname,DateAdded from owner2"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, conn
'=========================================================
s = s & "[trrrrr]" 
s = s & "directory2.asp?c=" 
s = s & "" 
do while not rs.EOF 
if f1.name = rs("folname") then s = s & "" 
's = s & "" 
'if d= rs("owner")then s = s & ""
Rs.MoveNext
loop
rs.Close
conn.Close
s = s & "" 
s = s & "" 
's = s & "" 
's = s & "" 
s = s & "" 
'do while not rs.EOF
if d= "admin" then s = s & "" else
'Rs.MoveNext
'loop
'rs.Close
'conn.Close
s = s & "[/trrrrr]" 
s = replace(s,"","")
Next
response.write s
End Function


#2

بالمختصر ما المطلوب و ما المشكلة ؟؟ بس كلمتين لأنو و الله شرحك دوخني :(

You can fly while you can touch the sky

#3

ههههههههههه معلشىىىىىىىىىىىىىىىىىى استحملنى

المشكلة مش عارف اشرحها بس هى

انا الشرط بتاع 'do while not rs.EOF لما مش بيتحقق فبيكتب اسم الملف مرتين مرة والشرط متحقق ومر تانية لما الشرط مش بيتحقق

#4

انت المفروض تعمل قيمة منطقية مثلا found=False في أول كل دورة و يبحث فغن كان موجود الملف اكتب التالي : found=True و بالأخير افحص إن كانت قيمة found هي True قم بكتابة اسم الملف و فقط .. و أزل أي جملة خارج الدوارة ..

You can fly while you can touch the sky

#5

المشكلة فى الحت دة

'do while not rs.EOF

if d= "admin" then s = s & "

deldir2.asp?c=" else

'Rs.MoveNext

'loop

'rs.Close

'conn.Close

انا عاوز فى قاعدة IF ان الشرط لو ما تحققش اكتب جملة تانية فما باجى اكتب ELSE بيدنى ERROR

#6

ضع الكو هنا لعل أحد الأعضاء يصحح الخطأ .. لأن وقتي ما يسمح صراحة :(

You can fly while you can touch the sky

#7

I can't see any END IF !!!!

Another issue is that you do not need to go through all the records, use Filter to check if the file exists in the database

For Each f1 in sf

Rs.Filter = "filename=" & f.Name
IF NOT Rs.EOF THen
'the file exists
ELSE
'it does not exist
END IF
'now clear the filter criteria to get your recordset back
Rs.Filter = ""

Next
#8

على فكرة انت فهمتنى علشان شوفت الكود بتاعى وفهمته انا كنت بستخدم طريقة 'do while not rs.EO علشان اعمل تشيك هل اسم الملف موجود فى قاعدة البيانات بس انت عرفتنى طريقة تانية اول مرة اعرفه وهى ( Rs.Filter = "filename=" & f.Name) وهجربة دلوقتى بس هل هى بتؤدى نفس الغرض زاى do while not rs.EOF علشان المشكلة اللى عاندى هى انا هل اسم الملف موجود فى قاعدة البيانات و لا لا

#9

على فكرة جربت الطريقة بتاعتك بس وجدت هذا الخطاء

Microsoft VBScript compilation error '800a03fc'

Expected 'Next'

/directory.asp, line 409

ELSE

^

ممكن اعرف الحل اية

وممكن تشرحلى طريقه Rs.Filter علشان هى ممكن تريحنى كتير

#10

هذا هو الكود الذى استخدمه ويظهر هذا الخطاء

Function ShowFolderList(folderspec)

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(folderspec)

Set sf = f.SubFolders

For Each f1 in sf

'====================================================

Set conn = Server.CreateObject("ADODB.connection")

conn.Open "DBQ=" & Server.Mappath("owdb.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

sql=" select owner ,folname,DateAdded from owner2"

Set Rs = Server.CreateObject("ADODB.Recordset")

Rs.Open SQL, conn

'===================================================

s = s & "<tr>" 

s = s & "<td class='dataTD' width='5%' align='center' height='20'>[img=imgsfolder.gif]</td>" 

s = s & "<td class='dataTD' width='160' align='Left' height='20'><font size='2' face='Verdana'>" & f1.name & "</font></td>" 

s = s & "<td class='dataTD' width='80' align='center' height='10'><font size='1' face='Verdana'>" &f1.size& "</font></td>" 

s = s & "<td class='dataTD' width='140' align='center' height='10'><font size='1' face='Verdana'>" & f1.datecreated & "</font></td>" 





Rs.Filter = "folname=" & f1.Name

IF NOT Rs.EOF THen s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshared.gif]</font></td>" 

'the file exists

ELSE

'it does not exist

s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshar.gif]</font></td>" 

END IF

'now clear the filter criteria to get your recordset back

Rs.Filter = ""



Next



s = s & "<td class='dataTD' width='20' align='center' height='20'><font size='1' face='Verdana'>[img=imgsrename.gif]</font></td>" 

s = s & "<td class='dataTD' width='20' align='center' height='20'><font size='1' face='Verdana'>[img=imgsdel.jpg]</font></td>" 

s = s & "<td class='dataTD' width='20' align='center' height='20'><font size='1' face='Verdana'>[img=imgspaste.gif]</font></td>" 

s = s & "</tr>" 

's = s & "
"

s = replace(s,"","")

Next

response.write s

End Function



=======





Microsoft VBScript compilation error '800a03fc' 



Expected 'Next' 



/directory.asp, line 409 



ELSE

^
#12

أخي هنا الخطأ

IF NOT Rs.EOF THen s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshared.gif]</font></td>" 

'the file exists

ELSE

'it does not exist

s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshar.gif]</font></td>" 

END IF

المفروض تكتب العمل المفروض تأديته مثل عرض الرسالة في السطر الذي لي الشرط لانك لو وضعته في نفس سطر الشرط تنتهي جملة الشرط و بالتالي يكون موقع else خطأ

الحل الصحيح كالتالي :

IF NOT Rs.EOF THen

 s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshared.gif]</font></td>" 

'the file exists

ELSE

'it does not exist

s = s & "<td class='dataTD' width='30' align='center'height='15'><font face='Verdana' size='1'>[img=imgsshar.gif]</font></td>" 

END IF

بالتوفيق لك في مشروعك و لا تتردد بالسؤال أبدأ و للتوضيح أكثر بالنسبة للمفهوم اللي أخطأت فيه :

 if myName="mohd" then response.write myName



 the other way :

 if myName="mohd" then

  response.write myName

 end if

يعني في المثال الأول تنتهي تلقائيا جملة الشرط و لا حاجة ل end if

و بالتالي لا تعتبر else تابعة للشرط لان جملته انتهت و العكس في المثال الثاني .. أتمنى أن تكون وصلت الفكرة واضحة :)

You can fly while you can touch the sky

#14

هل الخطأ تم بعد التعديل ؟؟؟

إن كان كذلك الرجاء أن ترسل لي المجلد كاملا بعد ضغطه على بريدي

mohd_khalil@arabteam2000.com

You can fly while you can touch the sky

#15

هل يمكن شرح فكرة Rs.Filter

علشان انا كنت بستخدم فكرة do while not rs.EOF علشان اقارن اسم الملف الموجود هل هو موجود فى قاعدة البيانات ولا لا

علشان لو موجود يكتب سطر ولو مش موجود يكتب سطر تانى

فهل طريقة Rs.Filter تنفع ولا اية مع التوضيح

#16

أخي المشكلة عندك في أنك مستخدم مرتين Next و انت عامل دوارة For loop مرة واحدة فقط مو اتنين ..

بخصوص ال rs.Filter أنا بصراحة ما استخدمتها و ما عمري جربتها و بالتالي

لا أفتي فيها ..

طبعا ليس من الضروري استخدامها و الأخ مدني اقترحها لكن يمكنك استخدام

ألف طريقة للفحص بالكود العادي دون استخدام خصائص ال ADO ..

You can fly while you can touch the sky

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…