150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|||||||||||
1 | |||||||||||
Передача параметров из Access в ХП SQL Server03.05.2017, 10:44. Показов 4265. Ответов 23
Метки нет (Все метки)
Привет всем,
подскажите как правильно передать параметры в хранимую процедуру при ее вызове из Access? На сервере создал ХП:
Из Access вызываю ХП:
0
|
03.05.2017, 10:44 | |
Ответы с готовыми решениями:
23
Не хватает параметров в запросе аксесс к таблицам SQL Server Ms Access + MS SQL Server ACCESS <-> MS SQL Server Access & SQL Server |
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
03.05.2017, 17:32 | 2 |
Помогите ТС, мне тоже интересен ответ.
я предполагаю что процедура SQL Server должна иметь входные параметры, а я их не вижу, тогда из аксесс вызывается эта процедура с параметрами
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
||||||||||||||||
05.05.2017, 09:33 [ТС] | 3 | |||||||||||||||
тогда так))
ошибка, надо так: ))
если в запросе к серверу указываю
Подскажите как это исправить?
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||
05.05.2017, 09:40 | 4 | |||||
ну уж во всяком случае не строки странного вида передавать в качестве даты
ну во как сервер должен перевести в дату 'D1()'. Какое это число по-вашему? для начала попробуйте с константами типа
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
05.05.2017, 10:10 [ТС] | 5 |
D1() и D2() это функции, они имеют конкретные значения, в простой разделенной базе все работает, Требуется передать их значения входным параметрам ХП
Добавлено через 1 минуту в таком виде все работает )) Добавлено через 5 минут т.е., как мне думается, формат ' 01012017' надо как-то привести к виду '20170101'? Добавлено через 1 минуту D1() и D2() имеют краткий формат дата и время
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
||||||
05.05.2017, 10:18 | 6 | |||||
даты sql server имеют формат yyyymmdd
тогда
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
05.05.2017, 10:28 [ТС] | 7 |
ругается на неправильный синтаксис у конструкции D1, никак не догоню, чего надо (
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
||||||
05.05.2017, 10:34 | 8 | |||||
попробуй так или поиграйся с кавычкой, дата в скуле обрамляется одинарной кавычкой, по моему
когда набираешь в аксессе эту функцию, посказка всплывает о необходимости передачи параметров?
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
05.05.2017, 11:06 [ТС] | 9 |
нет, только сообщение от сервера о неправильном синтаксисе
Добавлено через 25 минут если в таком виде EXEC z_server_ambzab то сообщение от сервера: Процедура или функция "z_Server_Ambzab" ожидает параметр "@DT1", который не был указан. (#201)
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
05.05.2017, 12:20 | 10 |
мое предположение? что в запрос попадает дата, которая не воспринимается как дата (без кавычек или с кавычками но не как дата)
я не сильный знаток - но предлагаю: формировать запрос как строку отдельно, тоже переменной. а в функции уже запускать запрос на исполнение Там есть команда в скуле запустить запрос на выполнение с параметром срока запроса Этот нижеуказанный запрос нужно формировать отдельно строкой, где переменные @DT1 And @DT2 будут в формате 'yyyymmdd' Добавлено через 3 минуты Это уже хорошо. значит если мы указываем значения переменной то они передаются из аксесса в скуль, но не как дата
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
05.05.2017, 12:24 [ТС] | 11 |
чет мне кажется от перемены мест результат не изменится(, все равно значения надо передать параметрам, которые должны принять правильное значение.
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
05.05.2017, 12:44 | 12 |
команда EXEC ПеременнаяСодержащаяТекстЗапроса
Запрос формируется строкой в двойных кавычках а значения переменных даты в одинарной кавычки, просто под рукой нет моего примера, где я с похожим колупался.
0
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
05.05.2017, 13:29 [ТС] | 13 |
0
|
шапоклякистка 8-го дня
|
||||||
06.05.2017, 08:53 | 14 | |||||
2
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
|
06.05.2017, 19:27 [ТС] | 15 |
texnik-san, стесняюсь спросить, как с помощью этой функции присвоить параметрам хранимой процедуры значения функций D1() и D2() из Access? В целом мне надо отфильтровать записи таблицы по интервалу дат на стороне сервера, чтобы в дальнейшем использовать результат для дальнейшей обработки в Access. Это первый запрос на который будут в дальнейшем ссылаться другие запросы в Access.
0
|
шапоклякистка 8-го дня
|
||||||
06.05.2017, 19:48 | 16 | |||||
Сообщение было отмечено rvg как решение
Решение
Ну извините, по вашему изначальному вопросу я никак не могла догадаться, что процедура у вас на выборку, а не исполнимая. Формулируйте вопросы точнее - не будете получать ответы не на тот вопрос.
Тогда вам нужно просто программно сгенерить полный текст вызова функции вместе с результатом работы ваших функций (т.е. должны попасть уже готовые константы, а не переменные), и присвоить получившийся текст свойству .sql заранее созданного запроса к серверу. А затем этим запросом можно пользоваться как обычным аксесным.
1
|
150 / 28 / 3
Регистрация: 24.08.2014
Сообщений: 485
|
||||||
07.05.2017, 08:15 [ТС] | 17 | |||||
texnik-san, извините за бестолковость, но не могли бы Вы объяснить более конкретно?
На сервере (SQL Server Express 2014) создал хранимую процедуру, при запуске говорит, что выполнение команд успешно завершено:
0
|
шапоклякистка 8-го дня
|
|
07.05.2017, 09:28 | 18 |
Скажем, ту форму вызова процедуры, которая у вас заведомо работает:
Где-то между тем, как получат свои значения начальная и конечная даты и тем, как вам будет уже нужен результат выборки с сервра. А точнее я не смогу вам подсказать, т.к. понятия не имею, какие вообще объекты и события есть в вашей базе. Скажем, если даты вводит пользователь, нажимает кнопку, а выборка нужна в форме, которая будет открыта по нажатию пользователем кнопки - логично повесить это на нажатие кнопки.
1
|
шапоклякистка 8-го дня
|
|
07.05.2017, 09:46 | 19 |
На всякий случай: под "запросом к серверу" я имею в виду запрос, созданный в Аксес, но особого типа (он таки назвается "Запрос к серверу". В нем в свойствах прописываются данные подключения к серверу, и такой запрос выполняется сервером , но в аксес его можно использовать так же, как и любой другой запрос.
0
|
шапоклякистка 8-го дня
|
|
07.05.2017, 10:23 | 20 |
Прошу прощения за опечатку:
0
|
07.05.2017, 10:23 | |
07.05.2017, 10:23 | |
Помогаю со студенческими работами здесь
20
Перемещение из access в SQL server Люди памагите! Sql server и Access Перенос базы Access в SQL Server Ускорение работы Access-SQL Server Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |