OBS/System/Datenbankdefinition: Unterschied zwischen den Versionen
Böhrer (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Hi! <br>My name is Esteban and I'm a 23 years old girl from Balnafoich.<br><br>Here is my blog; [http://www.dvdonsales.com/Lethal-Weapon-Season-2-DVD-Boxset-Fr…“) |
Nimz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=Definition von Tabellen und Feldern= ==OBS Standard== Die Datenbankdefinition wird beim OBS-Update mit ausgeliefert und befindet sich im OBS-Unterverzeichnis ''sys'' in der Datei ''obsdb.sys''. ==individuelle Tabellen und Felder== Standardtabellen von OBS können sich erweitern lassen oder auch neue Tabellen definiert werden. Die Definition muss ebenfalls im sys-Verzeichnis abgelegt werden. Der Dateiname muss mit ''User_'' beginnen, auf ''_obsdb.sys'' e…“) |
||
Zeile 1: | Zeile 1: | ||
=Definition von Tabellen und Feldern= | |||
==OBS Standard== | |||
Die Datenbankdefinition wird beim OBS-Update mit ausgeliefert und befindet sich im OBS-Unterverzeichnis ''sys'' in der Datei ''obsdb.sys''. | |||
==individuelle Tabellen und Felder== | |||
Standardtabellen von OBS können sich erweitern lassen oder auch neue Tabellen definiert werden. Die Definition muss ebenfalls im sys-Verzeichnis abgelegt werden. Der Dateiname muss mit ''User_'' beginnen, auf ''_obsdb.sys'' enden und dazwischen Ihre Kundennummer enthalten. Sollten Sie mit mehreren Installationen arbeiten wird zur Kundennummer möglicherweise noch eine Sub-Identifikation benötigt.<br /> | |||
Beispiel Dateiname: User_101234_obsdb.sys. | |||
==Definition einer Tabelle== | |||
===Felder=== | |||
Felder werden mit #FELDNAME hinzugefügt. Dahinter werden dann mit Komma getrennt folgende weitere Angaben gemacht: | |||
{| class="wikitable" | |||
|- | |||
! Angabe!! Beschreibung | |||
|- | |||
| Feldname || Name des Tabellenfeld bzw Tabellenspalte. Die Definition darf nur aus A bis Z, 0 bis 9 und Unterstrich bestehen. Umlaute sind nicht gültig.<br />FELD_STRASSE ist OK<br />FELD_STRAßE ist FALSCH | |||
|- | |||
| Typ || Einzelner Buchstabe. Dieser definiert den Datentyp für die Speicherung. Aktuell Unterstützt werden in der Definition: | |||
*C : Text vom Typ Char | |||
*V : Text vom Typ Varchar | |||
*M : Langtext (mehr als 255 Zeichen) | |||
*I : Ganzzahl (Integer / Int) | |||
*N : Dezimalzahl (Decimal) | |||
*D : Datum/Uhrzeit (Datetime) | |||
*B : Blob-Daten | |||
|- | |||
| Feldlänge || Gesamtlänge der Daten, die maximal in das Feld geschrieben werden können. Wenn Sie z. B. eine OBS-Artikelnummer in ein Feld schreiben möchten, muss das Feld mindestens eine Länge von 25 haben, das dies die maximale Länge einer OBS-Artikelnummer ist. Beachten Sie, dass bei Dezimalzahlen die Gesamtlänge den Vor- und Nachkommastellen entsprechen muss. Prozentzahlen von 0 bis 100 mit zwei Nachkommastellen benötigt also eine Länge von mindestens 5. | |||
|- | |||
| Nachkommastellen || Nur gültig bei Dezimalzahlen. Darf nicht gleich oder Größer sein als die Gesamtlänge - 1, da immer mindestens eine Vorkommastelle vorhanden sein muss. | |||
|- | |||
| Picture/Maske || Spannend, wenn Datenbankfelder in Eingabemaske geladen werden. Die Maske sollte daher zu Typ, Feldlänge und Nachkommastellen passen.<br /> | |||
Folgende Angaben sind erlaubt: | |||
*C | |||
*#C wiederholt bis maximal der Feldlänge. Feldlänge 10 gibt also die Freiheit von "C" bis "CCCCCCCCCC" | |||
*#Maske mit Sternchen ("*") veranlasst OBS automatisch die maximale Feldlänge zu verwenden | |||
*#Zeiten im digitalen 24-Stunden Format können auch in Textfelder gespeichert werden. Als Vorgabe kann dazu mit zwei Varianten gearbeitet werden: "ZZ:ZZ" oder "ZZ:ZZ:ZZ". Je nachdem, ob auch Sekunden mit angegeben werden können.{{Hinweis|Die Feldlänge muss in diesem Fall entweder 5 für "ZZ:ZZ" oder 8 für "ZZ:ZZ:ZZ" sein. Sonst ist die Verwendung ungültig.}} | |||
*V : wie Char (C) | |||
*M : Maske ist immer "*" | |||
*I : N bis zur maximalen Feldlänge. Feldlänge 10 gibt also die Freiheit von "N" bis "NNNNNNNNNN" | |||
*N : Die Kommastelle ist mit einem Punkt anzugeben. Ansonsten gilt hier auch N bis zur maximalen Feldlänge. 10 , 3 ermöglicht als Maske von "N.N" bis "NNNNNNN.NNN" | |||
*D : Maske immer auf "TT.MM.JJ" | |||
*B : Maske ist immer "*" | |||
|- | |||
| Flags|| Flags sind besondere Markierungen für Felder, welche zu besonderen Verhalten von OBS führen. Wenn mehrere Flags angegeben werden sollen, dann sind diese mit Komma zu trennen.<br /> | |||
Flags: | |||
*PERSONENNR : Feld enthält eine OBS-Personennummer. Wird beim Ändern der Personennummer automatisch angepasst. | |||
*PERSDELCHK : Verhindert das Löschen einer Person, wenn es einen Datensatz mit der entsprechenden Nummer in diesem Feld gibt | |||
*PERSSETEMPTY : Löscht beim Löschen einer Person nicht den Datensatz sondern leert das Feld | |||
*ARTIKELNR : Feld enthält eine OBS-Artikelnummer. Wird beim Ändern der Artikelnummer automatisch angepasst. | |||
*ARTIKELDELCHK : Verhindert das Löschen eines Artikels, wenn es einen Datensatz mit der entsprechenden Nummer in diesem Feld gibt. | |||
*ARTIKELSETEMPTY : Setzt das Feld leer, wenn der referenzierte Artikel gelöscht wird statt den Datensatz zu löschen. | |||
*LEISTUNGNR : Feld enthält eine OBS-Leistungsnummer | |||
*LEISTUNGDELCHK : Verhindert das Löschen einer Leistung, wenn es einen Datensatz mit der entsprechenden Nummer in diesem Feld gibt. | |||
* | |||
{{Hinweis|Diese Auflistung kann unvollständig sein. Eine Definion und/oder Beschreibung finden Sie am Anfang der obsdb.sys. Suchen Sie nach #DBFLAG.}} | |||
|} | |||
Beispiel für ein Feld mit eine OBS-Artikelnummer (Flag ARTIKELNR): | |||
#FELDNAME MEIN_FELD , C , 25 , 0 , "CCCCCCCCCCCCCCCCCCCCCCCCC" , ARTIKELNR , ARTIKELDELCHK | |||
=Fehler in der Definition= | |||
Beim Starten von OBS erhalten Sie bei Fehlern in der Definition folgende Meldung (ID: Y006GZTPFV):<br /> | |||
[[image:Db_struktur_fehlerhaft.png]]<br /> | |||
<br /> | |||
Sollte dies der Fall sein, prüfen Sie die adminerror.txt im OBS-Unterverzeichnis ..\data\debug\. | |||
{| class="wikitable" | |||
|- | |||
! Fehler!! Lösung | |||
|- | |||
| Tabelle "Tabellenname" Feldname "Feld" Maske passt nicht zur Definition! || Die Maske enthält unerlaubte Zeichen für den Typen oder ist zu lang. siehe dazu [[#Felder|Definition Felder]] | |||
|- | |||
| Tabelle "Tabellenname" Feldname "Feld" Feldlänge 0 nicht erlaubt! || In der Spalte für die Feldlänge steht eine 0. Tragen Sie hier die gewünschte Feldlänge ein. | |||
|} |
Version vom 8. März 2024, 12:10 Uhr
Definition von Tabellen und Feldern
OBS Standard
Die Datenbankdefinition wird beim OBS-Update mit ausgeliefert und befindet sich im OBS-Unterverzeichnis sys in der Datei obsdb.sys.
individuelle Tabellen und Felder
Standardtabellen von OBS können sich erweitern lassen oder auch neue Tabellen definiert werden. Die Definition muss ebenfalls im sys-Verzeichnis abgelegt werden. Der Dateiname muss mit User_ beginnen, auf _obsdb.sys enden und dazwischen Ihre Kundennummer enthalten. Sollten Sie mit mehreren Installationen arbeiten wird zur Kundennummer möglicherweise noch eine Sub-Identifikation benötigt.
Beispiel Dateiname: User_101234_obsdb.sys.
Definition einer Tabelle
Felder
Felder werden mit #FELDNAME hinzugefügt. Dahinter werden dann mit Komma getrennt folgende weitere Angaben gemacht:
Angabe | Beschreibung |
---|---|
Feldname | Name des Tabellenfeld bzw Tabellenspalte. Die Definition darf nur aus A bis Z, 0 bis 9 und Unterstrich bestehen. Umlaute sind nicht gültig. FELD_STRASSE ist OK FELD_STRAßE ist FALSCH |
Typ | Einzelner Buchstabe. Dieser definiert den Datentyp für die Speicherung. Aktuell Unterstützt werden in der Definition:
|
Feldlänge | Gesamtlänge der Daten, die maximal in das Feld geschrieben werden können. Wenn Sie z. B. eine OBS-Artikelnummer in ein Feld schreiben möchten, muss das Feld mindestens eine Länge von 25 haben, das dies die maximale Länge einer OBS-Artikelnummer ist. Beachten Sie, dass bei Dezimalzahlen die Gesamtlänge den Vor- und Nachkommastellen entsprechen muss. Prozentzahlen von 0 bis 100 mit zwei Nachkommastellen benötigt also eine Länge von mindestens 5. |
Nachkommastellen | Nur gültig bei Dezimalzahlen. Darf nicht gleich oder Größer sein als die Gesamtlänge - 1, da immer mindestens eine Vorkommastelle vorhanden sein muss. |
Picture/Maske | Spannend, wenn Datenbankfelder in Eingabemaske geladen werden. Die Maske sollte daher zu Typ, Feldlänge und Nachkommastellen passen. Folgende Angaben sind erlaubt:
|
Flags | Flags sind besondere Markierungen für Felder, welche zu besonderen Verhalten von OBS führen. Wenn mehrere Flags angegeben werden sollen, dann sind diese mit Komma zu trennen. Flags:
HINWEIS: Diese Auflistung kann unvollständig sein. Eine Definion und/oder Beschreibung finden Sie am Anfang der obsdb.sys. Suchen Sie nach #DBFLAG.
|
Beispiel für ein Feld mit eine OBS-Artikelnummer (Flag ARTIKELNR):
#FELDNAME MEIN_FELD , C , 25 , 0 , "CCCCCCCCCCCCCCCCCCCCCCCCC" , ARTIKELNR , ARTIKELDELCHK
Fehler in der Definition
Beim Starten von OBS erhalten Sie bei Fehlern in der Definition folgende Meldung (ID: Y006GZTPFV):
Sollte dies der Fall sein, prüfen Sie die adminerror.txt im OBS-Unterverzeichnis ..\data\debug\.
Fehler | Lösung |
---|---|
Tabelle "Tabellenname" Feldname "Feld" Maske passt nicht zur Definition! | Die Maske enthält unerlaubte Zeichen für den Typen oder ist zu lang. siehe dazu Definition Felder |
Tabelle "Tabellenname" Feldname "Feld" Feldlänge 0 nicht erlaubt! | In der Spalte für die Feldlänge steht eine 0. Tragen Sie hier die gewünschte Feldlänge ein. |