Возможно ли использование динамического запроса в качестве источника данных формы клиент-серверной архитектуры EXPRESS+mdb?
Вариант первый: на сервере создана хранимая процедура my_proc:
declare @str_SQL varchar(8000)
declare @str_filtr as varchar(1000);
SET @str_SQL = 'WITH (...) SELECT ... FROM ... WHERE ...'+@str_filtr
exec(@str_SQL)
В форме задаётся источник данных:
Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open 'WITH (...) SELECT ... FROM ... WHERE ...' + str_filtr, "Provider=sqloledb;Server=...;Database=...;User ID=...;Password=...", adOpenKeyset, adLockOptimistic
Set Recordset = rst
rst.Close
Set rst = Nothing
Итог: данные не отображаются на форме. Ни ошибок, ни сообщений...
Вариант второй: В форме задаётся источник данных:
Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open 'WITH (...) SELECT ... FROM ... WHERE ...' + str_filtr, "Provider=sqloledb;Server=...;Database=...;User ID=...;Password=...", adOpenKeyset, adLockOptimistic
Set Recordset = rst
rst.Close
Set rst = Nothing
Получаю ошибку: -2147217900 "Неправильный синтаксис около ключевого слова "WITH"".
http://www.sql.ru/forum/1180905/msa-mssql-dinamicheskiy-zapros