צפיות
תשובות
קוד שנתקעתי בו:
אני מקווה שאצליח להסביר את עצמי כמו שצריך:
אני משתמש ב- MS-SQL ואני רוצה להוציא נתונים מכמה טבלאות
להכניס נתונים לטבלה מסויימת ובסופו של דבר להוציא את ה- ID האחרון שנכנס לטבלה.
עד היום השתמשתי ב- Transactions בין כל הפעולות האלה, לדוגמא הקוד הבא:
conn.open dsn
SQL = "SELECT TOP 1 … FROM forumDB"
SQL = SQL & " WHERE …"
SQL = SQL & " ORDER BY …. desc"
conn.BeginTrans
rs.Open SQL, conn
if not rs.EOF then
… = rs("…")
end if 'rs.EOF
rs.close
'–
'הכנסת כל פרטי ההודעה לבסיס הנתונים
SQL = "INSERT INTO forumDB (…,…,..,…,…,…,…,)"
SQL = SQL & " VALUES("
SQL = SQL & "" & …
SQL = SQL & ",'" & …
SQL = SQL & "'," & …
SQL = SQL & "," & …
SQL = SQL & "','" & …
SQL = SQL & "',getdate(),getdate())"
conn.execute (SQL)
'–
'במידה וההודעה מכילה מעל 10 תוים היא מוקפצת לראש
'הפורום
if Len(…)>=10 then
SQL = "UPDATE forumDB SET ….=getdate()"
SQL = SQL & " WHERE ….=0"
SQL = SQL & " AND ….='"&….&"'"
conn.execute (SQL)
end if 'Len(….)>=10
SQL = "SELECT MAX(message_id) AS intMaxID FROM forumDB"
rs.Open SQL, conn
conn.CommitTrans
if rs.EOF then
message_id = -1
else
message_id = rs("intMaxID")
end if 'rs.EOF
rs.Close
conn.close
עכשיו כאשר אני משתמש במשפט הבא:
" SELECT intMaxID = @@identity"
אני מקבל שגיאה! רק כאשר אני מוריד מהקוד את כל Transactions הכל עובד כמו שצריך.
הבעיה היא שאני חייב להשתמש ב- Transactions על מנת למנוע שגיאות בלתי רצויות, יש למישהו מושג כיצד אני מחבר בין השניים?
תודה רבה על הזמן, נעם
0 תשובות