Merge branch 'master' of git.2li.ch:Nebucatnetzer/ibz
This commit is contained in:
commit
c2b8ddb51d
|
@ -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;
|
|
@ -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
|
|
@ -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;
|
|
@ -1 +0,0 @@
|
|||
1503757949
|
|
@ -1 +0,0 @@
|
|||
1000
|
|
@ -1 +0,0 @@
|
|||
59196ade-8d6d-414e-9803-84ceeb7bffe8
|
|
@ -1 +0,0 @@
|
|||
84a7ea016bff42d6a81f0e24e28c5803
|
|
@ -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-----
|
|
@ -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}}}
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<Context path=""
|
||||
antiResourceLocking="false" />
|
|
@ -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>
|
Reference in New Issue