Любые предложения, как реструктурировать этот простой запрос?
Попадание в базу данных SQL Server с использованием DAO через VB6 (обновленный старый код для работы с новой базой данных), и каким-то образом этот запрос в одном из приложений дает свои результаты.
Select I.sType, Count(I.BarcodeID) AS CountOfID
FROM (SELECT DISTINCT sType, BarcodeID From [Ready]) as I
GROUP BY I.sType
ORDER BY sType
Я вставил запрос в SQL Enterprise Manager, и он работает нормально, как и ожидалось.Это работало отлично, ударяя оригинальную БД Доступа.Но каким-то образом DAO через ODBC, попадающий на SQL Server, генерирует:
"Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос"
То, что я пробовал:
- Удаление ()
- Удаление «как я» и «я».нотация.
- Скобки вокруг [Готово] и без (думая, что это может быть зарезервированное ключевое слово).
- Подтверждено, что соединение с ODBC для Sql Server (это соединение используется длядругие запросы тоже.
Проверено средство профилирования SQL и запрос делает его на сервер (отредактировано, я проверял неправильный инструмент в SQL Express)
РЕДАКТИРОВАТЬ: просто чтобы удовлетворить всеобщее беспокойство, что я на самом деле не обращаюсь к SQL Server, я отредактировал команду SQL на еще более простой
SELECT DISTINCT sType, BarcodeID From [Ready]
, и она работает правильно на том же соединении, поэтомусоединение на 100% подтверждено как SQL Server, сообщение об ошибке находится в состоянии ошибки (сообщается «Access»).
Таким образом, проблема, без сомнения, является запросом FROM запроса.
ОБНОВЛЕНИЕ:
Определенно подтвердил мои подозрения, что запрос, хотя и обычный, не работает с ADO-> ODBC-> Sql Server.
Первый шаг, который делает SQL, это пытается проверитьolumns и т. д. таблицы "from" (которая в данном случае является не таблицей, а самим запросом).
Когда я запускаю базовый SELECT DISTINCT sType, BarcodeID From [Ready]
SQL, проверяет столбцы, ключи, индексы и т. Д. Таблицы с именем «Готово» (exec sp_special_columns N'Ready',NULL,NULL,N'V',N'T',N'U'
), а затем переходит к возвращению результатов.
Когда я использую подзапрос, SQL запускает ту же проверку таблицы def, но для таблицы с именем SELECT DISTINCT sType, BarcodeID From [Ready]
, которая, конечно, не существует и возвращает ошибку (exec sp_special_columns N'SELECT DISTINCT sType, BarcodeID From [Ready]',NULL,NULL,N'V',N'T',N'U'
).VB6 / ADO правильно сообщает, что SQL говорит, что таблица не найдена.Таким образом, очевидно, что этот запрос из запроса ставит в тупик возможности ADO-> ODBC ...