Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
Есть такая связка D6+ADO+MS SQL2000 Есть желание доступ к серверу организовать через сохраненные процедуры. То есть доступа к таблицам у пользователей не будет вообще. такой подход мне кажется наиболее предпочтительным с точки зрения безопасности. Однако без использования таблиц и вьюшек сильно затруднется работа с data-aware комgонентами. Нет например в TADOStoredroc таких понятий как MasterSource, MasterFields. Ну так бог с ними, не очень надо. На то там есть параметры. Но. Как мне заставить ГРИД, выполнять мою команду обновления, добавления и удаления? То есть на каждое действие хочется запускать свою сохр. процедуру, которая будет апдейтить и инсертить данные. Вот этого я пока не понял. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2003, 18:40 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
А почему работа именно через таблицы или вьюхи? Отображать данные в Grid-е можно ведь и через Query. А обновлять данные можно также через Query, которые будут вызывать твои хранимые процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 09:46 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
Если честно, то алгоритм у меня не складывается в голове, можно с картинками ? :-) Как все это соединить? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 10:18 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
> Есть желание доступ к серверу организовать через сохраненные процедуры. То есть доступа к таблицам у пользователей не будет вообще. такой подход мне кажется наиболее предпочтительным с точки зрения безопасности. А, разве, представления не для этого придумали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 10:46 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
Мда, как выяснилось именно для этого. Да, с безопасностью MSSQL Server, у меня большие пробелы... Пошел заново читать... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 11:57 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
можно предложить следующую методику 1- создаете процедуру выборки данных в грид 2 - цепляете ее к TAdoDataSet 3 - ставите LockType - ltBatchOptimistic 4 - выводите в грид 5 - на событие датасета - AfterPost запускаете свою процедуру вставки или редактирования куда передаете параметрами текущие значения из записи датасета. Резюме: грид отображает пользоательские изменения но они не идут дальше датасета так как вы не будете вызывать UpdateBatch Все изменения будут проходить через другую процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:10 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
А если через вьюхи - то еще проще. В 2000-м SQL Server'e есть триггеры на view, триггеры instead. Вот и вешайте себе на здоровье на эти вью триггеры, которые будут вместо инсерта, апдейта и делейта вызывать хранимые процедуры: create trigger ... on... instead of insert as exec ... --Ваша процедура Insert по умолчанию в этом случае не произведется, т. к. триггер - instead. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:42 |
|
||
|
Как правильно обновлять данные в dbGrid?
|
|||
|---|---|---|---|
|
#18+
Lexur: спасибо - это то, о чем я спрашивал. Pima: про instead of я знаю, мне интресено как народ до 2000 го работал. Еще вопрос, может я не понимаю ничего? есть таблица A есть view VA: select * from a созданы пользователем rim, он же dbo есть пользователь test у него есть права select, insert, update, delete на view VA и никак не обозначены права на таблицу A. делаю от имени пользователя test в QA: select * from VA update VA set p=1 все работает нормально Делаю select * from A естественно отлуп по причине отсутствия доступа! А теперь то же в Delphi Есть Grid источник данных у него в конечном счете TADOtable = VA Если обновляю от имени rim (dbo) - Все в порядке, если от имени test, то ВНИМАНИЕ он говорит, что нет прав на select в таблице dbo.A!!! Ничего я не понимаю, запутался окончательно. Где тут что не так? Попробовал в Access XP - та же ерунда. Именно из-за этого я решил в свое время, что не имея доступа к таблице не получишь и выборку из view на основе этой таблицы. И отсюда родился этот пост. Разъясните мне это пожалуйста. Когда теория расходится с практикой то ну ее нафиг эту... кого? :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 13:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32153179&tid=2118394]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 399ms |

| 0 / 0 |
