Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2016, 22:13   #1
Vvolhv
Пользователь
 
Регистрация: 05.07.2013
Сообщений: 27
По умолчанию Процедура внесения данных.

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

PS.
База в MS SQL 2012.
Delphi 10.1 Berlin

Последний раз редактировалось Vvolhv; 11.01.2016 в 22:15.
Vvolhv вне форума Ответить с цитированием
Старый 12.01.2016, 09:41   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

if then else для использования в ХП MS SQL никто не отменял
как-то так
Код:
create procedure X
as begin
if ()
insert into t1 () values ()

else 
if ()
insert into t2 () values ()

else
insert into t3 () values () 

end
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.01.2016, 07:36   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Я бы предложил несколько другой путь.
Для каждой таблицы сгенерировать набор однотипных хранимых процедур по стандартным операциям - селект, инсерт, апдейт, делит, в которых будут отличаться только имена таблиц и имена и типы полей данных и параметров процедур. Дать процедурам определённое именование. В программе динамически сформировать adostoredprocedure с соответствующими именами хранимых процедур в бд. Параметры в них передавать набором вариантных записей (array of const или array of Variant) и использовать селектящие хранимки в качестве наборов данных для показа, а остальные хранимки навешать на кнопки или дбнафигатор.
Просто не поддерживает сиквел переменное колво параметров, а уж тем более разнотипность параметров(в смысле, что в параметр при разных вызовах подаются данные разных типов, а не того, что заявлен при компиляции хранимки) и придётся городить такие огороды...

Если что, описаный мной способ успешно работает в нескольких разных (но как понятно, на едином ядре - реализации этой идеи) проектах. Только кода там не на пост и даже не на статью.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исключить дублрование внесения данных в базу davidoff_72 PHP 3 28.08.2015 18:53
Не срабатывает автообновление 2-го списка, после внесения данных в 1-й sasha_prof Microsoft Office Access 2 23.07.2013 09:35
Условие внесения изменений по дате AlexG1981 Microsoft Office Excel 2 15.04.2013 16:20
Время внесения изменения в ячейке and150382 Microsoft Office Excel 8 15.02.2013 16:51
Процедура контроля вводимых данных Joker_vad Помощь студентам 2 15.10.2010 15:30