Recordset возвращает правильный номер строки, но со всем пустым полем - PullRequest
1 голос
/ 24 октября 2009

У меня одна и та же копия доступа, работающая сейчас в 3 городах. Они отлично работают. Они на 99% одинаковы с одним небольшим отличием. У каждого из них есть два представления, которые используют разные odbc-соединения с БД разных городов (все эти базы данных - SQL Server 2005). Представления служат источником данных для двух очень простых запросов.

Однако, хотя я пытался сделать новую копию для нового города, я обнаружил, что один из простых внутренних запросов возвращает правильное количество строк, но все данные пусты, в то время как другой запрос работает правильно.

Я проверил данные этих двух представлений, данные верны.

Проблема, которая вызывает

Select * from View_Top where Name = "ABC"

когда набор записей возвращается, даже rs! Name дает мне пустую строку.

Пожалуйста, помогите

Ответы [ 4 ]

0 голосов
/ 27 октября 2009
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 я могу просмотреть результат этого запроса, у него есть данные. Вот почему я знаю, что набор записей возвращает правильное количество строк (считая цикл в коде). извините за мои ошибки, я использую Account в предложении where, операторы выбора должны быть похожи на

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

запрос возвращает правильный номер строки, но все данные строки (даже поле счета) являются пустой строкой.

тогда я выяснил, что действительно вызывает проблему, это поле AMOUNT, если я опускаю сумму, все работает. хотя я не понимаю почему.

0 голосов
/ 24 октября 2009

Без определения VIEW_TOP трудно сказать, где ваша ошибка, но если вы получаете строки, но столбцы равны NULL, я предполагаю, что VIEW_TOP (или что-то, от чего это зависит) включает в себя OUTER JOIN, и вы потянув колонны с неправильной стороны JOIN.

0 голосов
/ 26 октября 2009

определение view_top

"Имя, учетная запись, код учетной записи, сумма, дата ...."

Выберите заявления:

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

Я обнаружил, что если я опущу количество, все работает.

Хотя я до сих пор не понимаю, почему.

0 голосов
/ 24 октября 2009

Что ж, запрос выглядит немного неправильно для меня, попробуйте использовать «вместо» для разграничения вашей строки ABC ...

...