Главная страница
    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
4-39128
Monk
2003-12-10 15:04
2004.02.13
API в Дельфи 7


1-38884
MadGhost
2004-02-04 18:34
2004.02.13
как продолжить поиск в тексте функцией AnsiPos


14-39066
Rauf
2004-01-24 17:17
2004.02.13
Проверяет ли Outlook Express или Microsoft Outlook на вирусы???


14-39023
Valerian
2004-01-26 08:47
2004.02.13
Не могу установить некоторые программы и игры


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский