powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос к серверу с входными параметрами
25 сообщений из 29, страница 1 из 2
Запрос к серверу с входными параметрами
    #32242755
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В запросе Access97 к серверу MSSQL запускаю хранимую процедуру,
Код: plaintext
exec proc1

но не получается передать значения Access входным параметрам хранимой процедуры!
Как же быть?
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32242776
Nick987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
exec proc "Param1", "Param2"
Это должен быть Pass-Through запрос
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32242812
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
exec proc  "Param1" ,  "Param2"  

Если в качестве "Param1" подставлять переменную Access или функцию например GetFun(), то такой вариант не пройдет!!!
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32242817
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Конечно, не пройдет. Надо получить именно значение параметра и составить строку.

CurrentDb.Querydefs("...").SQL = "exec proc " & f1(...) & "," & f2(...)
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32242890
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч
Спасибо, но у меня Access97 и в свойствах к Querydefs("...") - SQL не отображается :(. Видимо Access97 это свойство не поддерживает.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32242901
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не отображается и не поддерживается - две большие разницы.
по этой теме уже не мало было копий сломано в форуме.
если кратко: все нормально, свойство есть, пиши руками.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243051
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу:
Код: plaintext
CurrentDb.QueryDefs( 1 ).SQL =  "EXEC Proc1 "  & GetFun() &  ";"  

на что выдаётся ошибка:
Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'.
Исправляю на:
Код: plaintext
CurrentDb.QueryDefs( 1 ).SQL =  "PROCEDURE Proc1 "  & GetFun() &  ";"  

Опять Ошибка:
Ошибка синтаксиса в предложении PARAMETER. (Ошибка 3139)
Подскажите что не так?
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243069
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
; убери

" exec Proc1 " & GetFun()
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243071
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Убирал конечно, но все равно ошибки те же!
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243094
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы не ругался
Код: plaintext
1.
QueryDefs( "..." ).type=dbQSQLPassThrough	
QueryDefs( "..." ).SQL= "..." 
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243112
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда попробуй
а=GetFun()
CurrentDb.QueryDefs(1).SQL =" exec Proc1 " & а

кстати что возвращает GetFun()
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243150
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sasha_1
Что все равно не получается, пишу:
Код: plaintext
1.
2.
3.
Dim i As Integer
i =  1 
CurrentDb.QueryDefs( 1 ).Type = dbQSQLPassThrough
CurrentDb.QueryDefs( 1 ).SQL =  "exec Proc1"  & i

Уже при компиляции ругается на ).Type :
Невозможно присвоение свойству, доступному только для чтения

TatianaT
Пробовал подставлять как функцию, так и обычную переменную. Тип переменной в ACCESS и MSSQL совпадает (integer и int)
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243160
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что в Аксесе инт в MSSQL это смол инт
а лонг Аксеса это в MSSQL это инт
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243162
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> в свойствах к Querydefs("...") - SQL не отображается

Не может быть. У меня тоже 97.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243191
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TatianaT
Код: plaintext
1.
2.
Dim i As Long
i =  1 
CurrentDb.QueryDefs( 1 ).SQL =  "exec Proc1"  & i

Все равно теже ошибки.
Я думаю, что если бы дело было в типах, то ругнулся бы сервер, а здесь ошибки ACCESS

Владимир Саныч
На самом деле нет в свойствах, хотя сервис пак стоит.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243205
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создай ручками новый PassThrough запрос
проверь соединение, настрой параметры
и в его окошке напиши
exec Proc1 1
не закрывая -запусти
если даст ошибку- вот её нам покажи
если отработает тоже сообщи
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243230
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделаю, только на совещание схожу
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243292
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так
Код: plaintext
1.
2.
3.
4.
5.
Dim q As QueryDef
Set q = currentdb.CreateQueryDef( "")
q.Type=dbQSQLPassThrough	
q.SQL=" ..."
q.execute
q.close
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243889
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос
Код: plaintext
exec Proc1  1  

оттестировал, он работает

sasha_1
а здесь опять на Type пишет туже ошибку
Код: plaintext
1.
2.
3.
4.
5.
Dim q As QueryDef
Set q = currentdb.CreateQueryDef( "")
q.Type=dbQSQLPassThrough	
q.SQL=" ..."
q.execute
q.close

Невозможно присвоение свойству, доступному только для чтения
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243893
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не надо задавать Type. Надо задать Connect (срисовав с другого запроса, созданного вручную).
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243907
ustasw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня все рабoтает через ODBC, через Connect ни пробовал
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243909
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это и есть ODBC. Если запрос является Pass-Through Query, то в его свойстве Connect находятся всякие параметры подключения, в том числе имя DSN'а. Если же это обычный запрос, то это свойство является пустой строкой. Соответственно, если программно поменять это свойство, то запрос тут же превратится в Pass-Through или наоборот.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243920
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
P.S. Отдельно есть понятие Connection, так я про него ничего не говорил.
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243922
alex_sic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя хранимая процедура возвращает записи в access? Если да, то как ты их будешь отображать в форме, т.е. как задашь свойство формы recordsource в a97?!
...
Рейтинг: 0 / 0
Запрос к серверу с входными параметрами
    #32243923
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 alex_sic:
Согласен. Тот запрос, который предложен sasha_1 в 14:17, надо делать не временным, а постоянным. И, соответственно, его имя писать в RecordSource.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос к серверу с входными параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]