[gelöst] Grundlegende Verständnis Frage zu SQL

13. November 2009 16:02

Hallo,

ich sitzt hier gerade mit nen paar Kollegen und da viel so die Frage, wie und vorallem wo wird eigentlich der in NAV geschrieben Quellcode im SQL Server gespeichert bzw hinterlegt? Ich finde, dass das ne gute Frage ist. Zumindest ne intressante für uns hier. Kann jemand vielleicht etwas Licht ins Dunkel bringen?!

Mfg

NewComer
Zuletzt geändert von NewComer am 16. November 2009 08:58, insgesamt 1-mal geändert.

Re: Grundlegende Verständnis Frage zu SQL

13. November 2009 16:18

Wie: compiliert (Bevor die Frage kommt: Es weiß in diesem Forum vermutlich niemand, wie ein Dekompilieren aussehen müsste.)
Wo: In der Object-Tabelle (meist dbo.Object)

Re: Grundlegende Verständnis Frage zu SQL

13. November 2009 16:27

O.K.

in compelierte Form ist soweit klar. Danke dafür. Aber speichert er denn Quellcode "nur" in compelierter Form? Das würde ja bedeuten, dass Navision jedesmal wenn ich ein Objekt im Designer öffne und in die Quellcode ansicht gehe alles decompeliert. Wäre ja sehr ungewöhnlich. Er speichert also nirgends den reinen, nicht in maschinen Code übersetzen, Quellcode?!

mfg

newcomer

Re: Grundlegende Verständnis Frage zu SQL

13. November 2009 16:44

nein, aber in verschlüsselter Form.
Gruß, Fiddi

Re: Grundlegende Verständnis Frage zu SQL

13. November 2009 16:51

"Kompilieren" bedeutet bei Dynamcis NAV, dass der C/AL-Code einer Syntaxprüfung unterzogen wird und in ein interpretationsfähiges Format gebracht wird.
C/AL ist eine Interpretersprache.

[Edit]
Ab Version 2009 (6.0) wird zusätzlich (bei 3-Tier-Betrieb) der C/AL-Code in C#-Code übersetzt und in der Tabelle "Object MetaData" gespeichert.
Der C/AL-Code bleibt weiterhin in der Tabelle "Object" gespeichert.
[/Edit]

Ich bin fest davon überzeugt, dass NAV nur den "kompilierten" C/AL-Code speichert, denn wie kann man sich sonst erklären, dass z. B. aus
Code:
IF SalesLine.Field1 = SalesLine.Field1::"1" THEN

nach dem Speichern, Schließen und Öffnen
Code:
IF SalesLine."Document Type" = SalesLine."Document Type"::Order THEN

wird?
Dies kann meiner Meinung nach nur funktionieren, wenn der gespeicherte C/AL-Code beim Öffnen des Objektes dekompiliert wird.

Re: Grundlegende Verständnis Frage zu SQL

13. November 2009 17:41

@Timo,

einigen wir uns auf Tokenized und verschlüsselt , wie es die frühen Basic- Interpreter auf dem C64 u.ä. gemacht haben, wo man mit '? "Hallo"' statt 'print "Hallo"'einen Text ausgeben konnte. In einer vollständig kompilierten Form währen keine Kommentare und Leerzeilen enthalten. Außerdem gibt es einige Tools, die den Quelltext durch einen Text ersetzen, (damit er nicht kopiert werden kann), und das Objekt läuft trotzdem noch.

Gruß, Fiddi

Re: Grundlegende Verständnis Frage zu SQL

16. November 2009 08:58

O.k.

Dank für die Antworten. Scheint mir zwar eine etwas seltsame Art zu sein wie das von MS gehandhabt wurde, aber naja.

Sehe dasThema dann als gelöst an

mfg

newcomer