[Gelöst]Warnmeldung vom SQL Server in NAV führt zu Abbruch??

24. September 2010 17:21

Hallo zusammen,
wir sind gerade dabei, einen Kunden von 4.0 SP 2 auf NAV 2009 SP1 upzugraden.
Testdatenbank läuft auf unserem Testserver und soll nun beim Kunden zum testen bereit gestellt werden.

Das Problem:
Wir haben vier Tabellen im Einsatz, die auf SQL-Server Views basieren.
Wenn man die Tabellen nun Anzeigen lassen möchte bekommt man in NAV diese Warnmeldung:
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Die folgenden SQL Server-Fehler sind beim Zugriff auf die Tabelle 'LINK_mf' aufgetreten:

8153,"01003",[Microsoft][ODBC SQL Server Driver][SQL Server]Warnung: Ein NULL-Wert wird durch einen Aggregat- oder sonstigen SET-Vorgang gelöscht.


Die Warnmeldung alleine führt aber schon dazu, dass sich mit der Tabelle nichts mehr anfangen lässt...

Kann mir bitte jemand sagen, wie ich diese Warnmeldung deaktivieren bzw. umgehen kann?

Ich hatte den View schon mal mit dem Statement ISNULL erweitert, hat aber nichts gebracht.

Falls genauere Infos zu den Views von nöten sind, dann gebt mir bitte Bescheid.

Ich hoffe, dass mir jemand schnell weiterhelfen kann und bedanke mich im Voraus schon ganz herzlich dafür!
Natürlich gebe ich dann auch Feedback ob der Lösungsvorschlag etwas gebracht hat! :wink:


Grüße Alex
Zuletzt geändert von Justin Time am 25. Oktober 2010 10:38, insgesamt 1-mal geändert.

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

24. September 2010 21:34

Vielleicht steckt der Teufel im View selbst - wie lautet die SQL-Anweisung?

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

24. September 2010 22:39

Hallo Natalie,
Es ist eine ganz einfach Select * from Tabelle xy Anweisung.
Ich habe auch schon gelesen dass die Warnungen bei zb Berechnungen wie Count in der SQL Abfrage auftreten können. Sowas kommt bei mir aber gar nicht vor.
Ich weiß allerdings nicht wie Nav den View abfrägt. Evtl. wird ja hier ein Befehl verwendet der die Warnung auslöst?

Achja noch zur Info. Vorher war SQL Server 2000 im Einsatz nun SQL Server 2008.



Grüße Alex

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

24. September 2010 22:43

Justin Time hat geschrieben:Es ist eine ganz einfach Select * from Tabelle xy Anweisung.

Keine WHERE-Klausel, kein Join o.ä.? Erst ab da wirds interessant ..

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 09:10

Hallo Natalie,
keine where Klausel und auch kein JOIN...
Es geht eigentlich rein darum, Daten aus einer anderen DB zu lesen.

Der Ablauf ist folgender, unser View geht auf einen weiteren View in einer so genannten Interface DB. Der View aus der Interface DB fragt auch nur bestimmte Felder aus der eigentlichen Tabelle ab. (select feld1, feld2, feld3 etc. from tabelle xy)
Auch wieder ohne where Klausel und sonstiges.

Ich habe auch schon versucht, die Interface DB zu umgehen, und den View direkt auf die entsprechende Tabelle zu machen.
Das brachte aber auch keinen Erfolg und führt zur selben Warnung.

Ich denke also, dass das eigentliche Statement, dass zur Warnung führt ein von NAV generiertes ist.
Aber wie kann ich das rausfinden?

Ich weiß im Moment nicht weiter, und der Kunde macht mächtig Druck.

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 10:06

Justin Time hat geschrieben:Es geht eigentlich rein darum, Daten aus einer anderen DB zu lesen.

Und diese andere DB ist zufälligerweise kein NAV? Genau das könnte das Problem sein, denn:
NAV
  • arbeitet bestimmten Felddatentypen, die ggü. anderen Datenbanken eher untypisch sind. Es könnte notwendig sein, diese Datentypen im SQL-View in NAV-konforme Datentypen zu konvertieren (Befehl CAST, glaube ich)

  • kennt in SQL-Tabellen keine NULL-Werte. Ist ein Textfeld "leer", so enthält es inm SQL-Tabellenfeld einen Leerstring. Bei nummerischen Werten wird eine 0 erwartet - aber niemals NULL. Deine Fehlermeldung deutet darauf hin, dass NAV aber nun mit NULL-Werten überrascht worden ist. Auch hier müsste der View angepasst werden.

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 18:44

Hallo Natalie,
ich habe den View schon einmal bei jedem Feld mit dem Statement ISNULL ausgebaut.
ISNULL wandelt NULL in einen vorgegebenen Wert um.
Auch dies hat leider nichts gebracht.

Welche Datentypen wären denn eher kritisch und benötigen den CAST Befehl?

Was auch noch seltsam ist, bei unsere hausinternen Testdatenbank des Upgrades, tritt der Fehler auch nicht auf.
Trotz gleichem SQL Server (2008).
Einziger Unterschied ist, dass dort die Views noch auf die Datenbanken vom SQL Server 2000 zurückgreifen...
Eine ähnliche Konfiguration beim Kunden einzuführen, geht allerdings nicht, da alle Datenbanken in Zukunft auf dem neuen Server liegen sollen.

Grüße Alex

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 18:51

Justin Time hat geschrieben:Welche Datentypen wären denn eher kritisch und benötigen den CAST Befehl?

Ob sie wirklich kritisch sind, weiß ich nicht - war nur eine Idee.
Schau dir mal die NAV-eigenen Tabellen im SQL-Server an. Du wirst nur eine handvoll Datentypen sehen, darunter varchar - mehr habe ich gerade nicht in Erinnerung :-)

Was auch noch seltsam ist, bei unsere hausinternen Testdatenbank des Upgrades, tritt der Fehler auch nicht auf.
Trotz gleichem SQL Server (2008).
Einziger Unterschied ist, dass dort die Views noch auf die Datenbanken vom SQL Server 2000 zurückgreifen...

In der Tat, das klingt seltsam.
Und da es meinen SQL-Horizont völlig übersteigt, hoffe ich, dass noch jemand hilft ...? Jöööörg ...? :-)

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 21:04

Auf Jörgs Hilfe habe ich insgeheim auch schon etwas gehofft :-)
In seinem Buch habe ich zu dem Thema schon nachgeschaut :wink:

Ich hatte auch schon die ANSI Warnings abgeschaltet weil ich das auch irgendwo gelesen habe, dass dies vielleicht helfen könnte.
Leider hat das auch nichts gebracht... :-(

Danke Natalie für deine schnellen Antworten übrigens :wink:

Grüße Alex

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. September 2010 21:14

Justin Time hat geschrieben:Danke Natalie für deine schnellen Antworten übrigens :wink:

Bitte bitte,
wäre nur schöner, sie würden dich weiter bringen ;-)

Re: Warnmeldung vom SQL Server in NAV führt zu Abbruch??

25. Oktober 2010 10:37

Hallo zusammen,
der Fehler hat sich mittlerweile erledigt.
Dadurch, dass der View auf dem meine Tabelle basiert hatte, wieder auf einem weiteren View basiert, war die Sache nicht einfach zu durchschauen.

Wir mussten uns durch die verschiedenen verschachtelten Views durchkämpfen und mit dem Query Analyzer prüfen, wo denn die gleiche Warnmeldung wie in NAV auftaucht.

Letztendlich war es eine MIN Funktion, die nicht auf einen NULL Wert abgeprüft wurde.