Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка данных с помощью Stored Procedure [D6, MSSQL]


Страницы:   1 2 3 4

Neo Trinitron ©   (2007-03-29 15:36:00) 

Такая тема. Набор данных открывается с помощью хранимой процедуры и отображается в гриде. Мне нужно чтобы вместо стандартного редактирования и добавления записей выполнялись мои процедуры добавления и редактирования. Как этого добиться?


Neo Trinitron   (2007-03-29 18:51:00) [41]

Jan, извини, но ты говоришь глупости :) Триггер вообще гадость редкостная (по этому вопросу спорить не буду). Да и писАть код на три экрана в триггере - лучше не придумаешь.

Я нашёл правильный способ для моей ситуации. Если кому интересно, надо свойство датасета LockType = ltBatchOptimistic. И всё будет в шоколаде и ничего выдумывать не надо.


Jan   (2007-03-29 18:33:00) [42]


> И что, если я пытаюсь отредактировать данные на клиенте,
>  а затем отослать изменения в базу на сервере посредством
> хранимой процедуры, это называется "на клиенте"? Ну, ну.
> .. Чтоже тогда будет называться "на сервере"?

trigger


ANB   (2007-03-29 18:32:00) [43]


> Neo Trinitron ©   (29.03.07 18:24) [24]
> Ништяк, всё, иду к начальству и требую перемен сервера и
> компонентов :) Шикарное решение!!!

Есть решение №2 - сесть и самому написать компонент.


Neo Trinitron   (2007-03-29 18:24:00) [44]

Ништяк, всё, иду к начальству и требую перемен сервера и компонентов :) Шикарное решение!!!


ANB   (2007-03-29 18:22:00) [45]


> Neo Trinitron ©   (29.03.07 18:01) [22]

Бросай ты это дурацкое ADO + MS SQL.

В связке Oracle + Odac дейтасеты ведут себя именно так, как тебе надо. И даже рефреш одной записи есть, на случай, если на сервере она поменялась сильно.

:)


Neo Trinitron   (2007-03-29 18:01:00) [46]

И что, если я пытаюсь отредактировать данные на клиенте, а затем отослать изменения в базу на сервере посредством хранимой процедуры, это называется "на клиенте"? Ну, ну... Чтоже тогда будет называться "на сервере"?


Jan   (2007-03-29 17:57:00) [47]


> А где ты видишь реализацию логики на клиенте???

а это где? У Васи Пупкина?

> А что тут непонятного? Хочу добавить или отредактировать
> на клиенте в гриде запись. Добавляю как обычно, но вместо
> "execsql...." который обычно выполняется при post, я хочу
> чтобы выполнялась моя процедура.


Neo Trinitron   (2007-03-29 17:34:00) [48]

>реализация логики на клиенте - не есть гуд...

А где ты видишь реализацию логики на клиенте???

Мемори датасет я не юзаю, даже не знаю что это такое. И почему это целосность данных и секьюрити от вьюх и триггеров будет выше? :))) Не понимаю этого механизма совершенно. Именно потому что вся логика реализована на сервере, на клиенте и не делается вставка данных напрямую. Да и прав на вставку данных вообще у клиента нет...только на выполнения ряда хранимых процедур.


stud   (2007-03-29 17:30:00) [49]

Jan   (29.03.07 17:27) [18]
тут наверное больше before, хотя все завист от того нужно ли тебе получать от сервера данные при посте...

в локальном датасете данные будут вводиться нормально, тут главное отслеживать запись на сервер. и на сервер можно скидывать когда например весь "грид" отредактирован


Jan   (2007-03-29 17:27:00) [50]


> и на его события after вызывай свои ХП

тут наверное больше before, хотя все завист от того нужно ли тебе получать от сервера данные при посте...


Jan   (2007-03-29 17:25:00) [51]


> А что тут непонятного? Хочу добавить или отредактировать
> на клиенте в гриде запись. Добавляю как обычно, но вместо
> "execsql...." который обычно выполняется при post, я хочу
> чтобы выполнялась моя процедура. А на клиенте изменения
> должны отобразиться нормально, будто был выполнен post.

реализация логики на клиенте - не есть гуд...

Тебе ж у же сказали юзать какой-то мемори датасет и на его события after вызывай свои ХП. или делай бизнесс логику на сервере юзай вьюхи и триггера, тогда секьюрити повыше будет да и целостность базы тоже.


Neo Trinitron   (2007-03-29 17:19:00) [52]

>Как тебя понимать, Neo Trinitron?

А что тут непонятного? Хочу добавить или отредактировать на клиенте в гриде запись. Добавляю как обычно, но вместо "execsql...." который обычно выполняется при post, я хочу чтобы выполнялась моя процедура. А на клиенте изменения должны отобразиться нормально, будто был выполнен post.


Johnmen   (2007-03-29 17:13:00) [53]

Прошу прощения....

Как тебя понимать, Neo Trinitron?


Johnmen   (2007-03-29 17:12:00) [54]


>  Мне нужно чтобы вместо стандартного редактирования и добавления
> записей выполнялись мои процедуры добавления и редактирования.

и

>  грида ведёт себя так будто бы я ничего и не добавлял и
> не изменял. В этом собственно и загвоздка, уважаемый.


Как тебя понимать, Саид?


Neo Trinitron   (2007-03-29 17:06:00) [55]

Фильтр на клиенте? Не интересно, совершенно. Параметры. Насколько я знаю параметры во вьюху нельзя передать. Покажи хоть один способ если он есть, боюсь я долго буду искать сие чудо.


Jan   (2007-03-29 17:00:00) [56]


> И ещё интересно как можно в "стандартный способ реализации
> логики на сервере" вьюху передать параметры, фильтрации
> например. Очень интересно.

пиши фильтр и он будет наложен на запрос во вьюхе. параметры? поищи на скл.ру - там часто это обсуждается... способов достаточно.


Neo Trinitron   (2007-03-29 16:41:00) [57]

И ещё интересно как можно в "стандартный способ реализации логики на сервере" вьюху передать параметры, фильтрации например. Очень интересно.


Neo Trinitron   (2007-03-29 16:34:00) [58]

sniknik,

а кто сказал что я не знаю что надо в onBeforePost это делать? Сделал я там всё что нужно, а как мне запретить после запуска моих процедур выполнять Post? abort помогает, но грида ведёт себя так будто бы я ничего и не добавлял и не изменял. В этом собственно и загвоздка, уважаемый.

Jan,

[quote]
стандартный способом реализации бизнесс логики на сервере.
[/quote]

Ссылку на такой стандарт в студию!


Jan   (2007-03-29 16:23:00) [59]


> это если общее поведение таблицы в sql сервере, а не одного
> рекордсета на клиенте переделывать..

почему таблицы? это может быть и udf и большой запросище.


Jan   (2007-03-29 16:18:00) [60]


> хотя при чем тут вьюха так и не понял

стандартный способом реализации бизнесс логики на сервере.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо