|
|
|
| Можно ли подключить к форме проекта обновляемый рекодсет на хранимой процедуре? | |
|
| |
|
|
|
| Как я понимаю процедура захочет параметры
или просто представление
в аксе есть запрос к серверу
там нужно будет прописать строку соединения
и все - используйте язык SQL сервера | |
|
| |
|
|
|
| Мне хотелось бы разобраться в проекте access
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set cmd = New ADODB.Command
Set rst = New ADODB.Recordset
cnn.Open "provider=sqloledb;data source=(local);database=Организации;integrated security=sspi"
Set cmd.ActiveConnection = cnn
cmd.CommandText = "ХранимаяСПараметром"
cmd.CommandType = adCmdStoredProc
Set prm = cmd.CreateParameter("код_", adInteger, adParamInput, , 7777)
cmd.Parameters.Append prm
rst.Open cmd, , adOpenKeyset, adLockOptimistic, adCmdStoredProc
Me.Recordset = rst- присвоить так не дает | |
|
| |
|
|
|
| тогда сразу вопрос
а в чем хранится сама бд
(в файле mdb, на sQL сервере или еще где) | |
|
| |
|
|
|
| база на учебной sql (он же тоже на моем комп)
вот вид хранимой процедуры
CREATE PROCEDURE ХранимаяСПараметром
@код_ int
AS
begin
SELECT * FROM Организации
WHERE код=@код_ ;
return
end
GO | |
|
| |
|
|
|
| форме рекордсет не подсунешь
выход
вариант 1
сохранить рекордсет в табле и форму подключить к этой же таблице
Вариант 2
создать запрос к серверу
текст SQL примерно такой
execute ХранимаяСПараметром @код_=3
и подключить к этому запросу форму
вот только придется постоянно текст sql запроса переписывать при смене параметра
например так
CurrentDb.QueryDefs("Имя запроса к серверу").SQL = "execute ХранимаяСПараметром @код_=" & forms![имя формы]![имя поля]
вариант 3
написать запрос к серверу на языке сервера (т.е. я например использую язык MS SQL при написании таких запросов), вытащить всю таблу (представление) в Акс
и дополнительным запросом АКса дофильтровать до нужного вида - соответственно форма будет подключена к доп.запросу
минус - по сети будет гулять большой объем инфы
Запросы к серверу предназначены только для просмотра инфы | |
|
| |
|
|
|
| у меня база в adp
1 вариант -можно попробовать. Но только у меня в главной форме есть и подчиненная форма. Так надо сохранитять 2рекордсета в 2-х табл и подключать форму главную и подчиненную отдельно? А как с блокировкой будет вопрос?
2 вариант это вариат для только для mdb?
3 вариант мне важно быстродействие
есть вариант из хр.проц. заполнить рекордсет в несвязанную форму. Но здесь каждое действие нужно писать(сохранение, удаление, перемежение) Но не понятно, как осуществить блокировку | |
|
| |
|
|
|
|
А как с блокировкой будет вопрос?
|
пока юзер смотрит данные - ни как
а когда что-то изменит - придется запускать запрос и изменять данные в бд
время выполнения запроса (на изменение - дополнение) будет маленькое | |
|
| |
|