|
|
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
При связи adp-проекта (Access2000) с SQL-сервером (7.0) возникает странная ситуация. На исходную таблицу (на SQL-сервере) пользователю не дается доступ (неявное отклонение - revoke) , а на предоставление на эту таблицу доступ открыт (select, insert, update, delete), при этом при попытке редактировать представлие (update) через adp-форму, подключаемую к соответствующей БД, выдается сообщение, что у пользователя нет прав на таблицу. (владелец таблицы и представления один и тот же, dbo) А при попытке редактировать представление непостредственно через SQL-запрос все удается! (и через SQL-Analyzator и через метод ADODB.Command - Execute() и через ADODB.Recordset - Open). Но хочется то по простому, через форму-ADP! Как это сделать, кто знает? (А при открытии прав (select, update) на таблицу пользователю, представление он также может редактировать обычным способом через adp-форму) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 10:39:48 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
существование свойства формы - однозначная таблица наталкивает на мысль что строка обновления таблицы генерится формой ... отсюда вывод - источник данных для формы не является источником данных при update, данные обновляются напрямую в таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 10:52:30 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
свойство однозначная таблица стоит. То есть вывод - что Аксес вообще не умеет работать с представлениями через формы, а лезет сразу в таблицу? Очень странно. Вроде представления именно для этого и существуют- давать доступ к определенным строкам (столбцам) таблиц(ы) при закрытом доступе на всю таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 13:00:31 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
Вопрос снимается. Да, АлексейК прав, спасибо. Интересная дисскуссия почти на эту тему оказывается уже была: /topic/83 Представления на SQL-сервере действительно работают как им и положено, а вот Аксес не умеет с ними работать через форму adp. Вместо редактирования представления, он пытается сразу редактировать таблицу. Дальнейшая работа с представлением через adp предполагается в следующем порядке: на форме завести поля-дубликаты, в которые копируются значения из встроенных полей формы, которые делаются невидимыми, т.е. основа отображения данных - все то же представление. В полях-дубликатах уже возможно редактирование, а сохранение данных (уже все-равно в таблицу или представление) делается через хранимую процедуру. Если у кого-нибудь будут более удобные варианты, пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 16:24:09 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
а кто тебе не дает реализовать программное обновление запроса? в форме непривязанные к источнику данных поля формы заполняются программно по определенному событию, например при загрузке после редектирования данных в простейшем случае по нажатию кнопки обновить запускаешь запрос на обновление можно через ado.command CMND.execute "update my_query set myvalue= ..... where id= ... " минус этого способа в том что при необходимости отслеживания обновления именно тех данных , которые были получены пользователем (не были изменены другим) т. е. придется формировать строку where вида: id = id and MyValue = MyOldvalue and MyValue1 = MyOldvalue1 .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2002, 11:12:49 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
Надо чтобы в предаставлении выбиралось поле с первичным ключем, тогда получается редактировать именно представление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2002, 15:49:45 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
Даже если в представлении выбирать первичный ключ, все равно Access не дает редактировать даные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 15:51:49 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
2 АлексейК: т.е. вы имеете ввиду проверку, не изменилось ли значение таблицы другими пользователями в текущее время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 15:59:37 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
а может просто указать в представлении with metadata ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 16:00:03 |
|
||
|
Редактирование таблицы через представление на SQL-сервере через ADP-проект
|
|||
|---|---|---|---|
|
#18+
>with metadata Совершенно верно,но в случае если источник из нескольких таблиц такой вариант тоже глючит аксес все равно патается отредактировать таблицу я выкручивался так: делал вьюху with metadata все условия основанные на данных не этой таблицы запихивал в скалярную функцию значение которой проверял в WHERE (чтобы добится ограничения видимости строк вьюхи) Все связи которые необходимо отображать на форме (типа ед.изм при выборе товара) отображал через соотв заполненные и залоченные комбобоксы. PS кстати если эти комбики заполнять из заранее заполненного рекордсета а не загружать каждый раз трафик резко падает что может быть полезно при работе через VPN некий аналог dataset.NET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 20:41:17 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1576&tid=1672435]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 195ms |
| total: | 329ms |

| 0 / 0 |
