1

我现在在 3 个城市运行相同的访问副本。他们工作得很好。它们 99% 相同,只有一个细微差别。他们每个人都有两个视图,它们使用不同的 odbc 连接到不同的城市数据库(所有这些数据库都是 SQL Server 2005)。这些视图充当一些两个非常简单的查询的数据源。

然而,当我尝试为一个新城市制作一个新副本时,我发现其中一个简单的内部查询返回了正确的行数,但所有数据都是空的,而其他查询正常运行。

我检查了这两个视图的数据,数据是正确的。

引起问题的一个是

Select * from View_Top where Name = "ABC"

当记录集返回时,甚至 rs!Name 给我一个空字符串。

请帮忙

4

4 回答 4

0

view_top 定义

“姓名、账户、账户代码、金额、日期……”

选择语句:

Select Name, Account, AccountCode, Amount, Date 
From View_Top Where Name = 'xxx'

我发现如果我省略金额,一切正常。

虽然我还是不明白为什么。

于 2009-10-26T06:06:28.250 回答
0
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 子句中使用 Account,select 语句应该像

select Firm, Office, Account, Trans_Date.... from
view_top
where account = 'ABC'

查询返回正确的行数,但所有行数据(甚至帐户字段)都是空字符串。

然后我发现真正导致问题的是 AMOUNT 字段,如果我省略了金额,一切正常。虽然我不明白为什么。

于 2009-10-27T00:49:44.637 回答
0

好吧,查询对我来说看起来有点不对劲,尝试使用 ' 而不是 " 来分隔你的 ABC 字符串......

于 2009-10-24T13:44:31.157 回答
0

如果没有 VIEW_TOP 的定义,很难说出你的错误在哪里,但是如果你得到行但列是 NULL 我猜 VIEW_TOP (或它依赖的东西)包括一个 OUTER JOIN 并且你正在拉列从 JOIN 的错误一侧。

于 2009-10-24T13:55:48.690 回答