记录返回行的正确数目,但所有字段为空
问题描述:
我有机会的同一个副本,现在在3个城市运行。他们的工作非常好。它们的99%与一个小的差异相同。它们中的每一个都有两个视图,它们使用不同的odbc连接到不同的城市DB(所有这些数据库都是SQL Server 2005)。这些视图充当了两个非常简单的查询的数据源。记录返回行的正确数目,但所有字段为空
然而,当我试图让一个新的城市新副本,我发现,简单的内部查询的一个返回行的正确数目,但所有数据都是,而其他查询功能空正常。
我查了一下这两种观点的数据,该数据是正确的。
在导致问题就像
Select * from View_Top where Name = "ABC"
时记录的回报,甚至RS!名称给我一个空字符串。
请帮
答
嘛查询看起来有点我错了,请尝试使用“替代”来分隔您的ABC串...
答
没有VIEW_TOP的定义,它很难说在您的错误是,但如果你得到的行,但列是空的我猜,VIEW_TOP(或者它依赖的东西)包括一个外部连接,并且你从连接的错误一侧拉动列。
答
view_top定义
“姓名,账号,AccountCode,金额,日期......”
选择语句:
Select Name, Account, AccountCode, Amount, Date
From View_Top Where Name = 'xxx'
我发现,如果我省略了金额,一切正常。
虽然我还是不明白这是为什么。
答
SELECT
acc.FIRM,
acc.OFFICE,
acc.ACCOUNT,
a.CONV_CODE,
a.OTHER_AMT AS AMOUNT,
a.TRANS_DATE,
a.DESCRIPTN,
a.JRNAL_TYPE
FROM AccTrans AS a LEFT OUTER JOIN ACC AS acc ON a.ACCNT_CODE = acc.ACCNT_CODE
WHERE
(acc.SUN_DB = 'IF1') AND
(ANAL_T0 <> '') AND
(a.TRANS_DATE < '20091022') AND
(a.JRNAL_TYPE = 'MATCH');
这是视图的定义。的确,在Access中我能够查看这个查询的结果,它有数据。这就是为什么我知道记录集返回正确的行数(通过计算代码中的循环)。对不起,我的错误,我使用的帐户在where子句中的select语句应该像
select Firm, Office, Account, Trans_Date.... from
view_top
where account = 'ABC'
该查询返回的行权数量,但所有的行数据(即使在帐目场)是空字符串。
后来我发现真正造成问题金额字段,如果我忽略的量,一切正常。尽管我不明白为什么。
请发布VIEW_TOP的定义和它依赖的任何视图。您可能正在使用OUTER JOIN并从JOIN的错误一侧拉动列。 –
虽然这不可能是问题的原因,但NAME是Access/Jet/ACE中的保留字,避免使用保留字是个好主意。安装的Access版本中的变体可能会导致不同PC上出现此类问题的不同结果。但这更多的是一般性建议,而不是问题的可能原因。 –
从这个位置,你可以从MS SQL Management Studio运行相同的查询并获得结果吗? – JeffO