![]() |
Datenbank: Access • Version: 2000 • Zugriff über: BDE
Access --> Fehler bei Datensatz einfügen
Hallo,
ich habe ein kleines Problem mit Access. Ich habe eine Datenbank in der habe ich eine Tabelle. Die Tabelle besteht aus:
SQL-Code:
Wenn ich einen Datensatz in die Tabelle einfügen will, dann kommt eine Fehlermeldung.
Create Table Kontakte
( Idx Counter, Name Char(30), Vorname Char(30), Constraint pk Primary Key (Idx) ) [Fehler] Indexfehler [Microsoft][ODBC Microsoft Access Driver] Sie wollen den Null-Wert einer Variablen zuweisen, die nicht den Datentyp Variant Allgemeiner SQL.Fehler hat. [/Fehler] So füge ich einen Datensatz in die Tabelle ein:
Delphi-Quellcode:
Ich greife über die ODBC Schnittstelle auf die Access Datenbank zu. Und über die Komponente TTable (BDE).
DM.TKontakte.Append; // --> DM ist ein Datenmodul
FEdit.Caption:='Neu'; FEdit.ShowModal; Ich glaube es liegt an dem Primärschlüsselfeld. Wenn wenn ich das weg nehme, dann kommt komischerweise kein Fehler. Muss ich die Zahl die in das Feld rein kommt alleine vergeben??? Oder macht das Acces??? Ich denke jetzt habt ihr alle Infos die Ihr braucht, wenn nicht, einfach nochmal melden. MFG Christian18 |
Re: Access --> Fehler bei Datensatz einfügen
Du deklarierst die Felder als 'NOT NULL' (obwohl das nicht da steht), also müssen die Felder einen Wert haben, und sei es der leere String. Genau das sagt Dir doch Access. Fülle alle Felder mit Werten.
Nebenbei sollte man die Werte nicht über Edit-Felder befüllen, sondern direkt auf dem Datensatz arbeiten:
Delphi-Quellcode:
So klappt das garantiert.
MyTable.Append;
MyTable['Vorname'] := 'Al'; MyTable['Name'] := 'Zymer'; MyTable.Post; |
Re: Access --> Fehler bei Datensatz einfügen
Zitat:
und was muß ich machen, damit die felder nicht "NOT NULL" sind??? |
Re: Access --> Fehler bei Datensatz einfügen
SQL-Code:
Oder in Access direkt nachträglich einstellen. Such mal im Tabellendesigner nach 'darf leer sein' oder sowas.
Create Table Kontakte
( Idx Counter, Name Char(30) NULL, Vorname Char(30) NULL, Constraint pk Primary Key (Idx) ) |
Re: Access --> Fehler bei Datensatz einfügen
Hallo,
es muß doch eine möglichkeit geben das man nicht alle Felder ausfüllen muss. Auch mit der TDBEdit Komponente. Das funktioniert mir anderen Datenbanken doch auch. MFG Christian18 |
Re: Access --> Fehler bei Datensatz einfügen
Dein Create-Statement hat implizit bei jedem Feld den Constraint "NOT NULL" gesetzt, das ist bei Access - wie oben bereits beschrieben wurde - die Standardeinstellung. Wenn du also ein NULL zulassenwillst, mußt du das bei deiner Tabellen-Definition mit angeben (wie alzaimar es bereits beschrieben hat).
Grüße mikhal |
Re: Access --> Fehler bei Datensatz einfügen
Natürlich. Aber Du sagst der Datenbank explizit, das die Werte nicht NULL (leer) sein DÜRFEN. Dann must Du dich auch an deine eigenen Regeln halten. Du kannst aber z.B. Defaultwerte vorgeben, entweder per SQL, oder im OnNewRecord-Event des TDatasets.
|
Re: Access --> Fehler bei Datensatz einfügen
Hallo,
der Fehler kommt immernoch. das liegt an den Primärschlüssel feld. denn wenn ich da was selber rein schreibe, dann kommt kein fehler. eigentlich soll er den index ja automatisch vergeben. was kann ich tun??? MFG Christian18 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz