Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: CL | DM;

Вниз

Как сделать, чтобы вся логика работы с таблицей выполнялась в хп   Найти похожие ветки 

 
Bless   (2004-01-22 11:00) [0]

Как сделать, чтобы все изменения в таблице или наборе данных обрабатывались хранимой процедурой.
То есть, например, если я поменял значение в каком-то поле, то чтобы на сервер ушла не строка типа
update tab1 set pole1=111 where pole_kluch=1
а чтобы вместо этого вызвалась хранимая процедура, которая сама сделает все, что надо и кое-что еще.

Или для этого надо отказаться от использования TADOxxx-компонент?


 
paul_k ©   (2004-01-22 11:11) [1]

Рисуем форму для редактирования грида. С полями типа TEdit
после заполнения передаем запрос вида
exec <имя процедуры> <список параметров>
а в процедуре уже обрабатывем эти данные.

А так же роемся в архивах форума и находим разжеванное объяснение что такое "TADOxxx-компоненты" для чего они и с чем их кюшают


 
DenK_vrtz ©   (2004-01-22 11:28) [2]

как вариант "повесить" эту храниму процедуру на триггер


 
Nikolay M. ©   (2004-01-22 11:40) [3]

В связке DataSetProvider + ClientDataSet это решается просто изумительно в событии провайдера BeforeUpdateRecord.
Параметры для ХП приходят в параметре обработчика DeltaDS, после вызова своей ХП с этими параметрами ставим Applied := True и вуаля!
ClientDataSet считает, что данные ушли на сервер, хотя была вызвана своя ХП. Лепота :)


 
KSergey ©   (2004-01-22 11:53) [4]

Автору: буквально только что было обсуждение этой проблемы. Некоторые варианты предлагались.
Ищите.


 
Bless   (2004-01-22 12:53) [5]

Nikolay M>
Спасибо. Честно говоря, что-то о ClientDataSet я и надеялся услышать. :)

Похоже пришло время разобраться с тем, что это такое.
А может у кого есть ПРОСТЫЕ примеры (собственные или сторонние) на эту тему. Желательно, чтобы использование ClientDataSet в них было действительно оправдано необходимостью, а не притянуто за уши.

KSergey>

Спасибо, поищу.


 
Nikolay M. ©   (2004-01-22 14:54) [6]


> Похоже пришло время разобраться с тем, что это такое.

На уровне "ткните в эту кнопку, впишите в окошко число 12345, потом спляшите с бубном" - много всего на citforum.ru.
Хороший пример многих возможностей CDS-а alchtest.dpr идет с Дельфи.


 
Vuk ©   (2004-01-22 15:08) [7]

У нас делается иначе. Сразу скажу, что для доступа к MS SQL используются компоненты SDAC.

В OnChange поля пишется что-то типа того:

begin
try
Proc.ParamByName(...).As... := ...;
...
Proc.ExecProc;
DataSet.RefreshRecord; //или пара Close/Open

except
Sender.DataSet.Cancel;
raise;
end;
Abort;
end;
DataSet - набор данных, которому принадлежит поле
Proc - процедура, изменяющая данные.

В реальности оно выглядит несколько иначе, но смысл именно такой. И никаких ClientDataSet.



Страницы: 1 вся ветка

Текущий архив: 2004.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
7-39110
Devourer
2003-11-27 16:01
2004.02.13
Эмуляция нажатия клавиатуры в DOS-программее


1-38933
NTDim
2004-02-04 08:10
2004.02.13
Как из функции вернуть значение произвольного типа ?


1-38897
Тимохов
2004-02-04 14:59
2004.02.13
Открытые массивы в параметрах методов и записи.


14-39076
DelphiN!
2004-01-23 20:20
2004.02.13
Хорошая программа для отправки файлов на ftp


3-38742
Polevi
2004-01-21 13:56
2004.02.13
Способ хранения дат