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

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

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

CurrentDb.Querydefs("...").SQL = "exec proc " & f1(...) & "," & f2(...)
...
Рейтинг: 0 / 0
21.08.2003, 11:39
    #32242890
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
Владимир Саныч
Спасибо, но у меня Access97 и в свойствах к Querydefs("...") - SQL не отображается :(. Видимо Access97 это свойство не поддерживает.
...
Рейтинг: 0 / 0
21.08.2003, 11:42
    #32242901
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
не отображается и не поддерживается - две большие разницы.
по этой теме уже не мало было копий сломано в форуме.
если кратко: все нормально, свойство есть, пиши руками.
...
Рейтинг: 0 / 0
21.08.2003, 12:30
    #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
21.08.2003, 12:36
    #32243069
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
; убери

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

кстати что возвращает GetFun()
...
Рейтинг: 0 / 0
21.08.2003, 13:04
    #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
21.08.2003, 13:07
    #32243160
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
то что в Аксесе инт в MSSQL это смол инт
а лонг Аксеса это в MSSQL это инт
...
Рейтинг: 0 / 0
21.08.2003, 13:08
    #32243162
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
> в свойствах к Querydefs("...") - SQL не отображается

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

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

Владимир Саныч
На самом деле нет в свойствах, хотя сервис пак стоит.
...
Рейтинг: 0 / 0
21.08.2003, 13:34
    #32243205
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
создай ручками новый PassThrough запрос
проверь соединение, настрой параметры
и в его окошке напиши
exec Proc1 1
не закрывая -запусти
если даст ошибку- вот её нам покажи
если отработает тоже сообщи
...
Рейтинг: 0 / 0
21.08.2003, 13:51
    #32243230
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
Сделаю, только на совещание схожу
...
Рейтинг: 0 / 0
21.08.2003, 14:17
    #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
21.08.2003, 20:34
    #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
21.08.2003, 20:45
    #32243893
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
Не надо задавать Type. Надо задать Connect (срисовав с другого запроса, созданного вручную).
...
Рейтинг: 0 / 0
21.08.2003, 21:11
    #32243907
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
У меня все рабoтает через ODBC, через Connect ни пробовал
...
Рейтинг: 0 / 0
21.08.2003, 21:15
    #32243909
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
Это и есть ODBC. Если запрос является Pass-Through Query, то в его свойстве Connect находятся всякие параметры подключения, в том числе имя DSN'а. Если же это обычный запрос, то это свойство является пустой строкой. Соответственно, если программно поменять это свойство, то запрос тут же превратится в Pass-Through или наоборот.
...
Рейтинг: 0 / 0
21.08.2003, 21:31
    #32243920
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
P.S. Отдельно есть понятие Connection, так я про него ничего не говорил.
...
Рейтинг: 0 / 0
21.08.2003, 21:34
    #32243922
alex_sic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
У тебя хранимая процедура возвращает записи в access? Если да, то как ты их будешь отображать в форме, т.е. как задашь свойство формы recordsource в a97?!
...
Рейтинг: 0 / 0
21.08.2003, 21:39
    #32243923
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к серверу с входными параметрами
2 alex_sic:
Согласен. Тот запрос, который предложен sasha_1 в 14:17, надо делать не временным, а постоянным. И, соответственно, его имя писать в RecordSource.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос к серверу с входными параметрами / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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