标题:rsArray 为啥写不全?
只看楼主
pinkzilu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-26
结帖率:0
已结贴  问题点数:20 回复次数:8 
rsArray 为啥写不全?
请高人帮我看看,同样的一段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
搜索更多相关主题的帖子: rsArray 
2010-10-26 09:22
pinkzilu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-26
得分:0 
没有人知道么? 我琢磨着是我MS sql里data type定义的可能跟asp准备接受的不符,是不是啊?
2010-10-26 13:01
coldstone
Rank: 2
等 级:论坛游民
帖 子:9
专家分:27
注 册:2008-10-8
得分:10 
就你上面的代码输出的结果是什么?
2010-10-26 18:19
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:10 
别人没法知道,你的字段数据类型!也不知道你到底出了什么样的结果!怎么回答你的问题?

★★★★★为人民服务★★★★★
2010-10-27 07:03
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
另外有一种可能性就是:你的数据中包含了“"”!

★★★★★为人民服务★★★★★
2010-10-27 07:09
pinkzilu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-26
得分:0 
我把"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也行啊
2010-10-27 08:21
coldstone
Rank: 2
等 级:论坛游民
帖 子:9
专家分:27
注 册:2008-10-8
得分:0 
The strQ is : False?
那当然 wrong type 啦,跟data type没什么关系。至少strQ得是正常的SQL语句才行。
看起来你帖的代码只是你原代码的相关片断,如果能提供更完整的代码,会比较好一点。
2010-10-27 13:58
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
The strQ is: False
当strQ是一个正确的SQL语句时,你的问题就解决了!

★★★★★为人民服务★★★★★
2010-10-27 16:46
pinkzilu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-26
得分:0 
谢谢上面的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 "
2010-10-28 10:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-324000-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.128508 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved