Merge branch 'master' of git.2li.ch:Nebucatnetzer/ibz

This commit is contained in:
Andreas Zweili 2017-11-02 20:58:34 +01:00
commit c2b8ddb51d
13 changed files with 1451 additions and 34 deletions

View File

@ -0,0 +1,92 @@
-- Beispiel 1
-- Variablen Deklaration
declare @Z1 int, @Firstname varchar(50);
-- Set
set @Z1 = 100;
-- Print
print 'Zahl Z1 = ' + cast(@Z1 as varchar)
-- Beispiel 2
declare @Z1 int;
set @Z1 = 1000;
if @Z1 > 100
begin
print 'Z1 ist eine grosse Zahl';
end
else
begin
print 'Z2 ist eine kleine Zahl';
end
-- Beispiel 3
declare @num int
set @num =(SELECT COUNT(*) FROM PA_MITARBEITER);
if @num > 0
print 'Total Abteilungen = ' + convert(varchar, @num);
else
print 'keine Abteilungen vorhanden';
-- Beispiel 4
declare @Nr varchar(20), @bez varchar(40);
select @Nr=ABT_ABTNR, @bez = ABT_BEZ
from PA_ABTEILUNG
where ABT_ABTNR = 'DV1';
print 'Nr = ' + @Nr + ', Bezeichnung = ' + @bez;
-- Beispiel 5
go
create procedure CalcSumProc (@Z1 int, @Z2 int, @Result int output)
as
set @Result = @Z1 + @Z2;
go
declare @Sum int, @RetCode int;
set @Sum = 0;
exec CalcSumProc 1, 2, @Sum output;
print 'Sum = ' + cast(@Sum as varchar);
-- Beispiel 6
go
create function CalcSumFunc (@Z1 int, @Z2 int)
returns int
as
begin
declare @result int;
set @result = @Z1 + @Z2;
return @Result
end
go
-- Beispiel 7
declare @abtnr varchar(20), @abtbez varchar(50);
DECLARE Abteilung_Cursor CURSOR FOR
SELECT ABT_ABTNR, ABT_BEZ
FROM PA_ABTEILUNG
ORDER BY ABT_BEZ;
OPEN Abteilung_Cursor;
FETCH NEXT FROM Abteilung_Cursor
into @abtnr, @abtbez;
WHILE @@FETCH_STATUS = 0
BEGIN
print 'Nr = ' + @abtnr + ', Name = ' + @abtbez
FETCH NEXT FROM Abteilung_Cursor
into @abtnr, @abtbez;
END;
CLOSE Abteilung_Cursor;
DEALLOCATE Abteilung_Cursor;

View File

@ -0,0 +1,931 @@
/*
*******************************************************************************
* *
* SQL Server 2008 / 2008 R2 - Der schnelle Einstieg *
* *
* Kapitel 5 - Transact-SQL - Die Sprache zur Serverprogrammierung *
* *
* © 2009/2010, Klemens Konopasek *
*******************************************************************************
*/
-- Variablen und Datentypen
-- 5.1.1
DECLARE @nachname varchar(50), @vorname varchar(50)
DECLARE @gebdatum date
SET @nachname = (SELECT PersNachname
FROM tblPersonal
WHERE PersNr = 452)
SET @vorname = (SELECT PersVorname
FROM tblPersonal
WHERE PersNr = 452)
SET @gebdatum = (SELECT PersGebDatum
FROM tblPersonal
WHERE PersNr = 452)
SELECT @nachname NN, @vorname VN, @gebdatum Geburtsdatum
GO
-- *************************************************************************
DECLARE @nachname varchar(50), @vorname varchar(50)
DECLARE @gebdatum date
SELECT @nachname = PersNachname,
@vorname = PersVorname,
@gebdatum = PersGebDatum
FROM tblPersonal
WHERE PersNr = 452
SELECT @nachname NN, @vorname VN, @gebdatum Geburtsdatum
-- *************************************************************************
DECLARE @ust tinyint
DECLARE @netto smallmoney, @brutto smallmoney
SET @ust = 19
SET @netto = 450
SET @brutto = @netto * (@ust + 100) / 100
SELECT @netto Netto, @brutto Brutto
-- *************************************************************************
DECLARE @nr int
SET @nr = @nr + 3
SET @nr = @nr * 5
SELECT @nr Nr
GO
-- *************************************************************************
DECLARE @plz varchar(5)
SET @plz = '8010'
SELECT PersNachname, PersVorname
FROM tblPersonal
WHERE PersPlz = @plz
GO
-- *************************************************************************
DECLARE @nr int = 3
SET @nr = @nr + 3
SET @nr = @nr * 5
SELECT @nr Nr
GO
-- *************************************************************************
-- Benutzerdefinierte Tabellentypen
-- 5.1.2
CREATE TYPE KundenTab AS TABLE
( kdnr int PRIMARY KEY,
nachname varchar(50),
vorname varchar(50)
)
GO
-- *************************************************************************
DECLARE @kunden KundenTab
INSERT INTO @kunden (kdnr, nachname, vorname)
SELECT KdNr, KdNachname, KdVorname
FROM dbo.tblKunden
WHERE KdLand = 'D'
GO
-- *************************************************************************
CREATE PROCEDURE dbo.spTabellenTest
@kdnamen KundenTab READONLY
AS
BEGIN
SELECT UPPER(nachname) + ' ' + vorname AS Kunde
FROM @kdnamen
ORDER BY 1
END
GO
DECLARE @kunden KundenTab
INSERT INTO @kunden (kdnr, nachname, vorname)
SELECT KdNr, KdNachname, KdVorname
FROM dbo.tblKunden
WHERE KdLand = 'D'
EXEC dbo.spTabellenTest @kunden
GO
-- *************************************************************************
-- Funktionen
-- 5.1.3
SELECT @@language
SELECT @@servername
SELECT @@VERSION
SELECT SERVERPROPERTY('ProductVersion')
-- Datumsfunktionen
SELECT DATEADD(week, 3, '01.01.2010')
SELECT DATEDIFF(month, '08.01.2010', '15.11.2010')
SET LANGUAGE german
SELECT DATENAME(weekday, '23.05.2010')
SELECT DATEPART(weekday, '23.05.2010')
SET LANGUAGE english
SELECT DATENAME(weekday, '05.23.2010')
SELECT DATEPART(weekday, '05.23.2010')
SET LANGUAGE german
SELECT DAY('20.04.2009') Tag, MONTH('20.04.2009') Monat, YEAR('20.04.2009') Jahr
SELECT GETDATE()
SELECT ISDATE('24.12.2008'), ISDATE('240.12.2008')
SELECT CURRENT_TIMESTAMP
SELECT Sysdatetime(), GETDATE()
SELECT Sysutcdatetime()
SELECT Sysdatetimeoffset()
SELECT Sysdatetimeoffset() AS Graz,
Switchoffset(Sysdatetimeoffset(), '-08:00') AS Vancouver
SELECT Todatetimeoffset(Sysdatetime(), '-08:00')
-- Mathematische Funktionen
SELECT ROUND(5.129, 2), ROUND(18452, -2), ROUND(1.99,1,1)
SELECT CEILING(5.129)
-- Metadatenfunktionen
SELECT DB_NAME(), DB_NAME(1), DB_ID(), DB_ID('master')
SELECT COL_LENGTH('tblArtikel','Artbezeichnung') -- nur innerhalb der DB möglich!
SELECT COL_LENGTH('wawi.dbo.tblArtikel','Artbezeichnung') -- von jeder DB aus möglich!
SELECT OBJECT_ID('tblArtikel')
SELECT OBJECT_NAME('1511676433')
SELECT COL_NAME(OBJECT_ID('tblArtikel'), 2)
-- Sicherheitsfunktionen
SELECT IS_MEMBER('db_owner')
-- Zeichenfolgefunktionen
SELECT ASCII('m'), CHAR(109)
SELECT CHARINDEX(' ','SQL Server')
DECLARE @name varchar(30), @vorname varchar(15)
DECLARE @position int
SET @name = 'Petra Konopasek'
SET @position = CHARINDEX(' ', @name)
SET @vorname = LEFT(@name, @position - 1)
SELECT @vorname Vorname
SELECT MAX(LEN(PersNachname)) [Längster Name]
FROM tblPersonal;
SELECT PersVorname + ' ' + UPPER(PersNachname) Name
FROM tblPersonal
ORDER BY PersNachname;
SELECT REPLICATE('.', 15 - LEN(PersNachname)) + PersNachname Name
FROM tblPersonal;
SELECT SOUNDEX('Maier') Maier,
SOUNDEX('Meyer') Meyer,
SOUNDEX('Mayer') Mayer,
SOUNDEX('Peyer') Peyer,
SOUNDEX('Ober') Ober,
SOUNDEX('Obermann') Obermann,
SOUNDEX('Hausmahn') Hausmahn
SELECT ArtBezeichnung + ' kostet € '
+ ArtVKPreis AS Preise
FROM tblArtikel;
SELECT ArtBezeichnung + ' kostet € '
+ STR(ArtVKPreis, 5, 2) AS Preise
FROM tblArtikel;
DECLARE @name varchar(30)
DECLARE @nachname varchar(15)
DECLARE @position int
SET @name = 'Alina Konopasek'
SET @position = CHARINDEX(' ', @name)
SET @nachname = SUBSTRING(@name, @position + 1, 15)
SELECT @nachname Nachname
SELECT SUBSTRING(@@VERSION, 35, 4) AS Version
-- Systemfunktionen
SELECT SYSDATETIME() As Datum,
CONVERT(varchar,SYSDATETIME(), 4) As [Jahr 2-stellig],
CONVERT(varchar,SYSDATETIME(), 104) As [Jahr 4-stellig]
SELECT PersNachname FROM tblPersonal
WHERE PersEintritt = '01.04.2001';
SELECT PersNachname FROM tblPersonal
WHERE PersEintritt = '01.04.2001 8:00';
SELECT GETDATE() As Datum,
CONVERT(datetime,CONVERT(varchar,GETDATE(),4),4)
As NurDatum
SELECT PersNachname FROM tblPersonal
WHERE CAST(PersEintritt AS DATE)= '01.04.2001';
SELECT HOST_NAME() As Arbeitsplatz, HOST_ID() As ID
INSERT INTO tblArtikel (ArtBezeichnung, ArtGruppe,
ArtVKpreis, ArtEKPreis, ArtLief)
VALUES('Wassereimer 15L', 'GA', 3.99, 2.12, 1003);
SELECT @@IDENTITY "Neue Artikelnunmmer"
SELECT KdTitel + ' ' + KdAkadGrad + ' '
+ KdNachname + ' ' + KdVorname As Kunden
FROM tblKunden
ORDER BY KdNachname;
SELECT ISNULL(KdTitel + ' ','')
+ ISNULL(KdAkadGrad + ' ', '')
+ KdNachname + ' ' + KdVorname AS Kunden
FROM tblKunden
ORDER BY KdNachname;
BEGIN TRAN
UPDATE tblArtikel
SET ArtVKPreis = ArtVKPreis * 0.95
WHERE ArtVKPreis > 200;
SELECT @@ROWCOUNT "Anzahl um 5% verbilligt"
ROLLBACK TRAN
-- Rangfolgefunktionen
SELECT Artbezeichnung AS Bezeichnung,
ArtVKPreis AS Preis,
RANK() OVER( ORDER BY ArtVKPreis DESC) AS Rang
FROM tblArtikel;
SELECT Artbezeichnung Bezeichnung,
ArtVKPreis Preis,
ArtGruppe Gruppe,
RANK() OVER( PARTITION BY ArtGruppe
ORDER BY ArtVKPreis DESC) AS Rang
FROM dbo.tblArtikel;
SELECT Artbezeichnung Bezeichnung,
ArtVKPreis Preis,
DENSE_RANK() OVER(ORDER BY ArtVKPreis DESC) AS Rang
FROM dbo.tblArtikel;
SELECT PersNachname AS Nachname,
PersVorname As Vorname,
NTILE(5) OVER( ORDER BY PersGebDatum) AS Gruppe
FROM tblPersonal;
SELECT Artbezeichnung AS Bezeichnung,
ArtVKPreis AS Preis,
ROW_NUMBER() OVER( ORDER BY ArtVKPreis DESC) AS "lfd. Nr."
FROM tblArtikel;
-- Hierarchie-ID-Funktionen
DECLARE @root hierarchyid
SET @root = hierarchyid::GetRoot()
SELECT @root.ToString() AS Wurzeleintrag, @root AS WurzelID
DECLARE @nachfolger hierarchyid
SET @nachfolger = @root.GetDescendant(NULL, NULL)
SELECT @nachfolger.ToString() AS Nachfolger
SELECT @nachfolger.IsDescendantOf(@root) AS IstNachfolger1,
@root.IsDescendantOf(@nachfolger) AS IstNachfolger2
SELECT @root.GetLevel() AS LevelRoot,
@nachfolger.GetLevel() AS LevelNachfolger
DECLARE @vorgaenger hierarchyid
SET @vorgaenger = @nachfolger.GetAncestor(1)
SELECT @vorgaenger.ToString() As Vorgänger
-- *************************************************************************
-- Kontrollstrukturen
-- 5.1.4
GO
DECLARE @monat tinyint
SET @monat = MONTH(GETDATE())
IF @monat <= 6
PRINT 'Wir sind in der ersten Jahreshälfte.'
ELSE
PRINT 'Wir befinden uns im zweiten Halbjahr.'
-- *************************************************************************
GO
DECLARE @kunde int
DECLARE @interesse char(3)
SET @kunde = 136
SET @interesse = 'HUG'
INSERT INTO tblKundeninteressen
VALUES (@kunde, @interesse)
SELECT * FROM tblKunden;
SELECT * FROM tblKundenInteressen;
GO
-- *************************************************************************
DECLARE @kunde int
DECLARE @interesse char(3)
SET @kunde = 136
SET @interesse = 'HUG'
IF (SELECT COUNT(*) FROM tblKundenInteressen
WHERE KdNr = @kunde AND IntCode = @interesse) = 1
PRINT 'Zuordnung bereits vorhanden.'
ELSE
INSERT INTO tblKundenInteressen
VALUES (@kunde, @interesse);
GO
-- *************************************************************************
BEGIN TRAN
DECLARE @kunde int
DECLARE @interesse char(3)
SET @kunde = 136
SET @interesse = 'SPO'
IF (SELECT COUNT(*) FROM tblKundenInteressen
WHERE KdNr = @kunde AND IntCode = @interesse) = 1
PRINT 'Zuordnung bereits vorhanden.'
ELSE
BEGIN
INSERT INTO tblKundenInteressen
VALUES (@kunde, @interesse);
PRINT 'Interesse wurde zugewiesen.'
END
--ROLLBACK TRAN
GO
-- *************************************************************************
IF MONTH(SYSDATETIME()) IN(1,2,3,4,5)
PRINT 'Vorsaison'
ELSE
IF MONTH(SYSDATETIME()) IN(6,7,8,9)
PRINT 'Hauptsaison'
ELSE
PRINT 'Nachsaison'
-- *************************************************************************
IF MONTH(SYSDATETIME()) IN(1,2,3,4,5)
PRINT 'Vorsaison'
ELSE
IF MONTH(SYSDATETIME()) IN(6,7,8,9)
BEGIN
PRINT 'Hauptsaison'
PRINT 'Hier ist alles sehr teuer.'
END
ELSE
PRINT 'Nachsaison'
-- *************************************************************************
DECLARE @kunde int
DECLARE @interesse char(3)
SET @kunde = 132
SET @interesse = 'SPO'
IF (SELECT COUNT(*) FROM tblKundenInteressen
WHERE KdNr = @kunde AND IntCode = @interesse) = 1
OR (SELECT KdAktiv FROM tblKunden
WHERE KdNr = @kunde) = 0
PRINT 'Zuordnung bereits vorhanden oder Kunde nicht mehr aktiv.'
ELSE
BEGIN
INSERT INTO tblKundenInteressen
VALUES (@kunde, @interesse);
PRINT 'Interesse wurde zugewiesen.'
END
-- *************************************************************************
DECLARE @wotag varchar(10)
SET @wotag = CASE DATEPART(weekday, SYSDATETIME())
WHEN 1 THEN 'Montag'
WHEN 2 THEN 'Dienstag'
WHEN 3 THEN 'Mittwoch'
WHEN 4 THEN 'Donnerstag'
WHEN 5 THEN 'Freistag'
WHEN 6 THEN 'Samstag'
ELSE 'Sonntag'
END
SELECT @wotag [Heute ist]
-- *************************************************************************
DECLARE @typ varchar(10)
SET @typ = CASE WHEN DATEPART(weekday, GETDATE()) < 6
THEN 'Arbeitstag'
ELSE 'Wochenende' END
SELECT @typ "Heute ist"
-- *************************************************************************
SELECT CASE PersGeschlecht WHEN 1 THEN 'Frau' ELSE 'Herr' END Anrede,
PersVorname Vorname,
PersNachname Nachname
FROM tblPersonal
-- *************************************************************************
-- Cursor für Datenzugriffe einsetzen
-- 5.1.5
DECLARE @kdnr int
DECLARE @nachname varchar(50)
DECLARE kunden_cursor CURSOR LOCAL STATIC
FOR
SELECT KdNr, KdNachname
FROM tblKunden
WHERE KdAktiv = 1
OPEN kunden_cursor
FETCH NEXT FROM kunden_cursor INTO @kdnr, @nachname
WHILE @@fetch_status = 0
BEGIN
--...
FETCH NEXT FROM kunden_cursor INTO @kdnr, @nachname
END
CLOSE kunden_cursor
DEALLOCATE kunden_cursor
-- *************************************************************************
-- Transaktionssteuerung
-- 5.2.1
DELETE FROM tblKunden WHERE KdAktiv = 0;
-- 5.2.2
SELECT * FROM tblTestpersonal;
UPDATE tblTestpersonal
SET Nachname = 'Untermann'
WHERE Nr = 101;
SELECT *
FROM tblTestpersonal
WHERE Nr = 101;
ROLLBACK TRAN
BEGIN TRANSACTION
DELETE FROM tblTestpersonal
WHERE Abtlg IN('MA', 'EK');
INSERT INTO tblTestpersonal
VALUES(700, 'Deutschmann', 'MA', SYSDATETIME());
SELECT * FROM tblTestpersonal ORDER BY Nr;
ROLLBACK TRANSACTION
SELECT * FROM tblTestpersonal ORDER BY Nr;
BEGIN TRANSACTION
DELETE FROM tblTestpersonal
WHERE Abtlg = 'GL';
INSERT INTO tblTestpersonal
VALUES(700, 'Deutschmann', 'MA', SYSDATETIME());
COMMIT TRANSACTION
-- *************************************************************************
-- SET-Optionen verwenden
-- 5.3
SET ANSI_NULLS ON
DECLARE @agrad varchar(10)
SET @agrad = Null
SELECT PersNachname, PersAkadGrad
FROM tblPersonal
WHERE PersAkadGRad = @agrad;
GO
SET ANSI_NULLS OFF
DECLARE @agrad varchar(10)
SET @agrad = Null
SELECT PersNachname, PersAkadGrad
FROM tblPersonal
WHERE PersAkadGRad != @agrad;
GO
-- *************************************************************************
SELECT PersAkadGrad + ' ' + PersNachname AS Mitarbeiter
FROM tblPersonal;
SET CONCAT_NULL_YIELDS_NULL OFF
SELECT LTRIM(PersAkadGrad + ' ' + PersNachname) AS Mitarbeiter
FROM tblPersonal;
SET CONCAT_NULL_YIELDS_NULL ON
SELECT ISNULL(PersAkadGrad + ' ', '') + PersNachname AS Mitarbeiter
FROM tblPersonal;
GO
-- *************************************************************************
SET DATEFIRST 1
SELECT DATEPART(weekday, '01.01.2010') As Tag
SET DATEFIRST 7
SELECT DATEPART(weekday, '01.01.2010') As Tag
-- *************************************************************************
SET DATEFORMAT dmy
DECLARE @datum datetime
SET @datum = '15.08.2010'
-- *************************************************************************
SET IDENTITY_INSERT tblArtikel ON
INSERT INTO tblArtikel (ArtNr, ArtBezeichnung, ArtGruppe,
ArtVKpreis, ArtEKPreis, ArtLief)
VALUES (2222, 'Gartenschlauch 15m', 'GA', 23.99,
17.11, 1003);
-- *************************************************************************
SELECT langid, name, alias, dateformat, datefirst
FROM master.sys.syslanguages;
SET LANGUAGE english
SET LANGUAGE français
SET LANGUAGE german
SET LANGUAGE latviešu
-- *************************************************************************
SET QUOTED_IDENTIFIER OFF
CREATE TABLE quot_id_test
( ID int,
"Kunden Name" varchar(60) );
-- *************************************************************************
SET ROWCOUNT 5
SELECT PersNr, PersNachname, Persvorname
FROM tblPersonal
ORDER BY 1;
SET ROWCOUNT 0
-- *************************************************************************
-- Fehlerbehandlung
-- 5.4
SET NOCOUNT ON
DECLARE @gruppe char(2), @name varchar(30)
SET @gruppe = 'GE'
SET @name = 'Geschirr'
INSERT INTO dbo.tblArtikelGruppen (ArtGr, ArtGrText)
VALUES (@gruppe, @name);
IF @@ROWCOUNT = 0
SELECT 'Fehler!' As Ergebnis
ELSE
SELECT 'Erledigt ;-)' As Ergebnis
GO
-- Fehler "vermeiden"
SET NOCOUNT ON
DECLARE @gruppe char(2), @name varchar(30)
SET @gruppe = 'GE'
SET @name = 'Geschirr'
IF exists ( SELECT *
FROM dbo.tblArtikelGruppen
WHERE ArtGr = @gruppe)
SELECT 'Fehler!' As Ergebnis
ELSE
BEGIN
INSERT INTO dbo.tblArtikelGruppen
VALUES (@gruppe, @name);
SELECT 'Erledigt ;-)' As Ergebnis
END
GO
-- Fehler "behandeln"
SET NOCOUNT ON
DECLARE @gruppe char(2), @name varchar(30)
SET @gruppe = 'GE'
SET @name = 'Geschirr'
BEGIN TRY
INSERT INTO dbo.tblArtikelGruppen
VALUES (@gruppe, @name);
SELECT 'Erledigt ;-)' As Ergebnis
END TRY
BEGIN CATCH
SELECT 'Fehler!' As Ergebnis
END CATCH
GO
-- inkl. Transaktion
SET NOCOUNT ON
DECLARE @gruppe char(2), @name varchar(30)
SET @gruppe = 'GE'
SET @name = 'Geschirr'
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO dbo.tblArtikelGruppen
VALUES (@gruppe, @name);
COMMIT TRANSACTION
SELECT 'Erledigt ;-)' As Ergebnis
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
SELECT 'Fehler!' As Ergebnis
END CATCH
GO
-- Ausgabe Fehlermeldung
SET NOCOUNT ON
DECLARE @gruppe char(2), @name varchar(30)
SET @gruppe = 'GE'
SET @name = 'Geschirr'
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO dbo.tblArtikelGruppen
VALUES (@gruppe, @name);
COMMIT TRANSACTION
SELECT 'Erledigt ;-)' As Ergebnis
END TRY
BEGIN CATCH
ROLLBACK
SELECT ERROR_MESSAGE() As Ergebnis
END CATCH
GO

View File

@ -0,0 +1,27 @@
use Berater;
go
create FUNCTION fBestverdiener()
RETURNS varchar(100)
AS BEGIN
DECLARE @nr int,
@nachname varchar(50),
@vorname varchar(50),
@aufgabe varchar(30)
--set nocount on
SELECT @nr = b.BERATERID,
@nachname = b.BERATERNAME,
@aufgabe = a.AUFGABE
FROM BERATER b INNER JOIN AUFGABE a
ON b.AUFGABEID = a.AUFGABEID
WHERE b.STUNDENLOHN = (SELECT MAX(STUNDENLOHN)
FROM BERATER)
Return convert(varchar,@nr) + ',' + @nachname + ',' + @aufgabe
END
go
select dbo.fBestverdiener(), BERATERNAME FROM BERATER;

View File

@ -1 +0,0 @@
59196ade-8d6d-414e-9803-84ceeb7bffe8

View File

@ -1 +0,0 @@
84a7ea016bff42d6a81f0e24e28c5803

View File

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAmaCHhayjEjIDSfuFK/YVpOcFdbGKdCaQAUS8EQcfbT7o4Ns6
Yq3dYitvqeC73Hda1neGEIa6EjRAUXeL4b0RAw2R0wSexwmM4levWa6A3/4LtD1i
jxVyDgI834Ime2TEk7pHf3s0v5fThB1/eS5qGeCqC3nNfZxpXKLeAl+oCUesGMgd
lr5hZ/Dr78hFKKeOKCXtgp+NIxokRgWgicrnwTlaSRuWVf8zSZo6h6hG4bqMAOjR
6/duTLe2YusAvWedPJyJ7dQIge9gO9a1skhfVlk8p0Mnt0qeK2zNHKk4M8dNTUVG
dAVpPaTU2oSGkKjJkf1MbUm4ArKgRAboA8K+FQIDAQABAoIBAEU/c/cQU00vWAYw
Jt4jBayYKgDcL2GdxEmeFvvB7yuKMOSyTQYQAvtuQt4bG/MLpdmIdNjcMeFkxh0y
us3dMF7k7fdlXMCxEF0yUyskmpjc5Z+wD84ZR5kC7zd8biYuzOEeFX5kJem64S/r
L/uKrW7OszeLBtJ4/5EvJM2DGrZbcml7P4WAWli+aVFU2fCheRR5JbntdmlKVfZw
uFzsbggOiSkXOiBi7bM/aapS6RsMWO4cNjPeu6YDzxiH7Xybfx66BxLmH2bkQTD8
TWiCpO+1iX9GLeT1jln37VBsnkpIbFj0ngsau3Da+Z8TXoENI2Y1W76FyFf0Rkip
ClzKkZ0CgYEAyiNz6OWUnE44dvTIM90Vive+ZYId37ABEmdnuyo2uS/FaPwfrAEz
DgAgF3IVJj3XoQtPmPgxQcsJqv1siURObEx5/sj3zvalhsUVjZ//ROyQdtYrbAnt
AsRWpuWuao0Jc54ag5Du5r9+iM/7s8zfmRMnvZ6aS+Ye3ArBLFcURFsCgYEAwo/z
AkIwPqOh0i9HwiUoz4gwMF8cXH6kpBU9p2pEBcPJz7KQCAqXNqSxkKZZ7b7ePz+z
GKCtWaQP8UZAzvoVBnSrlpD5fuOAeo1458Nj+yKFMa7h6FlNY/HlFJOaBlg7F+tr
5yx22BS71QFvccfjUmtmDcgPVoBILiXZaKx90k8CgYAvuu1cuhE8U1AL7sLzVCoJ
FXTU3UOWlSW7pcUdsdsYIUqY/qev4tyeWrM5Ngv+aq3m7hfOhBSFd58BzDN7ujBW
bDyGSAgTy7PMPe9X8MbDDKUUGoBIU5OuipP3dtaXfFQWA+g41tlCjUcgoRPLIf5O
U/KXWMMQVvdEeBmjEbDMbwKBgQCdsYqm4/qyanH4J7Yjl3aybpGQQyZ7mXHcRBMK
pEip23ywyOuQePUCpw38TbhJyA/ed8SzS1f1ddIuHmDc4Tk1WE7S5IIz5DT4H75F
KsrYe6w1DqevaOIfBapEuTV3uv96baexYQqaLIPpKxamw/ptjPrUZLh5xdO7A5Zp
DpWUZQKBgQCRlx5nZFhzw+N4e2CpyhZO/7n/FYP68uDnIap8sLtaUhFQsnO9zVVR
27P3obOh1LLuzeS6Uy5CjE2lP/S7ESZjXxnH1o7ng1VI40Rj6c8nVG7EFoPg9UIy
y/nJebdpad9gjAwJn4P9fx+vf1rvj9Q0iH0VKELGCNBqMVGB8liHEg==
-----END RSA PRIVATE KEY-----

View File

@ -1 +0,0 @@
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/home/andreas/git_repos/ibz_repos/ibz/vagrant/webtech","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}},"virtualbox":{"/var/www/html":{"guestpath":"/var/www/html","hostpath":"/home/andreas/git_repos/ibz_repos/ibz/web/1_sem","disabled":false,"__vagrantfile":true}}}

View File

@ -12,7 +12,7 @@ Vagrant.configure("2") do |config|
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = "debian-VAGRANTSLASH-stretch64"
config.vm.box = "debian/stretch64"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
@ -66,7 +66,7 @@ Vagrant.configure("2") do |config|
# documentation for more information about their specific syntax and use.
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y apache2
apt-get install -y apache2 php7.0
SHELL
end

368
web/1_sem/index.html Normal file
View File

@ -0,0 +1,368 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Apache2 Debian Default Page: It works</title>
<style type="text/css" media="screen">
* {
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
body, html {
padding: 3px 3px 3px 3px;
background-color: #D8DBE2;
font-family: Verdana, sans-serif;
font-size: 11pt;
text-align: center;
}
div.main_page {
position: relative;
display: table;
width: 800px;
margin-bottom: 3px;
margin-left: auto;
margin-right: auto;
padding: 0px 0px 0px 0px;
border-width: 2px;
border-color: #212738;
border-style: solid;
background-color: #FFFFFF;
text-align: center;
}
div.page_header {
height: 99px;
width: 100%;
background-color: #F5F6F7;
}
div.page_header span {
margin: 15px 0px 0px 50px;
font-size: 180%;
font-weight: bold;
}
div.page_header img {
margin: 3px 0px 0px 40px;
border: 0px 0px 0px;
}
div.table_of_contents {
clear: left;
min-width: 200px;
margin: 3px 3px 3px 3px;
background-color: #FFFFFF;
text-align: left;
}
div.table_of_contents_item {
clear: left;
width: 100%;
margin: 4px 0px 0px 0px;
background-color: #FFFFFF;
color: #000000;
text-align: left;
}
div.table_of_contents_item a {
margin: 6px 0px 0px 6px;
}
div.content_section {
margin: 3px 3px 3px 3px;
background-color: #FFFFFF;
text-align: left;
}
div.content_section_text {
padding: 4px 8px 4px 8px;
color: #000000;
font-size: 100%;
}
div.content_section_text pre {
margin: 8px 0px 8px 0px;
padding: 8px 8px 8px 8px;
border-width: 1px;
border-style: dotted;
border-color: #000000;
background-color: #F5F6F7;
font-style: italic;
}
div.content_section_text p {
margin-bottom: 6px;
}
div.content_section_text ul, div.content_section_text li {
padding: 4px 8px 4px 16px;
}
div.section_header {
padding: 3px 6px 3px 6px;
background-color: #8E9CB2;
color: #FFFFFF;
font-weight: bold;
font-size: 112%;
text-align: center;
}
div.section_header_red {
background-color: #CD214F;
}
div.section_header_grey {
background-color: #9F9386;
}
.floating_element {
position: relative;
float: left;
}
div.table_of_contents_item a,
div.content_section_text a {
text-decoration: none;
font-weight: bold;
}
div.table_of_contents_item a:link,
div.table_of_contents_item a:visited,
div.table_of_contents_item a:active {
color: #000000;
}
div.table_of_contents_item a:hover {
background-color: #000000;
color: #FFFFFF;
}
div.content_section_text a:link,
div.content_section_text a:visited,
div.content_section_text a:active {
background-color: #DCDFE6;
color: #000000;
}
div.content_section_text a:hover {
background-color: #000000;
color: #DCDFE6;
}
div.validator {
}
</style>
</head>
<body>
<div class="main_page">
<div class="page_header floating_element">
<img src="/icons/openlogo-75.png" alt="Debian Logo" class="floating_element"/>
<span class="floating_element">
Apache2 Debian Default Page
</span>
</div>
<!-- <div class="table_of_contents floating_element">
<div class="section_header section_header_grey">
TABLE OF CONTENTS
</div>
<div class="table_of_contents_item floating_element">
<a href="#about">About</a>
</div>
<div class="table_of_contents_item floating_element">
<a href="#changes">Changes</a>
</div>
<div class="table_of_contents_item floating_element">
<a href="#scope">Scope</a>
</div>
<div class="table_of_contents_item floating_element">
<a href="#files">Config files</a>
</div>
</div>
-->
<div class="content_section floating_element">
<div class="section_header section_header_red">
<div id="about"></div>
It works!
</div>
<div class="content_section_text">
<p>
This is the default welcome page used to test the correct
operation of the Apache2 server after installation on Debian systems.
If you can read this page, it means that the Apache HTTP server installed at
this site is working properly. You should <b>replace this file</b> (located at
<tt>/var/www/html/index.html</tt>) before continuing to operate your HTTP server.
</p>
<p>
If you are a normal user of this web site and don't know what this page is
about, this probably means that the site is currently unavailable due to
maintenance.
If the problem persists, please contact the site's administrator.
</p>
</div>
<div class="section_header">
<div id="changes"></div>
Configuration Overview
</div>
<div class="content_section_text">
<p>
Debian's Apache2 default configuration is different from the
upstream default configuration, and split into several files optimized for
interaction with Debian tools. The configuration system is
<b>fully documented in
/usr/share/doc/apache2/README.Debian.gz</b>. Refer to this for the full
documentation. Documentation for the web server itself can be
found by accessing the <a href="/manual">manual</a> if the <tt>apache2-doc</tt>
package was installed on this server.
</p>
<p>
The configuration layout for an Apache2 web server installation on Debian systems is as follows:
</p>
<pre>
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
|-- sites-enabled
| `-- *.conf
</pre>
<ul>
<li>
<tt>apache2.conf</tt> is the main configuration
file. It puts the pieces together by including all remaining configuration
files when starting up the web server.
</li>
<li>
<tt>ports.conf</tt> is always included from the
main configuration file. It is used to determine the listening ports for
incoming connections, and this file can be customized anytime.
</li>
<li>
Configuration files in the <tt>mods-enabled/</tt>,
<tt>conf-enabled/</tt> and <tt>sites-enabled/</tt> directories contain
particular configuration snippets which manage modules, global configuration
fragments, or virtual host configurations, respectively.
</li>
<li>
They are activated by symlinking available
configuration files from their respective
*-available/ counterparts. These should be managed
by using our helpers
<tt>
a2enmod,
a2dismod,
</tt>
<tt>
a2ensite,
a2dissite,
</tt>
and
<tt>
a2enconf,
a2disconf
</tt>. See their respective man pages for detailed information.
</li>
<li>
The binary is called apache2. Due to the use of
environment variables, in the default configuration, apache2 needs to be
started/stopped with <tt>/etc/init.d/apache2</tt> or <tt>apache2ctl</tt>.
<b>Calling <tt>/usr/bin/apache2</tt> directly will not work</b> with the
default configuration.
</li>
</ul>
</div>
<div class="section_header">
<div id="docroot"></div>
Document Roots
</div>
<div class="content_section_text">
<p>
By default, Debian does not allow access through the web browser to
<em>any</em> file apart of those located in <tt>/var/www</tt>,
<a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html" rel="nofollow">public_html</a>
directories (when enabled) and <tt>/usr/share</tt> (for web
applications). If your site is using a web document root
located elsewhere (such as in <tt>/srv</tt>) you may need to whitelist your
document root directory in <tt>/etc/apache2/apache2.conf</tt>.
</p>
<p>
The default Debian document root is <tt>/var/www/html</tt>. You
can make your own virtual hosts under /var/www. This is different
to previous releases which provides better security out of the box.
</p>
</div>
<div class="section_header">
<div id="bugs"></div>
Reporting Problems
</div>
<div class="content_section_text">
<p>
Please use the <tt>reportbug</tt> tool to report bugs in the
Apache2 package with Debian. However, check <a
href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=apache2;repeatmerged=0"
rel="nofollow">existing bug reports</a> before reporting a new bug.
</p>
<p>
Please report bugs specific to modules (such as PHP and others)
to respective packages, not to the web server itself.
</p>
</div>
</div>
</div>
<div class="validator">
</div>
</body>
</html>

View File

@ -0,0 +1,2 @@
<Context path=""
antiResourceLocking="false" />

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Apache Tomcat</title>
</head>
<body>
<h1>It works !</h1>
<p>If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!</p>
<p>This is the default Tomcat home page. It can be found on the local filesystem at: <code>/var/lib/tomcat8/webapps/ROOT/index.html</code></p>
<p>Tomcat8 veterans might be pleased to learn that this system instance of Tomcat is installed with <code>CATALINA_HOME</code> in <code>/usr/share/tomcat8</code> and <code>CATALINA_BASE</code> in <code>/var/lib/tomcat8</code>, following the rules from <code>/usr/share/doc/tomcat8-common/RUNNING.txt.gz</code>.</p>
<p>You might consider installing the following packages, if you haven't already done so:</p>
<p><b>tomcat8-docs</b>: This package installs a web application that allows to browse the Tomcat 8 documentation locally. Once installed, you can access it by clicking <a href="docs/">here</a>.</p>
<p><b>tomcat8-examples</b>: This package installs a web application that allows to access the Tomcat 8 Servlet and JSP examples. Once installed, you can access it by clicking <a href="examples/">here</a>.</p>
<p><b>tomcat8-admin</b>: This package installs two web applications that can help managing this Tomcat instance. Once installed, you can access the <a href="manager/html">manager webapp</a> and the <a href="host-manager/html">host-manager webapp</a>.</p>
<p>NOTE: For security reasons, using the manager webapp is restricted to users with role "manager-gui". The host-manager webapp is restricted to users with role "admin-gui". Users are defined in <code>/etc/tomcat8/tomcat-users.xml</code>.</p>
</body>
</html>