צפיות
תשובות
שאלה בהעברה מטבלה לטבלה
זהו הקוד:
set rs1=Server.CreateObject("adodb.recordset")
sql1="select * from kesher_settle where racaz=6 "
rs1.open sql1,conn
do until rs1.EOF
set rs1=Server.CreateObject("adodb.recordset")
sql2="update kesherz set enter_date='" & rs1(enter_date) & "',status=" & rs1(status) & ",client_id=" & rs1(client_id) & ",first_name='" & rs1(first_name) & "',last_name='" & rs1(last_name) & "',birth_date=" & rs1(birth_date) & ",family_status=" & rs1(family_status) & ",job='" & rs1(job) & "',children=" & rs1(children) & ",address='" & rs1(address) & "',job_address='" & rs1(work_address) & "',hphone='" & rs1(hphone) & "',wphone='" & rs1(wphone) & "',mobile='" & rs1(mobile) & "',fax='" & rs1(fax) & "',email='" & rs1(email) & "',remark='" & rs1(remark) & "',came_from=" & rs1(came_from) & ",ech=" & rs1(ech) & ",racaz=" & rs1(racaz) & ",reason='" & rs1(reason) & "',f_racaz=" & rs1(f_racaz) & ",f_date='" & rs1(f_date) & "'
rs2.movenext
loop
rs1.Close
set rs1=nothing
אני צריך להעביר שדות שבהגדרה שלהם הם כן /לא
איךא ני משלב את זה במשפט העדכון????
12 תשובות
אני רואה פה עדכון, לא ההעברה
בכל מקרה, אתה פשוט מוסיף תנאי
WHERE fld=True/Flase
לא מצליח לפתור את הלולאה:
הקוד הוא:
<%
set conn=Server.CreateObject("adodb.connection")
conn.Open "db_name"
set rs=Server.CreateObject("adodb.recordset")
sql="select * from racazim"
rs.Open sql,conn
do until rs.EOF
set rs1=Server.CreateObject("adodb.recordset")
sql1="SELECT client_id INTO kesherz FROM kesher_settle where racaz="& rs("id")
rs1.open sql1,conn
loop
rs.MoveNext
conn.Close
set conn=nothing
%>
בטבלת racazim יש 3 רכזים הממוספרים בid
1,2,3
בפועל הוא מעביר לי לטבלת גיבוי רק את הרכז הראשון ולא את כל השלושה משהו בלולאה לא טוב מה זה???
תודה
נסיון שני
<%
set conn=Server.CreateObject("adodb.connection")
conn.Open "db_name"
set rs=Server.CreateObject("adodb.recordset")
sql="select * from racazim"
rs.Open sql,conn
do until rs.EOF
set rs1=Server.CreateObject("adodb.recordset")
sql1="SELECT client_id INTO kesherz FROM kesher_settle where racaz="& rs("id")
rs1.open sql1,conn
rs.MoveNext
loop
conn.Close
set conn=nothing
%>
למה זה לא פועל מישהו יכול לעזור???
כי
אתה לא סוגר את ה RS לפני שאתה פותח אותו שוב (וממש ממש לא מומלץ לפתוח RS בלולאה…)
זאת לא הבעייה הבעייה היא שכל פעם בל
ולאה אני אומר לו ליצור טבלת גיבוי חדשה בשם keshery ואז אחרי הפעם הראשונה שהוא יוצר הוא נותן לי שגיאה שהטבלה קיימת .
איך אני יכול לפתור את זה???
בפורום asp זוהר פלד אמר לי להכניס את כל ה-Id למחרוזת אשר כל id מופרד בפסיק ואז לעשות במשפט יצירת הטבלה משהו עם in/
אני לא יודע איך מכניסים למחרוזת עם פסיק בין id ל id ןאני לא יודע איך משתמשים עם In תוכלו לעזור אולי????
תודה על הנכונות.
לא הבנתי…
אתה צריך רק לעדכן את הטבלה keshery, לא?
אז בשביל מה אתה שולף את כל הטבלה racazim?
הקוד שלך, לפי מה שהבנתי מהפורום בתפוז ומכאן, צריך להראות בערך ככה.
<%
set conn=Server.CreateObject("adodb.connection")
conn.Open "db_name"
set rs=Server.CreateObject("adodb.recordset")
sql="SELECT id FROM racazim" ' select only id from racazim
rs.Open sql,conn
idString = rs.getString(2,-1,"",",") ' use getString method
rs.close ' close the rs
idString = left(idString,len(idString-1)) ' cut the last , from the idString
sql1="SELECT client_id INTO kesherz FROM kesher_settle where racaz IN ("& idString &")"
rs.open sql1,conn
rs.close
conn.Close
set rs = nothing
set conn=nothing
%>
לא לעדכן אלא ליצור
טבלת גיבוי חדשה אשר נקראת kesherz והנתונים שיכנסו אליה הם כל הcusomer_id מטבלת kesher_settle אשר השדה racaz בטבלת kesher_settle תואם ל-id מטבלת racazim/
תודה על הנכונות לעזור אולי עכשיו זה יהיה מובן???
זה מתחיל להסתדר;
הבעייה היא שהוא רושם לי שגיאה
Operation is not allowed when the object is closed.
על שורה המודגשת בשחור:
<%
set conn=Server.CreateObject("adodb.connection")
conn.Open "db_name"
set rs=Server.CreateObject("adodb.recordset")
sql="SELECT id FROM racazim" ' select only id from racazim
rs.Open sql,conn
idString = rs.getString(2,-1,"",",") ' use getString method
rs.close ' close the rs
idString = left(idString,len(idString-1)) ' cut the last , from the idString
sql1="SELECT client_id INTO kesherz FROM kesher_settle where racaz IN ("& idString &")"
rs.open sql1,conn
rs.close
conn.Close
set rs = nothing
set conn=nothing
%>
הוא יוצר את הטבלה אך נתקע אחרי 10 id
כאשר הורדתי את:
idString = left(idString,len(idString-1)) ' cut the last , from the
idString
משום מה רק אז הוא מושך את כל ה-
id
מטבלת
racazim???
תעבור שלב שלב.
קודם כל תשלוף את כל ה id, תראה שאתה מקבל בדיוק את המחרוזת שאתה רוצה, ואז תנסה ליצור את הטבלה השניה.
לא הבנתי באיזה מצב אתה נמצא עם זה עכשיו. זה עובד או לא, ואם לא, מה הודעת השגיאה?
כאשר הורדתי מהקוד את השורה
idString = left(idString,len(idString-1)) ' cut the last , from the IdString
שאתה רשמת הוא פועל לי מצויין.
למרות שגיאה שהוא נותן:
Operation is not allowed when the object is closed.
על השורה
rs.close
השני
ואני חוזרומציין שזה פועל למרות השגיאה.
אתה מנסה
לבצע פעולה מסוימת עם הרקורדסט לאחר שכבר סגרת אותו.
למשל:
rs.close
response.write rs("id")
תסגור אותו בסוף השימוש בו ולא לפני כן.