Re: Datenbankmodel in Navision abbilden

5. November 2008 17:32

Code:
IF TabelleXY.FIND('-') THEN

   REPEAT

       BEGIN

            TabelleXY.Date := WORKDATE;
            TabelleXY.MODIFY(TRUE);

       END

   UNTIL TabelleXY.NEXT = 0;


Ich habe bereits TabelleXY.Fixdate := WORKDATE versucht. Vielleicht hilft die Fehlermeldung etwas weiter, die ich immer bekomme. Ich starte meine Codeunit und es erscheint '416' ist kein gültiges Datum.

MFG

Re: Datenbankmodel in Navision abbilden

5. November 2008 17:41

Kannst du im Debugger schauen, wo der Fehler herkommt? Der muss nämlich woanders liegen.

Das Begin und das End kannst du dir in deinem Beispiel übrigens sparen :)

Re: Datenbankmodel in Navision abbilden

16. November 2008 23:58

Nach nun etwas längerem Suchen habe ich das Problem gefunden, es lag an einem XML Import, den ich vorher durchgeführt habe. Nun funktioniert es wie ursprünglich geplant.

Dennoch habe ich nochmal eine Frage:

Warum werden in vielen Navisiontabellen eigentlich Codefelder anstatt einfache Integerfelder als Primärschlüssel angegeben?
Was genau versteht man in Navision unter einer Recordvariable? Ich frage nach, weil ich in meinem Code häufig mit INIT und INSERT arbeite.

Danke schön !!

Re: Datenbankmodel in Navision abbilden

17. November 2008 09:18

Code:
TabelleXY.Date := TODAY;


Der Code ist völlig richtig, allerdings muss das Ergebnis wohl noch abgespeichert werden, also danach:
Code:
TabelleXY.MODIFY(TRUE);

Re: Datenbankmodel in Navision abbilden

23. November 2008 12:31

Ich muss nochmal kurz nachhaken, leider ist niemand auf meine Frage eingegangen:

Warum werden in vielen Navisiontabellen eigentlich Codefelder anstatt einfache Integerfelder als Primärschlüssel angegeben?
Was genau versteht man in Navision unter einer Recordvariable?

Re: Datenbankmodel in Navision abbilden

23. November 2008 13:08

Kossy hat geschrieben:Warum werden in vielen Navisiontabellen eigentlich Codefelder anstatt einfache Integerfelder als Primärschlüssel angegeben?

Gegenfrage: Warum sollten alle Tabellen Integerfelder als Primärschlüssel haben??
Dies macht bei Postentabellen durchaus Sinn (darum haben diese auch die "Lfd. Nr." = Integer als PK-Feld), aber was ist mit den Stammdatentabellen?
Nimm z.B. Artikel, Debitoren, Kreditoren ... Hier hätte ein Integer folgende Nachteile
  1. Keine Buchstaben könnten verwendet werden. Diese sind aber in der Praxis durchaus geläufig.
  2. Keine Namen wie '0000123' möglich. Diese machen aber durchaus Sinn (z.B. bei Kontonummern). Bei der SQL-Sortierung ist es notwendig, dass alle Einträge die gleiche Anzahl an Zeichen haben. Dies könntest du mit Integer doch gar nicht abbilden bzw. erst mit Ziffer 0 anfangen.

Was genau versteht man in Navision unter einer Recordvariable?

Wenn ich in Navision-Quelltexten mit Datenbanktabellen arbeite möchte, hole ich deren Inhalt in Recordvariablen. Eine Recordvariable zeigt auf eine ganz bestimmte Navision-Tabelle. Nur auf diese Weise ist die Bearbeitung von Tabelleninhalten möglich.
In deinem 1. Beitrag ist TabelleXY eine Recordvariable.