Zeit- und Leistungserfassung, Rechnungsstellung und Kundenverwaltung

Updater

Aus TimeAndWork

Wechseln zu: Navigation, Suche

TimeAndWork verwendet den SQL Server Database - XML Updater für die automatische Abgleichung der verwendeten Datenbankstrukturen bei Kunden innerhalb der Update-Prozedur.

Diese Update-Applikation wird zusammen mit den in einer XML-Datei hinterlegten Datenstruktur ausgeliefert. Das Programm vergleicht die Definition aus dem XML-Datei mit den vorgefundenen Strukturen der Datenbank und gleicht diese automatisch an.


Inhaltsverzeichnis

[bearbeiten] Struktur

Die Definitionsdatei besteht aus den Teilen:

  • Tables
  • Functions
  • Views
  • Procedures
  • Updates

[bearbeiten] Tables

Die Tabellendefinitionen enthalten den Tabellennamen, Spalten (Columns), Standardwerte (Defaults), Primärschlüssel (Primarykeys), Fremdschlüssel (Foreignkeys) und Indizes (Indices).

Bei der Update-Prozedur werden zuerst alle Standardwerte, Schlüssel und Indizes entfernt, danach werden die Strukturanpassungen vorgenommen. Vor und nach den Struktur Anpassung werden die Updates ausgeführt.

Mit Column werden die einzelnen Spalten der Tabellen definiert. Hier kann der Name der Spalte (Name), der Datentype (Datatype) definiert werden und es wird festgehalten, ob die Spalte einen Null-Werte enthalten kann oder nicht (Null="yes|no") und ob es sich um eine Identitätsspalte handelt (Identity="yes|no", IdentityStart, IdentityStep).

Beispiel

<Column Name="id" Datatype="int" Null="no" Identity="yes" IdentityStart="1" IdentityStep="1" />

Im Bereich Defaults können Standardwerte für Spalten festgelegt werden. Jeder Standardwert muss über einen Datenbankweit eindeutigen Namnen verfügen und über das Column-Attribute an einen einzelne Spalte gebunden sein.

Beispiel

<Default Name="DF_person_vat" Column="vat" Value="((0))" />

Primärschlüssel werden mit Namen (Name) und mit der entsprechenden Spalte (Column) im Bereich Primarykeys bestimmt.

Beispiel

<Primarykey Name="Person_Id" Column="id" />

Foreignkeys umfasst die Vorgaben für alle referenziellen Integritätsregeln. Sie werden über einen Namen (Name), ein Quellspalte (Source) und dann über eine Zieltabelle (Table) und -spalte (Column) vorgegeben.

Beispiel

<Foreignkey Name="Person_Organization_Id" Source="organization_id" Table="organization" Column="id" />

Im Bereich Indices können Indizes auf Felder der Tabelle definiert werden. Dazu muss nur ein Name (Name) und die Bezeichnung der entsprechenden Spalte (Column) festgehalten werden.

Beispiel

<Index Name="Person_Organization_Id" Column="organization_id" />

[bearbeiten] Functions

In einem ersten Schritt werden alle Funktionen entfernt und danach wieder alle im XML definierten Funktionen neu angelegt.

Beispiel

<Function Name="ComputeTime">
 <![CDATA[CREATE FUNCTION [dbo].[ComputeTime] ( @time_string FLOAT ) ...
 ]]>	
</Function>

[bearbeiten] Views

In einem ersten Schritt werden alle Sichten entfernt und danach wieder alle im XML definierten Sichten neu angelegt.

Beispiel

<View Name="TEST_VIEW">
 <![CDATA[CREATE VIEW [dbo].TEST_VIEW as ...
 ]]>
</View>

[bearbeiten] Procedures

In einem ersten Schritt werden alle Sichten entfernt und danach wieder alle im XML definierten Prozeduren neu angelegt

Beispiel

<Procedure Name="TEST_Procedure">
 <![CDATA[CREATE PROCEDURE [dbo].[BILLREPORT_Diartis_Budget](@project_bill_id int) ...
 ]]>
</Procedure>

[bearbeiten] Updates

Die im Bereich Updates definierten SQL-Befehl werden vor und nach der Anpassung der Struktur angepasst. Die Befehle sollen so ausgestaltet werden, dass diese auch bei mehrmaligem Ausführen keine Daten unsachgemäss behandeln oder löschen.

Beispiel

<Update Name="dropprojectparentid">
 <![CDATA[
  IF ((Select Coalesce(Col_length('project','parent_id'),0))>0)
    ALTER TABLE project DROP COLUMN parent_id
  ]]>
</Update>

Updater (English)

Ansichten
Persönliche Werkzeuge