Форум программистов, компьютерный форум, киберфорум
Наши страницы
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Vasa
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 7
1

Генерация хранимых процедур

18.01.2011, 12:22. Просмотров 732. Ответов 2
Метки нет (Все метки)

Я пишу программу для генерации хранимых процедур (ХП).
Хочу узнать на сколько данная программа интересна другим программистом.
Основная цель - снизить трудоемкость в написании ХП.
Это достигается за счет автоматизации формирования
SQL запросов: Select, Insert, Update, Cursor, Declare ...
Моя программа построена таким образом, что разработчику не придется
вручную набирать текст ХП, а придется в основном только щелкать
мышкой, выбирая тот или иной вариант.
Еще стоит добавть, что данная программа будет иметь возможность формировать отчеты.
Итак, хотелось бы узнать ваше мнение. Хотели бы вы приобрести данную программу, хотя бы по минимальной цене 10$?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 12:22
Ответы с готовыми решениями:

нужно оформить метод гаусса в виде процедур и функций
помогите пожалуйста!!! нужно оформить меод гаусса в виде процедур и функций

Генерация лабиринта
Всех приветствую! Требуется помощь в решении следующей задачи: Мне нужно...

Генерация 2D карты
Привет всем. Пусть у нас есть квадрат или прямоугольник nxm пикселей. Нам...

Параметры хранимых процедур
При написании хранимой процедуры столкнулся с такой проблемой: нужно параметром...

Декорирование хранимых процедур
есть ли возможность навесить метаинформацию на хранимую процедуру, выполняя...

2
Barbarosa
3 / 3 / 0
Регистрация: 11.06.2008
Сообщений: 27
18.01.2011, 17:19 2
Смотря какие у нее будут возможности. ИМХО процесс написания хранимых процедур очень сложно автоматизировать из-за великого разнообразия возможностей, ими предоставляемыми. И что Вы вкладываете в понятие 'сложные'?
ЗЫ: Было бы интересно посмотреть на SP сгенерированные Вашей программой.
0
Vasa
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 7
18.01.2011, 19:01 3
Привожу код сгенеренной процы,
тока его еще нужно править чтоб он компелился так как прога не доделана!

/* Копирование секции */
Create Procedure SectionProgCopy(
@SCPR_Id bigint) as

Declare
@NewSCPR_Id bigint, @NewSCPR_Dog bigint, @NewSCPR_Name bigint, @NewSCPR_Vins bigint,
@NewSCPR_PrmRet bigint, @NewSCPR_SelfCost bigint, @NewSCPR_PrSelfCost bigint, @NewSCPR_Over bigint, @NewSCPR_Limit bigint,
@NewSCPR_Accident bigint, @NewSCPR_Val bigint, @NewSCPR_TypeVal bigint, @NewSCPR_TypeCurs bigint, @NewSCPR_Comis bigint,
@NewSCPR_Filter bigint, @NewSCPR_Line bigint, @NewSCPR_Descr bigint, @NewSCPR_OrigTarif bigint, @NewSCPR_MemberTarif bigint,
@NewSCPR_Type bigint, @NewSCPR_Cashloss bigint, @NewSCPR_OrigFran bigint, @NewSCPR_PremCalc bigint, @NewSCPR_IsProrata bigint,
@NewSCPR_Id bigint, @NewSCPR_Dog bigint, @NewSCPR_Name bigint, @NewSCPR_Vins bigint, @NewSCPR_PrmRet bigint,
@NewSCPR_SelfCost bigint, @NewSCPR_PrSelfCost bigint, @NewSCPR_Over bigint, @NewSCPR_Limit bigint, @NewSCPR_Accident bigint,
@NewSCPR_Val bigint, @NewSCPR_TypeVal bigint, @NewSCPR_TypeCurs bigint, @NewSCPR_Comis bigint, @NewSCPR_Filter bigint,
@NewSCPR_Line bigint, @NewSCPR_Descr bigint, @NewSCPR_OrigTarif bigint, @NewSCPR_MemberTarif bigint, @NewSCPR_Type bigint,
@NewSCPR_Cashloss bigint, @NewSCPR_OrigFran bigint, @NewSCPR_PremCalc bigint, @NewSCPR_IsProrata bigint
Declare
@NewLNSC_Id bigint, @NewLNSC_Section bigint, @NewLNSC_SelfCost bigint,
@NewLNSC_Limit bigint, @NewLNSC_Accident bigint, @NewLNSC_Comis bigint, @NewLNSC_Tarif bigint,
@NewLNSC_Id bigint, @NewLNSC_Section bigint, @NewLNSC_SelfCost bigint, @NewLNSC_Limit bigint,
@NewLNSC_Accident bigint, @NewLNSC_Comis bigint, @NewLNSC_Tarif bigint
Declare
@NewENOD_Id bigint, @NewENOD_Section bigint, @NewENOD_Line bigint,
@NewENOD_Member bigint, @NewENOD_PrReCost bigint, @NewENOD_Comis bigint, @NewENOD_Tarif bigint,
@NewENOD_Id bigint, @NewENOD_Section bigint, @NewENOD_Line bigint, @NewENOD_Member bigint,
@NewENOD_PrReCost bigint, @NewENOD_Comis bigint, @NewENOD_Tarif bigint, @NewENOD_Id bigint,
@NewENOD_Section bigint, @NewENOD_Line bigint, @NewENOD_Member bigint, @NewENOD_PrReCost bigint,
@NewENOD_Comis bigint, @NewENOD_Tarif bigint, @NewENOD_Id bigint, @NewENOD_Section bigint,
@NewENOD_Line bigint, @NewENOD_Member bigint, @NewENOD_PrReCost bigint, @NewENOD_Comis bigint,
@NewENOD_Tarif bigint
Declare
@ENOD_Id bigint, @ENOD_Section bigint, @ENOD_Line bigint, @ENOD_Member bigint,
@ENOD_PrReCost bigint, @ENOD_Comis bigint, @ENOD_Tarif bigint
Declare
@LNSC_Id bigint, @LNSC_Section bigint, @LNSC_SelfCost bigint, @LNSC_Limit bigint,
@LNSC_Accident bigint, @LNSC_Comis bigint, @LNSC_Tarif bigint
Declare
@NewENOD_Id bigint, @NewENOD_Section bigint, @NewENOD_Line bigint,
@NewENOD_Member bigint, @NewENOD_PrReCost bigint, @NewENOD_Comis bigint, @NewENOD_Tarif bigint,
@NewENOD_Id bigint, @NewENOD_Section bigint, @NewENOD_Line bigint, @NewENOD_Member bigint,
@NewENOD_PrReCost bigint, @NewENOD_Comis bigint, @NewENOD_Tarif bigint, @NewENOD_Id bigint,
@NewENOD_Section bigint, @NewENOD_Line bigint, @NewENOD_Member bigint, @NewENOD_PrReCost bigint,
@NewENOD_Comis bigint, @NewENOD_Tarif bigint
Declare
@ENOD_Id bigint, @ENOD_Section bigint, @ENOD_Line bigint, @ENOD_Member bigint,
@ENOD_PrReCost bigint, @ENOD_Comis bigint, @ENOD_Tarif bigint
Declare
@TARS_Id bigint,
@TARS_Section bigint, @TARS_Name bigint,
@TARS_Tarif bigint, @TARS_BrPrem bigint,
@TARS_Filter bigint, @TARS_Default bigint,
@TARS_Fran bigint
Declare
@TARS_Id bigint,
@TARS_Section bigint, @TARS_Name bigint,
@TARS_Tarif bigint, @TARS_BrPrem bigint wSCPR_SelfCost, @NewSCPR_PrSelfCost, @NewSCPR_Over, @NewSCPR_Limit, @NewSCPR_Accident,
@NewSCPR_Val, @NewSCPR_TypeVal, @NewSCPR_TypeCurs, @NewSCPR_Comis, @NewSCPR_Filter,
@NewSCPR_Line, @NewSCPR_Descr, @NewSCPR_OrigTarif, @NewSCPR_MemberTarif, @NewSCPR_Type,
@NewSCPR_Cashloss, @NewSCPR_OrigFran, @NewSCPR_PremCalc, @NewSCPR_IsProrata)

/* Курсор по линиям */
Declare LineSectionCursor Cursor For
Select
LNSC_Id, LNSC_Section, LNSC_SelfCost, LNSC_Limit, LNSC_Accident,
LNSC_Comis, LNSC_Tarif
from LineSection
Open LineSectionCursor
Fetch Next From LineSectionCursor Into
@LNSC_Id, @LNSC_Section, @LNSC_SelfCost, @LNSC_Limit, @LNSC_Accident, @LNSC_Comis, @LNSC_Tarif
While @@Fetch_Status = 0
BEGIN

/* Добавление линии */
Set @NewLNSC_Id = @LNSC_Id Set @NewLNSC_Section = @LNSC_Section Set @NewLNSC_SelfCost = @LNSC_SelfCost Set @NewLNSC_Limit = @LNSC_Limit
Set @NewLNSC_Accident = @LNSC_Accident Set @NewLNSC_Comis = @LNSC_Comis Set @NewLNSC_Tarif = @LNSC_Tarif
Insert Into LineSection(
LNSC_Id, LNSC_Section, LNSC_SelfCost, LNSC_Limit,
LNSC_Accident, LNSC_Comis, LNSC_Tarif)
Values(
@NewLNSC_Id, @NewLNSC_Section, @NewLNSC_SelfCost, @NewLNSC_Limit,
@NewLNSC_Accident, @NewLNSC_Comis, @NewLNSC_Tarif)

/* Курсор по вхождению по линиям */
Declare EntryOblDogCursor Cursor For
Select
ENOD_Id, ENOD_Section, ENOD_Line, ENOD_Member, ENOD_PrReCost,
ENOD_Comis, ENOD_Tarif
from EntryOblDog
Open EntryOblDogCursor
Fetch Next From EntryOblDogCursor Into
@ENOD_Id, @ENOD_Section, @ENOD_Line, @ENOD_Member, @ENOD_PrReCost, @ENOD_Comis, @ENOD_Tarif
While @@Fetch_Status = 0
BEGIN

/* Добавление вхождения */
Set @NewENOD_Id = Set @NewENOD_Section = Set @NewENOD_Line = Set @NewENOD_Member =
Set @NewENOD_PrReCost = Set @NewENOD_Comis = Set @NewENOD_Tarif =
Insert Into EntryOblDog(
ENOD_Id, ENOD_Section, ENOD_Line, ENOD_Member,
ENOD_PrReCost, ENOD_Comis, ENOD_Tarif)
Values(
@NewENOD_Id, @NewENOD_Section, @NewENOD_Line, @NewENOD_Member,
@NewENOD_PrReCost, @NewENOD_Comis, @NewENOD_Tarif)

Fetch Next From EntryOblDogCursor Into
@ENOD_Id, @ENOD_Section, @ENOD_Line, @ENOD_Member, @ENOD_PrReCost, @ENOD_Comis, @ENOD_Tarif
END
DealLocate EntryOblDogCursor

Fetch Next From LineSectionCursor Into
@LNSC_Id, @LNSC_Section, @LNSC_SelfCost, @LNSC_Limit, @LNSC_Accident, @LNSC_Comis, @LNSC_Tarif
END
DealLocate LineSectionCursor

/* Курсор по вхождению */
Declare EntryOblDogCursor Cursor For
Select
ENOD_Id, ENOD_Section, ENOD_Line, ENOD_Member, ENOD_PrReCost,
ENOD_Comis, ENOD_Tarif
from EntryOblDog
Open EntryOblDogCursor
Fetch Next From EntryOblDogCursor Into
@ENOD_Id, @ENOD_Section, @ENOD_Line, @ENOD_Member, @ENOD_PrReCost, @ENOD_Comis, @ENOD_Tarif
While @@Fetch_Status = 0
BEGIN

/* Добавление вхождения */
Set @NewENOD_Id = Set @NewENOD_Section = Set @NewENOD_Line = Set @NewENOD_Member =
Set @NewENOD_PrReCost = Set @NewENOD_Comis = Set @NewENOD_Tarif =
Insert Into EntryOblDog(
ENOD_Id, ENOD_Section, ENOD_Line, ENOD_Member,
ENOD_PrReCost, ENOD_Comis, ENOD_Tarif)
Values(
@NewENOD_Id, @NewENOD_Section, @NewENOD_Line, @NewENOD_Member,
@NewENOD_PrReCost, @NewENOD_Comis, @NewENOD_Tarif)

Fetch Next From EntryOb
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 19:01

Создание хранимых процедур
Здравствуйте! Возник следующий вопрос. Возможно ли написание собственных...

Отладка хранимых процедур
Привет всем! Сабж. Заранее благодарен.

Использование хранимых процедур
Суть: Есть две хранимые процедуры, А и Б А - главная, Б - дочерняя А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru