powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск через DAO хранимой процедуры
13 сообщений из 13, страница 1 из 1
Запуск через DAO хранимой процедуры
    #32699906
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделал бывший запрос на изменение в хранимую процедуру:
Код: plaintext
1.
2.
3.
CREATE PROCEDURE qSbros AS 
UPDATE dbo.tblSalon_Sel SET dbo.tblSalon_Sel.Sel =  0 ;

GO
на сервере работает, а как ее запустить из Аксесса97?
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32699940
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 прямой запрос к серверу через ODBC + querydef + execute
2 Workspace через ODBCDirect
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim  Conn_Str As String   
Dim MyODBC As Workspace
  Dim MyConn As Connection
  Set MyODBC = CreateWorkspace("", "admin", "", dbUseODBC)
  Conn_Str= "ODBC;DATABASE=tel;UID=sa;PWD=xxxx;DSN=tango"
  Set MyConn = MyODBC.OpenConnection("", , , Conn_Str)
  MyConn.execute "SP"  ' <-----хранимка 

...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32699962
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По п.1 не совсем понял: в смысле создать на стороне Аксесса querydef на изменение(т.е. ничего не менять, оставив запрос в Аксессе) или на стороне сервера создать запрос, который запустит ХП(а это как?)?
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700016
Фотография kedzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написать в аксесе такой код, и подставить туда свои значения.
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700053
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем зеленыйПо п.1 не совсем понял: в смысле создать на стороне Аксесса querydef на изменение(т.е. ничего не менять, оставив запрос в Аксессе) или на стороне сервера создать запрос, который запустит ХП(а это как?)?

почему запрос обязательно на изменение,тебе нужен к серверу
содержимое "SP par1,par2" в свойствах ODBC
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700137
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсодержимое "SP par1,par2" в свойствах ODBCтак это про пункт2(там, где Shuhard код привел), тут я разобрался, спасибо, а я про автор1 прямой запрос к серверу через ODBC + querydef + execute
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700197
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хранимка
Код: plaintext
1.
2.
3.
4.
drop proc inna
go
create proc  inna as
update Categories set description= 'blabla'  
grin - odbc
запрос НЕ возвращает данных
вызывается currentb,querydefs(Q1).execute
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700405
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это из какого Аксесса рисунок приведен? В А97, в св-вах запроса совсем другие позиции.
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700410
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И при попытке ввести в бланк что-то "свое"(на рисунке видно, что бланк содержит имя ХП) вываливается ошибка.
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700434
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ибо сказано - ЗАПРОС К СЕРВЕРУ
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700473
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу(в смысле - спасибо! ) слова "к серверу" я и проглядел!
Да, такой способ удобнее, если параметры у запроса неизменные - код короче.
А иначе придется вторым способом пользоваться.
Что разумнее: объявить переменные MyODBC и MyConn как глобальные, присвоить им значения при открытии базы и потом только ссылаться или каждый раз объявлять и присваивать?
...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700512
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем зеленыйТьфу(в смысле - спасибо! ) слова "к серверу" я и проглядел!
Да, такой способ удобнее, если параметры у запроса неизменные - код короче.
А иначе придется вторым способом пользоваться.
Что разумнее: объявить переменные MyODBC и MyConn как глобальные, присвоить им значения при открытии базы и потом только ссылаться или каждый раз объявлять и присваивать?
2 глобальные часто сбрасываются при ошибках - поэтому на этапе дебага удобнее "моргать" MyODBC и MyConn почаще
1 для запроса нет проблем(если mdb локальная) менять строку sql посредством querydef и свойства SQL
в плюс - отчёты на SP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub XRstRepReq(sqlstr As String, paramstr As String, rptName As String)
Dim zapName As String
Dim MyZap As DAO.QueryDef
Dim MyDb As DAO.Database
DoCmd.OpenReport rptName, acViewDesign, , , acHidden
zapName = Reports(rptName).RecordSource
DoCmd.Close acReport, rptName, acSaveNo
Set MyDb = CurrentDb
On Error Resume Next
MyDb.QueryDefs.Delete zapName
Set MyZap = MyDb.CreateQueryDef(zapName)
MyZap.Connect = "ODBC;DSN=rumba;DATABASE=tel;Trusted_Connection=Yes"
MyZap.SQL = sqlstr & " " & paramstr
MyZap.Close
Set MyZap = Nothing
DoCmd.OpenReport rptName, acViewPreview
DoCmd.RunCommand acCmdZoom75
End Sub

...
Рейтинг: 0 / 0
Запуск через DAO хранимой процедуры
    #32700772
Совсем зеленый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка:
Код: plaintext
DoCmd.OpenReport rptName, acViewDesign, , , acHidden
в Аксессе97 у команды OpenReport нет, к сожалению, аргумента "скрытый", а последних версиях есть?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск через DAO хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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