|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
Возможно ли использование динамического запроса в качестве источника данных формы клиент-серверной архитектуры 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"". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 08:53 |
|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
Нормальным для аксеса является задание не рекордсета, а рекордсоурса для формы. В случае мдб + сервер использование процедур при этом невозможно. В рекордсоурсе синтаксис должен быть джетовский, входящие в него таблицы или запросы с сервера - прилинкованными. Спасает дело запросы скл пасс сру. Они без анализа синтаксиса мозгами акеса отправляются на сервер, в ответ получается набор данных. Заниматься созданием рекордсетов для форм - шаг, когда других вариантов не остается. Конкретно ваше решение, судя по вопросу, заключается в динамическом добавлении некоего фильтра к селекту. Может имеет смысл прилинковать запрос без всяких веа к аксесу, веа собирать на вба и формировать рекордсоурс как селект из прилинкованного запроса плюс ваш веа. Ну есть устаревший адп, где такого рода проблемы в принципе не возникают. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 09:07 |
|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
П-ЛВ случае мдб + сервер использование процедур при этом невозможно.Возможно. П-ЛСпасает дело запросы скл пасс сру.Имеются в виду ODBC-"запросы к серверу"? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 09:14 |
|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 14:00 |
|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
Тоже нет. А оно чем-то отличается? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 15:31 |
|
MSA+MSSQL: динамический запрос
|
|||
---|---|---|---|
#18+
Михайло_, авторПолучаю ошибку: -2147217900 "Неправильный синтаксис около ключевого слова "WITH"". Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2015, 21:13 |
|
|
start [/forum/topic.php?fid=45&msg=39082871&tid=1614389]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 454ms |
0 / 0 |