记录返回行的正确数目,但所有字段为空

问题描述:

我有机会的同一个副本,现在在3个城市运行。他们的工作非常好。它们的99%与一个小的差异相同。它们中的每一个都有两个视图,它们使用不同的odbc连接到不同的城市DB(所有这些数据库都是SQL Server 2005)。这些视图充当了两个非常简单的查询的数据源。记录返回行的正确数目,但所有字段为空

然而,当我试图让一个新的城市新副本,我发现,简单的内部查询的一个返回行的正确数目,但所有数据都是,而其他查询功能空正常。

我查了一下这两种观点的数据,该数据是正确的。

在导致问题就像

Select * from View_Top where Name = "ABC" 

时记录的回报,甚至RS!名称给我一个空字符串。

请帮

+0

请发布VIEW_TOP的定义和它依赖的任何视图。您可能正在使用OUTER JOIN并从JOIN的错误一侧拉动列。 –

+1

虽然这不可能是问题的原因,但NAME是Access/Jet/ACE中的保留字,避免使用保留字是个好主意。安装的Access版本中的变体可能会导致不同PC上出现此类问题的不同结果。但这更多的是一般性建议,而不是问题的可能原因。 –

+0

从这个位置,你可以从MS SQL Management Studio运行相同的查询并获得结果吗? – JeffO

嘛查询看起来有点我错了,请尝试使用“替代”来分隔您的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' 

该查询返回的行权数量,但所有的行数据(即使在帐目场)是空字符串。

后来我发现真正造成问题金额字段,如果我忽略的量,一切正常。尽管我不明白为什么。