AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADODataSet - Fehler beim Hinzufügen (Identity Insert)

TADODataSet - Fehler beim Hinzufügen (Identity Insert)

Ein Thema von Piro · begonnen am 10. Sep 2018 · letzter Beitrag vom 10. Sep 2018
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

TADODataSet - Fehler beim Hinzufügen (Identity Insert)

  Alt 10. Sep 2018, 13:23
Datenbank: MS SQL • Version: 2014 • Zugriff über: ADO
Moin zusammen,

ich verwende folgenden Code, um einen Benutzer in eine Tabelle zu speichern.
Delphi-Quellcode:
DSData.Close;
DSData.CommandText := 'Select * from fehlteilelosreserve_access where id = -1';
DSData.Open;
DSData.Append;

DSData.FieldByName('lanid').AsString := edt_setup_access_lanid.Text;
DSData.FieldByName('username').AsString := edt_setup_access_name.Text;
DSData.FieldByName('access_lieferperformance').AsBoolean := cb_setup_access_lieferperformance.Checked;
DSData.FieldByName('access_admin').AsBoolean := cb_setup_access_admin.Checked;
DSData.Post; // Hier kommt die Exception jetzt.
DSData.Close;
Ich bin von MS SQL 2008 auf MS SQL 2014 umgestiegen und musste gerade feststellen, dass mein Code nicht mehr funktioniert und ich jetzt folgende Fehlermeldung erhalte.
Siehe Anhang.

Wie gesagt, mit MS SQL 2008 ging es. Ich habe auch schon anstatt des Stern *, die Felder aufgezählt im Select CommandText. Auch leider ohne Erfolg.

Das Feld id ist der Primäre Key mit AutoIncrement.

Ich hoffe, dies Problem geht einer und weiß, was ich machen kann.

Danke im Voraus.
Sven
Miniaturansicht angehängter Grafiken
debugger-exception.png  
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: TADODataSet - Fehler beim Hinzufügen (Identity Insert)

  Alt 10. Sep 2018, 13:32
Evtl. ist deine "dynamische" Herangehensweise mit "Select *" nicht mehr kompatibel mit Treiber oder Kompo.
Mittlerweile gibt es ja wohl für PK Attribute(Felder) Field Properties, mit denen man angeben kann, wie das PK Verhalten ist/sein soll.
Wenn Dein PK Feld die Migration so überlebt hat, wie es unter der alten Version war, sollte ein insert jedenfalls funktionieren, wenn Du das Feld einfach beim Insert weg lässt, also "aktiv" nicht angeben. Hast Du mal geschaut, ob das PK Feld noch wirklich als Autoinc definiert ist bzw. ob es funktioniert mit einer Eingabe aus der SQL Console?
Gruß, Jo
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#3

AW: TADODataSet - Fehler beim Hinzufügen (Identity Insert)

  Alt 10. Sep 2018, 13:36
Vergleiche bitte mal die Tabellenstrukturen auf den beiden Datenbanken.

Du weist der Spalte ID jedenfalls keinen Wert zu.

Wenn ID aber als Not Null definiert ist, muss das schief gehen.

Von welchem Typ ist denn ID auf der alten Datenbank und von welchem auf der neuen?

Gibt es auf der alten Datenbank eventuell einen Trigger, der das Befüllen der Spalte ID übernimmt und auf der neuen Datenbank fehlt?

Das Problem ist per "Ferndiagnose" nicht zu lösen, da es (vermutlich / höchstwahrscheinlich) an unterschiedlichen Tabellendefinitionen und / oder Triggern liegt.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#4

AW: TADODataSet - Fehler beim Hinzufügen (Identity Insert)

  Alt 10. Sep 2018, 13:48
Ich habe schon mal herausgefunden, dass das Feld id nicht ReadOnly ist.

Ah. Bei der Migration sind die ganzen Primären Schlüssel flöten gegangen.

Ich werde die Migration der Tabellen nochmal machen und hoffe das es dann klappt. Wäre unschön, 3 Anwendungen umzuschreiben.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

AW: TADODataSet - Fehler beim Hinzufügen (Identity Insert)

  Alt 10. Sep 2018, 14:06
Oh man das Problem war wirklich die Migration. Die Primären Schlüssel sind alle verloren gegangen.

Habe es korrigiert und siehe da, es geht wieder.

Sorry, dass ich eure Zeit verbraucht habe. Für das nächste Mal, weiß ich besser Bescheid.

Trotzdem danke und einen schönen Tag.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz