Files
Database/_UP/recreate.src
2005-10-26 12:23:14 +00:00

210 lines
5.0 KiB
Plaintext

--
-- Recreate script van Facilitor
--
/*
* This script is precompiled so #if(n)def MS_SQL can be used to distinguish between
* SQL Server and Oracle specific statements.
*
* C-style comment is removed from the result
*/
#include "modules.h"
#include "comsql.h"
#ifndef MS_SQL
SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
SET PAGESIZE 0
SPOOL OFF
SET HEADING OFF
CLEAR SCREEN
PROMPT ***********************************************************************
PROMPT
PROMPT RECREATE SCRIPT van Facilitor
#ifdef MS_SQL
PROMPT versie voor MS SQL Server
#else
PROMPT versie voor Oracle
#endif
PROMPT $Revision: 2 $
PROMPT $Modtime: 26-10-05 13:04 $
PROMPT
PROMPT Re-creeert alle algemene views, triggers etc van een Faciltor schema
PROMPT
PROMPT
PROMPT Het wordt aangeraden om deze upgrade te draaien op een moment dat er
PROMPT geen gebruikers bezig zijn met de applicatie.
PROMPT
PROMPT De recreate wordt uitgevoerd. Even geduld a.u.b...
PROMPT
SET TERMOUT ON
SET HEADING OFF
SET FEEDBACK ON
SET ECHO ON
SET VERIFY OFF
SET LINESIZE 1000
SET SERVEROUTPUT ON;
SPOOL xrecreate.LST
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////GENERIC PART
/////////////////////////////////////////////////////////////////////////////////////////////////
#undef CREATE_VIEW
#ifdef MS_SQL
#define CREATE_VIEW(view_name, level) \
IF EXISTS (SELECT TABLE_NAME \
FROM INFORMATION_SCHEMA.VIEWS \
WHERE TABLE_NAME = #@view_name~ \
AND TABLE_SCHEMA = 'dbo')~ \
DROP VIEW dbo.view_name;~ \
GO~CREATE VIEW dbo.view_name
#else
#define CREATE_VIEW(view_name, level) \
CREATE OR REPLACE FORCE VIEW view_name
#endif
/* TABLES
For SQLS we need to include the tables to get the _TYPE definitions for the packages
The (1=0) construcion prevents CREATE TABLES from executing
What remains are the #define's
*/
#ifdef MS_SQL
//#undef _GO
//#define _GO /* niets */
//#undef CREATE_TABLE
//#define CREATE_TABLE(table_name, level) ;~CREATE TABLE table_name
{ -- dit stuk moet je verwijderen (alles tussen de haakjes)
#include "fac_tab.src"
#include "alg_tab.src"
#include "ins_tab.src"
#include "prs_tab.src"
#include "mld_tab.src"
#include "mrk_tab.src"
#ifndef MS_SQL
#include "cad_tab.src"
#endif
#include "res_tab.src"
#include "bez_tab.src"
#include "web_tab.src"
#include "cnt_tab.src"
#include "bes_tab.src"
#include "pra_tab.src"
#include "sch_tab.src"
}
#undef _GO
#define _GO ~GO
#endif
// Recreation all views
#include "fac_vie.src"
#include "alg_vie.src"
#include "ins_vie.src"
#include "prs_vie1.src"
#include "prs_pac.src"
#include "prs_vie2.src"
#include "mld_vie.src"
#ifndef MS_SQL
#include "cad_vie1.src"
#endif
#include "res_vie.src"
#include "bez_vie.src"
#include "web_vie.src"
#include "cnt_vie.src"
#include "bes_vie.src"
#include "pra_vie.src"
#include "mrk_vie.src"
#include "sch_vie.src"
COMMIT;
// Recreation all packages
#ifdef MS_SQL
[skip]
create procedure drop_procfuns as
begin
DECLARE query CURSOR FOR
select distinct u.name+'.'+o.name, o.xtype
from sysobjects o, sysusers u
where o.uid = u.uid and (o.type = 'FN' or o.type = 'P')
and upper(o.name) not in ('TRUNC_DATE', 'INITCAP','LPAD','RPAD','CHAR_TO_DATE','DATE_TO_CHAR','NUMBER_TO_CHAR','CHAR_TO_NUMBER')
declare @nm varchar(500);
declare @tp varchar(500);
declare @sql varchar(500);
OPEN query;
FETCH NEXT FROM query INTO @nm,@tp;
WHILE (@@FETCH_STATUS <> -1 ) BEGIN
if (@tp='FN') set @sql = 'function' else set @sql = 'procedure'
set @sql = 'drop ' + @sql + ' ' + @nm;
exec(@sql);
FETCH NEXT FROM query INTO @nm,@tp;
END;
CLOSE query;
DEALLOCATE query;
end
go
-- Noot: er komen errors op web.CHAR_TO_DATE en DATE_TO_CHAR. Negeren
exec drop_procfuns
go
--drop procedure drop_procfuns
go
[/skip]
#endif
// prs_pac is al een keer eerder geweest. Vanwege drop_procfuns nog een keer
#include "prs_pac.src"
#include "cnt_pac.src"
#include "mld_pac.src"
#include "fac_pac.src"
#include "ins_pac.src"
#ifndef MS_SQL
#include "cad_pac.src"
#endif
#include "res_pac.src"
#include "bez_pac.src"
#include "web_pac.src"
#include "bes_pac.src"
#include "pra_pac.src"
#include "mrk_pac.src"
#include "sch_pac.src"
COMMIT;
// Views that uses packages
#include "mld_vie2.src"
// Recreation all triggers
#include "fac_tri.src"
#include "alg_tri.src"
#include "ins_tri.src"
#include "prs_tri.src"
#include "cnt_tri.src"
#include "mld_tri.src"
#ifndef MS_SQL
#include "cad_tri.src"
#endif
#include "res_tri.src"
#include "bez_tri.src"
#include "web_tri.src"
#include "bes_tri.src"
#include "pra_tri.src"
#include "mrk_tri.src"
#include "sch_tri.src"
SPOOL OFF
SET ECHO OFF
PROMPT De recreate is gereed.. Controleer de LST-file.