Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
8-38976
Миша
2003-10-12 04:00
2004.02.13
Диалоги выбора источника видео и кодеков (с их свойствами)


6-38991
able
2003-12-11 15:26
2004.02.13
Люди, помогите!


1-38844
dendy
2004-02-04 22:22
2004.02.13
копирование из буфера в Grid


1-38809
Max_Ivanych
2004-02-03 11:09
2004.02.13
Проблема с Excel. Открываю и закрываю так:


1-38889
d_oleg
2004-02-04 10:05
2004.02.13
ACDSee форматы граф. файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский