艺术品拍卖最高记录:asp 的小问题
我用class=rs("calss")这样的句子不能通过
郁闷了
sql查询中需要查询从另一个表中取得的记录,recordset不能用于直接查询。。所以想设置一个中间变量
我的代码。。其他部分是没有问题的
事先没有定义变量,如果定义变量使用dim class as string
这种句子。。他会告诉我缺少标识符
name=Session("name")
set rsa=server.CreateObject("adodb.recordset")
rsa.open "select * from std where usr_name='"&name&"'",conn,1,1
set class=rsa("class")
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from std where usr_name='"&class&"' order by lastselecttime desc",conn,1,1
另外,我的机器上运行二楼代码
Microsoft VBScript 编译器错误 错误 '800a03ea'
语法错误
/testa.asp,行 6
class=rs("class")
^
class=rs("class")不能通过???
你的代码是怎么样的?
这样的写法是肯定能通过的。一定是你代码其他地方产生了错误。
一个简单的例子:
set rs=server.createobject("adodb.recordset")
rs.open "select top 1 * from tablename",conn,1,1
if not(rs.eof and rs.bof) then
class=rs("class")
else
class="错误值"
end if
rs.close
set rs=nothing
response.write class
'---条件:假设表tablename中有字段class
那么当你的数据库连接设置正确的情况下,是绝对可以在页面上显示一个执行结果的。
如果可以,把你的代码发上来看看。
--------------------------------
如果你加了option explicit,则你必须事先定义变量才能用。否则就可以不定义直接用。
另外,ASP里定义变量,不需要用dim xx as string这样的。直接
dim xx就行了
以下代码,你看一下,我稍做修改
name=Session("name") '这句正确
set rsa=server.CreateObject("adodb.recordset")
rsa.open "select * from std where usr_name='"&name&"'",conn,1,1 '这句也正确
'set class=rsa("class") 在这里,你不应该用class做变量,这是系统保留字,而且你这是赋值,并不需要用set的.
你改成:
class_str=rsa("class") '改成这句试试
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from std where usr_name='"&class_str&"' order by lastselecttime desc",conn,1,1
这样修改,我就不信还不能通过?
对变量赋object类型的值时,使用动词 set
可以合并起来查询
rs.open "select product.*,class.className where product.classID=class.id",conn,1,1
或是
rs.open "select * from product",conn,1,1
rs_className = "select * from class where id=" & rs("classID")