注册 登录
编程论坛 ASP技术论坛

rsArray 为啥写不全?

pinkzilu 发布于 2010-10-26 09:22, 514 次点击
请高人帮我看看,同样的一段code,如果database连Access, rsArray里可以正常写入所有的
fields,但是如果连SQL server就只能写入NomID和Categories.Description,其他都为
空.我把strQ对应的select语句放到SQl server里去run,结果也是对的,每个field都显示
了,但为什么没有能够被读到里rsArray呢? rsArray = objRS.GetRows()为什么没能读
全?



Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection = Connection
strQ = "SELECT NominationDetailsCurrent.NomID, Title, OrderNo, Letter,
CategoryName, Categories.Description, Categories.Weight " & _
       "FROM (NominationDetailsCurrent LEFT JOIN NominationCategories
ON NominationCategories.NomID = NominationDetailsCurrent.NomID) LEFT
JOIN Categories ON NominationCategories.CategoryID =
Categories.CategoryID " & _
     "ORDER BY Categories.Weight, OrderNo "
Response.Write( " The strQ is: " & strQ & "<br />")

objRS.Open strQ
If Not objRS.EOF Then
  rsArray = objRS.GetRows()
 
End If

For Each item In rsArray
    Response.Write(item & "<br />")
Next
8 回复
#2
pinkzilu2010-10-26 13:01
没有人知道么? 我琢磨着是我MS sql里data type定义的可能跟asp准备接受的不符,是不是啊?
#3
coldstone2010-10-26 18:19
就你上面的代码输出的结果是什么?
#4
cnfarer2010-10-27 07:03
别人没法知道,你的字段数据类型!也不知道你到底出了什么样的结果!怎么回答你的问题?
#5
cnfarer2010-10-27 07:09
另外有一种可能性就是:你的数据中包含了“"”!
#6
pinkzilu2010-10-27 08:21
我把"If Not objRS.EOF Then" comment out了,发现是data type的问题:

The strQ is: False

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in
conflict with one another.

现在出错的这些数据类型之前连access database时定义的是text/memo,(之前这样定义,没有问题,可以显示)。现在连MS SQL,这些数据定义的是nvarchar(255)/nvarchar(max).但是他们不都应该是string么?应该改database里的data type吗?

哪位大侠教我怎么troubleshooting也行啊
#7
coldstone2010-10-27 13:58
The strQ is : False?
那当然 wrong type 啦,跟data type没什么关系。至少strQ得是正常的SQL语句才行。
看起来你帖的代码只是你原代码的相关片断,如果能提供更完整的代码,会比较好一点。
#8
cnfarer2010-10-27 16:46
The strQ is: False
当strQ是一个正确的SQL语句时,你的问题就解决了!
#9
pinkzilu2010-10-28 10:06
谢谢上面的2位啊,我的strQ就长这样啊,连到MS SQL的。我把“ ”& - 等符号都去掉只留select语句,在MS SQL里这段query是可以运行的,结果也是我要的啊。我明天把运行结果和完整代码也贴出来给你们看看,请各位大侠帮我看看到底应该改哪~

strQ = "SELECT NominationDetailsCurrent.NomID, Title, OrderNo, Letter,CategoryName, Categories.Description, Categories.Weight " & _
       "FROM (NominationDetailsCurrent LEFT JOIN NominationCategories ON NominationCategories.NomID = NominationDetailsCurrent.NomID) " & _
       "LEFT JOIN Categories ON NominationCategories.CategoryID = Categories.CategoryID " & _
       "ORDER BY Categories.Weight, OrderNo "
1