צפיות
תשובות
שלום יש לי שאלה…
אני מנסה לבדוק האם הנתונים שהקליד הגולש בדך התחברות תואמים לנתונים הנמצאים במסד הנתונים,
אני עושה זאת ע"י קובץ include שיוצר חיבור למסד נתונים וכו' אני אציג אותו…
הקוד בדף שבודק האם הנתונים של הגולש תואמים הוא:
username=Request.Form("username")
pass=Request.Form("password")
Dim mySQL,rsTemp
mySQL="SELECT * FROM users"
response.Write mySQL
Call getFromDatabase(mySQL, rsTemp, "")
Do while not rsTemp.eof
if username=rsTemp("Nick") and pass=rsTemp("Pass") then
response.Cookies("log_on")="yes"
session("log_on")=rsTemp("Nick")
Response.Redirect("forum.asp")
End if
rsTemp.movenext
Loop
Call closeDB()
והקוד בקובץ include הוא:
sub getFromDatabase(mySQL, rsTemp, scriptName)
call openDb()
set rsTemp = server.createObject("adodb.recordset")
' set locktype
rsTemp.lockType = adLockReadOnly
' set the cursor
rsTemp.cursorType = adOpenForwardOnly
rsTemp.open mySQL, connTemp
end sub
והעכשיו ההודעת שגיאה שאני מקבל….
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/forum/includes/databaseFunctions.asp, line 29
8 תשובות
איפה השגיאה
/forum/includes/databaseFunctions.asp, line 29
תן את השורה הזאת בקובץ הזה [בצרוף קוד רלונטי]
אוקי…
הנה זאת שורת הקוד שיש איתה בעיה.. שורת קוד 29
rsTemp.open mySQL, connTemp
תודה רבה על העזרה….
מזה המשתנה connTemp?
לא הגדרת/טענת אותו בשום מקום בקוד
מצטער הנה מה שביקשת…
מצורף עוד קובץ ב- include והוא:
<% Response.Buffer=true %>
<%
private const pServerOS = "windows"
' database (Access, SQLServer, mySQL)
pDataBase = "access"
pDatabaseConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="&server.mappath("mdb-databaseforum.mdb")
%>
תודה רבה רבה על העזרה….
ועוד משהו להבהרה של הקוד
sub openDb()
if varType(connTemp)=0 or varType(connTemp)=1 then
' create the connection
set connTemp = server.createObject("adodb.connection")
connTemp.Open pDatabaseConnectionString
' response.write pDatabaseConnectionString
end if
end sub
תודה רבה רבה….
בדוק אם משתנה הקונקשן גלובלי
היכן הוא מוגדר בכלל? אם הוא מוגדר בתוך פונקציה הוא מוכר רק בה
אז מה אני עושה כדי לתקן את זה?
=תגדיר אותו גלובלי
כלומר – לא בתוך פונקציה