[gelöst] SQL Server Fehler

1. Dezember 2009 20:09

Hallo community,

ich bekomme beim Versuch etwas zu importieren immer eine Fehlermeldung. Kann jemand etwas damit anfangen (siehe Anhang, da schwer zu beschreiben)?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von misterelektro1981 am 2. Dezember 2009 14:33, insgesamt 1-mal geändert.

Re: SQL Server Fehler

1. Dezember 2009 21:18

OK, das ist ein IDENTITY_INSERT Fehler. Aaaaalso ...

In der Tabelle wird offenbar ein PK mit einer laufenden Nummer verwendet, die via "AutoIncrement" erzeugt wird. "AI" Felder dürfen keine Vorgabewerte enthalten, und sollten daher immer mit 0 initialisiert werden (zu beachten: ein INIT initialisiert keine PK Felder!). Also z.B.:
Code:
Record.INIT;
Record."Entry No." := 0; "Entry No." = AutoIncrement
...
Record.INSERT;

Wird ein Wert <> 0 entweder explizit oder implizit (xRec) vorgegeben, dann versucht NAV zur Laufzeit das IDENTITY umzuschalten (SET IDENTITY_INSERT ON). Das darf aber nur ein "sysadmin" oder "db_owner"! In deinem Fall wird vermutlich ein normaler "public" User auf den Fehler gelaufen sein ...

Die Lösung ist also: Die Stelle des INSERT finden und dort sicher stellen, dass das AI Feld mit "0" vorbelegt wird.

Sollte klappen ...

Re: SQL Server Fehler

2. Dezember 2009 11:54

Vielen Dank, klappt 1a!

Re: SQL Server Fehler

2. Dezember 2009 12:16

Super" :-P
Denkst Du noch an den [GELÖST] Hinweis im Titel? Dankeschön!

Re: SQL Server Fehler

2. Dezember 2009 12:52

Hallo MisterElektro1981,

ergänzend zu Stryks Beitrag, möchte ich dich bitten künftig Fehlermeldungen nicht als DOC oder PDF sondern als JPG hochzuladen.
Es ist für alle recht umständlich erst die Datei runterzuladen um diese sehen zu können.

Vielen Dank für dein Verständnis.
Solltest du dich ungerecht behandelt fühlen, so wende dich bitte an einen Administrator.

Gruß, Mikka
MSDynamics.de-Team

Re: SQL Server Fehler

2. Dezember 2009 13:10

mikka hat geschrieben:Hallo MisterElektro1981,

ergänzend zu Stryks Beitrag, möchte ich dich bitten künftig Fehlermeldungen nicht als DOC oder PDF sondern als JPG hochzuladen.
Es ist für alle recht umständlich erst die Datei runterzuladen um diese sehen zu können.

Vielen Dank für dein Verständnis.
Solltest du dich ungerecht behandelt fühlen, so wende dich bitte an einen Administrator.

Gruß, Mikka
MSDynamics.de-Team

Ich bin nach wie vor dafür, Fehlermeldungen am besten nur als Text direkt in den Beitrag zu schreiben (zumindest aus NAV heraus kann man die Meldung direkt per Strg+C kopieren). So kann es nie Download-Probleme geben und - wichtig - nach der Fehlermeldung kann im Forum gesucht werden.
Erst wenn ein Kopieren nicht möglich und das Abtippen zu mühselig ist, sollte auf JPG ausgewichen werden.
Meine Meinung :roll:

Re: SQL Server Fehler

2. Dezember 2009 14:30

Natalie hat geschrieben:...
Ich bin nach wie vor dafür, Fehlermeldungen am besten nur als Text direkt in den Beitrag zu schreiben (zumindest aus NAV heraus kann man die Meldung direkt per Strg+C kopieren). ...


Das geht ja wirklich, Wahnsinn!!! Hätte ich nicht gedacht.

Re: SQL Server Fehler

19. September 2023 09:53

stryk hat geschrieben:OK, das ist ein IDENTITY_INSERT Fehler. Aaaaalso ...

In der Tabelle wird offenbar ein PK mit einer laufenden Nummer verwendet, die via "AutoIncrement" erzeugt wird. "AI" Felder dürfen keine Vorgabewerte enthalten, und sollten daher immer mit 0 initialisiert werden (zu beachten: ein INIT initialisiert keine PK Felder!). Also z.B.:
Code:
Record.INIT;
Record."Entry No." := 0; "Entry No." = AutoIncrement
...
Record.INSERT;

Wird ein Wert <> 0 entweder explizit oder implizit (xRec) vorgegeben, dann versucht NAV zur Laufzeit das IDENTITY umzuschalten (SET IDENTITY_INSERT ON). Das darf aber nur ein "sysadmin" oder "db_owner"! In deinem Fall wird vermutlich ein normaler "public" User auf den Fehler gelaufen sein ...

Die Lösung ist also: Die Stelle des INSERT finden und dort sicher stellen, dass das AI Feld mit "0" vorbelegt wird.

Sollte klappen ...


Hallo,
ich muss das hier mal rausholen, weil ich scheinbar zu doof bin.
Anbei mein Code:
Code:
  lrc_ISA.RESET;
  lrc_ISA.INIT;
  lrc_ISA."Entry No." :=  0;
  IF (lrc_ISA.INSERT(TRUE)) THEN BEGIN...


Dieser führt beim Import via Dataport allerdings zum angehängten Fehler.
"Entry No." ist auch hier der PK und Autoincrement. Was mache ich falsch?
Danke und Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [gelöst] SQL Server Fehler

19. September 2023 14:47

INIT leert ja alle Felder außer Primärschlüssel, den setzt du auf 0, damit sollte das funktionieren.
Hast du es mal ohne IF INSERT THEN versucht, also einfach INSERT(TRUE) ? IF INSERT THEN könnte ja hier evtl. ein Problem sein.