Asp classic 需要ASP对象
我在Classic ASP中遇到错误:Asp classic 需要ASP对象,asp-classic,Asp Classic,我在Classic ASP中遇到错误: Microsoft VBScript runtime error '800a01a8' Object required: 'SqlStatement' /Data/Database.asp, line 186 第186行是:SqlStatement.CommandText=sql 这是我的密码: dimdb,SqlStatement,RS Set Db=Nothing Set SqlStatement=Nothing 设置RS=无 '初始化数据库一次
Microsoft VBScript runtime error '800a01a8'
Object required: 'SqlStatement'
/Data/Database.asp, line 186
第186行是:SqlStatement.CommandText=sql
这是我的密码:
dimdb,SqlStatement,RS
Set Db=Nothing
Set SqlStatement=Nothing
设置RS=无
'初始化数据库一次
私有子SqlInitDb()
如果isNull(Db)或varType(Db)=vbEmpty或IsObject(Db)=False,则
'创建数据库连接对象
Set Db=Server.CreateObject(“ADODB.Connection”)
'设置连接超时
Db.ConnectionTimeout=会话(“ConnectionTimeout”)
'设置命令超时
Db.CommandTimeout=会话(“CommandTimeout”)
"开放数据库",
Db.打开会话(“连接字符串”)
如果结束
如果isNull(SqlStatement)或varType(SqlStatement)=vbEmpty或IsObject(SqlStatement)=False,则
'创建sql语句
Set SqlStatement=Server.CreateObject(“ADODB.Command”)
'将打开的数据库设置为SQL语句的活动连接
SqlStatement.ActiveConnection=Db
如果结束
端接头
'如果数据库未关闭,请将其关闭
私有子SqlClose()
如果不是isNull(SqlStatement)和varType(SqlStatement)vbEmpty和IsObject(SqlStatement)=True,则
SqlStatement.ActiveConnection.Close
如果结束
Set SqlStatement=Nothing
如果不是isNull(Db)和varType(Db)vbEmpty和IsObject(Db)=True,则
对于每个对象,以Db为单位。错误
响应。写入(“”)
响应。写入(“说明:”)
响应。写入(objErr.Description&“
”)
write(“帮助上下文:”)
response.write(objErr.HelpContext&“
”)
write(“帮助文件:”)
response.write(objErr.HelpFile&“
”)
write(“本机错误:”)
响应。写入(objErr.NativeError&“
”)
write(“错误号:”)
响应。写入(objErr.Number&“
”)
write(“错误源:”)
response.write(objErr.Source&“
”)
write(“SQL状态:”)
write(objErr.SQLState&“
”)
回答。写(“”)
下一个
Db.Close()
Set Db=Nothing
如果结束
端接头
'将用户插入数据库
公共函数插入器(ByVal userObj)
如果isNull(userObject)或varType(userObject)=vbEmpty,则
插入器=-1
退出功能
如果结束
调用SqlInitDb()
Set RS=Server.CreateObject(“ADODB.Recordset”)
dimsql
sql=“在用户(名字,姓氏)中插入值('”&userObj.getFirstname()&“,'&userObj.getlasname()&“)”
SqlStatement.CommandText=sql
SqlStatement.CommandType=1
'运行insert语句
SqlStatement.Execute
InsertUser=错误编号
调用SqlClose()
端函数
SqlStatement显然是一个对象,所以我不理解
感谢VBScript提供了许多将变量定义为空、null、nothing等的方法 你遇到的问题是,没有东西是物体。它不是空的,它不是空的,它是完全有效的对象,只是碰巧是一种特殊的对象 因此,您的条件总是失败,即使变量为Nothing,也返回False 要解决此问题,请使用VBScript中唯一正确的方法检查该特殊值:
如果SqlStatement为Nothing,则
'创建sql语句
Set SqlStatement=Server.CreateObject(“ADODB.Command”)
'将打开的数据库设置为SQL语句的活动连接
SqlStatement.ActiveConnection=Db
如果结束
唯一的缺点是,您现在必须确保将变量初始化为Nothing,否则它将抛出错误。VBScript有许多方法将变量定义为空、空、Nothing等 你遇到的问题是,没有东西是物体。它不是空的,它不是空的,它是完全有效的对象,只是碰巧是一种特殊的对象 因此,您的条件总是失败,即使变量为Nothing,也返回False 要解决此问题,请使用VBScript中唯一正确的方法检查该特殊值:
如果SqlStatement为Nothing,则
'创建sql语句
Set SqlStatement=Server.CreateObject(“ADODB.Command”)
'将打开的数据库设置为SQL语句的活动连接
SqlStatement.ActiveConnection=Db
如果结束
唯一的缺点是,现在必须确保将变量初始化为Nothing,否则它将抛出错误。No,这是经典的ASP。是什么让你认为它是ASP.NET?试着在init方法中检查
Nothing
:如果isNull(SqlStatement)或(varType(SqlStatement)=vbEmpty)或(IsObject(SqlStatement)=False)或(SqlStatement是Nothing),那么否这是经典的ASP。是什么让你认为它是ASP.NET?试着在init方法中检查Nothing
:如果isNull(SqlStatement)或(varType(SqlStatement)=vbEmpty)或(IsObject(SqlStatement)=False)或(SqlStatement为Nothing),那么