![]() |
Datenbank: MSSQL Express • Version: 2005 • Zugriff über: DBExpress
Autoincrement funktioniert nicht ???
Hallo !
Ich habe eine MSSQL Datenbank mit dem "MS SQL Server Management Studio Express" erstellt und möchte die nun bearbeiten. Ich habe mit TSQLConnection eine Verbindung zur Datenbank hergestellt, funktioniert. Anschließend schau ich mit TSimpleDataSet auf eine Tabelle und möchte den Inhalt über TDatasource in einem TDBGrid darstellen. Zur Navigation benutze ich dan TDBNavigator. So weit so gut. Immer wenn ich mit dem TDBNavigator einen neuen Datensatz erzeuge und später speichern will, erhalte ich eine Exception, da das Feld meines PrimSchlüssels leer ist. Aber müsste der sich denn nicht selbst incrementieren ? Oder muss ich das selbst tun ? Wenn ich mit dem Management Studio einen neuen Datensatz anlege, funktioniert das autoincrement immer. Vielen dank |
Re: Autoincrement funktioniert nicht ???
Also bei FB ist das ja etwas anders... Hat das Autoinc Feld auch noch den Wert "NOT NULL"? Normalerweise das Autoinc Feld nicht als Pflichtfeld definieren (damit man es weglassen kann), da ja erst hinterher von der DB-Engine ein Wert eingesetzt wird.
|
Re: Autoincrement funktioniert nicht ???
Zitat:
|
Re: Autoincrement funktioniert nicht ???
Hallo,
Zitat:
Was passiert, wenn Du für den Primärschlüssel einen Wert eingibst, wird der dann gespeichert oder wird der Wert gespeichert, den die Datenbank automatisch vergibt oder erhälst Du von der Datenbank eine Fehlermeldung, dass für das Feld kein Wert eingegeben werden darf? |
Re: Autoincrement funktioniert nicht ???
Zitat:
|
Re: Autoincrement funktioniert nicht ???
In diesem Fall könnte man auch mit einer Sequenz arbeiten (Client holt sich Wert und fügt ihn ein)
|
Re: Autoincrement funktioniert nicht ???
Liste der Anhänge anzeigen (Anzahl: 1)
Zunächst vielen Dank für die schnellen Antworten.
Zunächst habe ich auch selbst einen Wert eingegeben, aber dann beschwert sich die Datenbank mit einem "EDatabaseError" darüber, das ich dies tue. So, nun habe ich im TSimpleDataSet das faRequired auf false gesetzt (so war es doch gemeint, nicht wahr ?). Die Fehlermeldung "EDatabaseError" bleibt jedoch erhalten. |
Re: Autoincrement funktioniert nicht ???
Setz mal bei dem Feld die Spalteneigenschaft '(Ist-Identity)' auf 'Ja' und den Datentyp auf Int. Das sollte reichen.
|
Re: Autoincrement funktioniert nicht ???
Schwierige Geburt....
InTSimpleDataSet.FieldDefs habe ich den DataType auf ftInteger bzw. auch einmal auf ftAutoInc gesetzt. Beides ändert leider nichts. Wo finde ich aber die Spalteneigenschaft '(Ist-Identity)' ? |
Re: Autoincrement funktioniert nicht ???
Hätte ich auch mit reinschreiben sollen...
Meinte im "MS SQL Server Management Studio Express" die Tabelle auswählen, rechte maustaste auf die Tabelle, und im Popupmenü auf "ändern". Das Feld auswählen,Datentyp auf Int und unten in der Liste dann halt '(Ist-Identity)' auf 'Ja'. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz