powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
32 сообщений из 32, показаны все 2 страниц
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695670
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
Нет желания создавать в самом файле аксеса запрос к серверу, а хочется программно поключиться к хранимой процедуре на SQL-сервере

Получение данных организуется следующим образом:

авторMe.SQLListString = "PredstList " + Me.Id
Const strConstStringConnection As String = _
"ODBC;DSN=TestTest;DATABASE=test;" _
+ "QueryLog_On=Yes;StatsLog_On=Yes;" _
+ "Trusted_Connection=Yes"
Set WrkODBCFLTS = CreateWorkspace("", "", "", dbUseODBC)
Set ConnFLTS = WrkODBCFLTS.OpenConnection("Conn01", , _
True, strConstStringConnection)
Set RstSQLFLTS = _
ConnFLTS.OpenRecordset _
(Me.SQLListString, dbOpenSnapshot, 0, dbReadOnly) А как это дело присовокупить к форме не знаю.
Или обязательно создать запрос к серверу в самом аксессе, а потом в программе его менять, чтобы запустить с разными параметрами?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695787
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Me.Recordsource = "exec MyProc " & Me.TextBox1 & "," Me.TextBox2

где TextBox1 и TextBox2 содержат значения параметров хранимки. Если это стринговые значения, то соответственно

Код: plaintext
Me.Recordsource = "exec MyProc '" & Me.TextBox1 & "', '" Me.TextBox2 & "'"
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695794
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или на ADP переехать
И не маятся

Так сказать - первый шаг вы сделали - перешли на MSSQL
Теперь самое время на ADP перейдти :)
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695798
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если дело только в параметрах - то можно и табличную функцию сделать на серваке. Недаром ее иногда величают "параметрический запрос". здесь уже можно варьировать возвращаемые поля. Синтаксис -

Код: plaintext
Me.Recordsource = "Select * From MyFunction(" & Me.TextBox1 & "," & Me.TextBox2 & ")"
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695812
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин!!! Не обратил внимания, что речь не об adp!!!
Тогда использовать ADODB.Recordset. Открыть его ("exec MyProc('" & Me.TextBox1 & "', '" Me.TextBox2 & "')") и присвоить форме.

Set Me.Recordset = rst
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695911
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВиталБлин!!! Не обратил внимания, что речь не об adp!!!
Тогда использовать ADODB.Recordset. Открыть его ("exec MyProc('" & Me.TextBox1 & "', '" Me.TextBox2 & "')") и присвоить форме.

Set Me.Recordset = rst
Спасибо! Идею понял, попробую расковырять. :-)
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695927
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeИли на ADP переехать
И не маятся

Так сказать - первый шаг вы сделали - перешли на MSSQL
Теперь самое время на ADP перейдти :)
Пробую делать через ADOBD. Как создать adp-проект не знаю.
Нашел ссылки на вроде этой:
http://]http://kozin1.narod.ru/sql/sel_platform.html
но ничего не понял, вернее понял преимущества хранения данных на SQL-сервере (но я это и раньше знал, поэтому у меня все данные хранятся на нем), но как с самого начала создать adp-файл не знаю.
Если не трудно может подскажите как?
Спасибо заранее.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32695942
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в аксессе
файл -> создать -> проект существующие данные
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696036
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКв аксессе
файл -> создать -> проект существующие данные
Спасибо! Блин, сам не смог такое сделать, век живи, век учись - дураком помрешь. :-)
А вот чем принципиально отличается MDB и ADP не понял. Ну получил список таблиц и хранимых процедур.
Доспуп пользователям (кроме администраторам) к таблицам закрыт полностью.
Все делаю через хранимые процедуры, которые разделены тоже по разным пользователям.
Подключаюсь к серверу только в самом программном коде. Хранимые процедуры создаю через Enterprise Manager.
Имеет смысл в этом случает переходить на ADP?
И что в нем такого особенного?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696081
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADP - это уже клиент-серверная технология, где Аксесс выступает только в роли клиента и может быть безболезненно, а иногда и необходимо, заменен на Delphi, VS VB, VS C++ и т.д. с минимальными переделками.

>>Подключаюсь к серверу только в самом программном коде<<
Файл - Подключение
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696098
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как минимум:
В ADP можно в качестве источника формы указать имя ХП :)
Правда круто?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696126
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВиталADP - это уже клиент-серверная технология, где Аксесс выступает только в роли клиента и может быть безболезненно, а иногда и необходимо, заменен на Delphi, VS VB, VS C++ и т.д. с минимальными переделками.Согласен

Витал>>Подключаюсь к серверу только в самом программном коде<<
Файл - Подключение
Но и в MDB - я не использую данные, которые хрянятся в файлах, а делаю запросы к SQL-серверу, SQL-сервер их выполняет и возвращает данные (по крайней мере я так думаю :-)).
Связей с таблицами у меня нет, связей с хранимыми процедурами тоже нет.
"Файл - Подключение" - что это? я же формирую в программном коде запрос в виде обращения к хранимой процедуре, а для этого надо подклюситься к SQL-серверу, используя строку подключения к нему, например:
Const strConstStringConnection As String = _
"ODBC;DSN=TestTest;DATABASE=test;" _
+ "QueryLog_On=Yes;StatsLog_On=Yes;" _
+ "Trusted_Connection=Yes"

Set WrkODBCFLTS = CreateWorkspace("", "", "", dbUseODBC)

Set ConnFLTS = WrkODBCFLTS.OpenConnection("Conn01", , _
True, strConstStringConnection)

Set RstSQLFLTS = _
ConnFLTS.OpenRecordset _
(Me.SQLListString, dbOpenSnapshot, 0, dbReadOnly))
и ни каких файлов. Или я чего то не догоняю?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696130
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо только SQL аутентификацию так в подключении и укажи пользователь будет вводить логин и пароль для входа, если не надо - будет подключаться автоматом без всяких DSN.
Код: plaintext
1.
2.
Dim cnn As ADODB.Connection, rst As New ADODB.Recordset
Set cnn = CurrentProject.Connection
rst.Open "exec MyProc",cnn
Сравни с первым твоим постом в топике...
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696133
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeКак минимум:
В ADP можно в качестве источника формы указать имя ХП :)
Правда круто?
Ваша правда :-)
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696134
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CurrentProject.Connection - активное подключение к БД и не надо длинных коннекшенстрингов со всеми потрохами - за тебя подключается проект...
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696145
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор"Файл - Подключение" - что это?

На всякий случай поясняю - это команда такая в меню файл.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696151
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если надумаешь перебросить данные на другой сервак - используй эту команду, для переподключения "и живи счастливо..."
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696161
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще
Если у тебя adp, а форма имеет источником данных запрос без параметров - то достаточно просто указать имя этого представления в свойствах формы - и обойтись вовсе без модуля формы...
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696181
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВиталЕсли надо только SQL аутентификацию так в подключении и укажи пользователь будет вводить логин и пароль для входа, если не надо - будет подключаться автоматом без всяких DSN.
Код: plaintext
1.
2.
Dim cnn As ADODB.Connection, rst As New ADODB.Recordset
Set cnn = CurrentProject.Connection
rst.Open "exec MyProc",cnn
Сравни с первым твоим постом в топике...
Спасибо за информацию, все больше склоняюсь к ADP.
Вот только код придется переделывать.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696197
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал автор"Файл - Подключение" - что это?

На всякий случай поясняю - это команда такая в меню файл.
:-)))
Не зря пояснили! Иначе долго бы искал такую штуку, т.к. пришлось бы переподключаться с тестового сервера на рабочий, а хелп у меня урезанный какой-то.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696215
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bagin...
Спасибо за информацию, все больше склоняюсь к ADP.
Вот только код придется переделывать.
Код переделывать придется
Причем руками

А кому сейчас легко?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696242
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome Bagin...
Спасибо за информацию, все больше склоняюсь к ADP.
Вот только код придется переделывать.
Код переделывать придется
Причем руками

А кому сейчас легко?
Да вроде импортировалось и формы остались, только пишет ошибки в местах, где идет работа данными.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696250
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome Bagin...
Спасибо за информацию, все больше склоняюсь к ADP.
Вот только код придется переделывать.
Код переделывать придется
Причем руками

А кому сейчас легко?

Ручная сборка, говорят, везде ценится!! ;-)
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696255
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BaginДа вроде импортировалось и формы остались, только пишет ошибки в местах, где идет работа данными.

Надо переподключать, однако. Код править и, подозреваю, в сторону его сокращения...
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696264
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос:
Я так понимаю, при запуске ADP аксес открывает сеанс и держит его до полного закрытия всего приложения. А не расходует ли он в это время ресурсы сети и сервера?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696359
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BaginЕще вопрос:
Я так понимаю, при запуске ADP аксес открывает сеанс и держит его до полного закрытия всего приложения. А не расходует ли он в это время ресурсы сети и сервера?
Дык - это
не глупые же, вроде, люди MSSQL и Акс писали :)
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32696372
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome BaginЕще вопрос:
Я так понимаю, при запуске ADP аксес открывает сеанс и держит его до полного закрытия всего приложения. А не расходует ли он в это время ресурсы сети и сервера?
Дык - это
не глупые же, вроде, люди MSSQL и Акс писали :)
А кто его знает! Я как-то давно анализировал трафик когда подключался таблицам и делал запросы. Аксесе 97 тащит к себе все что нужно и не нужно и у себя похоже лопатит, а точно такие же запросы в VFP на много меньше ресурсы жрали.
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32698363
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВиталБлин!!! Не обратил внимания, что речь не об adp!!!
Тогда использовать ADODB.Recordset. Открыть его ("exec MyProc('" & Me.TextBox1 & "', '" Me.TextBox2 & "')") и присвоить форме.

Set Me.Recordset = rst

Запарился уже:

Set refToList = Me.ListSub.Form

Dim cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim qwqw As New ADODB.Recordset
cnn.Open "Provider=SQLOLEDB;Data Source=server01;" _
+ "database=test;uid=logintest;pwd=;"

Rs.Open "exec PredstList", cnn

' Вот здесь спотыкается:
Set refToList.Recordset = Rs

Пишет:
Run-time error: '7965':

Указанный объект не может являться значением свойства "Набор записей" (Recordset).


Делал вместо Set refToList.Recordset = Rs

Rs.MoveFirst
MsgBox Rs!F01

все нормально, записи получаю.

Подскажите как обойти ошибку, плз?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32698699
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем отвечающим: хорош уже ADP пропагандировать
Как на mdb это сделать?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32699130
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем кто помогал, большое спасибо!
Сделал так:

' Добавил строку:
RS.CursorLocation = adUseClient

Подробнее модно посмотреть:
http://am.rusimport.ru/MSAccess/f2.aspx?type=1&id=20841
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32843433
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
топик ап.
использую ADP,
в качестве источника записей - параметрическая ХП.
как перед открытием формы задать ей значения параметров?
...
Рейтинг: 0 / 0
Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
    #32843471
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь. вопрос снят.
использовать InputParameters
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как источником записей формы программно прописать хранимую процедуру на SQL-сервере, а не локально сохраненный запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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