| Autor |
Beitrag |
Bitburki
      
Beiträge: 28
|
Verfasst: Di 12.12.06 10:09
Hi,
ich verzweifel hier grad.
Habe eine ADO-Verknüpfung zu einer Accessdatei. Spalte ID hat Eigenschaft AutoWert.
Ich bin davon ausgegangen, daß wenn ich eine Adotab.insert; mache automatisch ein neuer WErt vergeben wird (oder spätestens beim Post).
Jetzt kommt aber beim Post die Fehlermeldung: "Null-Wert in Index oder Primärschlüssel nicht möglich"
Was mache ich falsch?
Gruß Bitburki
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 10:15
Ich könnte jetzt erstmal nur Raten aber wie es aussieht willst du einen Wert im Feld Id eingeben und das geht nicht.
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 10:56
Nein, das will ich nicht...
Als erstes drücke ich einen "Neu" Button und machen einen "Adotab.insert;"
Ich habe mir alle Felder die sonst noch in der Tabelle sind (außer ID), mit DBEditfeldern verknüpft.
Diese befülle ich in einer Maske. Ist dies passiert, drücke ich auf meinen Speichernbutton der lediglich ausführt "Adotab.post;"
Dann kommt die Exception mit der genannten Meldung.
Habe auch im ID Feld die Eigenschaften "AutogenerateValue" mal alle durchprobiert, nichts.
Habe dann auch mal das Feld "ID" auf die Maske gelegt (DBEdit) und hier wird in der Tat nicht vergeben wenn ich auf "Neu" klicke. Beim Post macht ers dann anscheinend auch nicht.
Was kann ich hier nur vergessen haben?
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 11:19
Mach doch mal Bitte ein Screenshot von der Sache.
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 11:30
bitteschön
Einloggen, um Attachments anzusehen!
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 11:34
Sorry mein Fehler ich meine vom Source Code und wenn es geht in etwa dort wo der Fehler auftritt.
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 11:41
Ich mache im Sourcecode nicht mehr als ich schon geschrieben habe:
AdoTab_erf.insert;
ADOTab_erf.FieldByName('Datum').AsDateTime:= datum.Date;
// Jetzt speichern
AdoTab_erf.Post;
Und bei der Anweisung:
"AdoTab_erf.Post;"
kommt die Exception.
Da siehste im Screenshot auch nicht mehr...
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 11:55
Kommen alle Information aus einer oder mehrere Tabellen?.
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 12:07
später mal aus mehreren Tabellen.
Um den Fehler einzugrenzen, habe ich mich aber vorerst auf eine Tabelle beschränkt um Fehler einzugrenzen.
Theoretisch praktisch müßte doch der Autowert gleich beim INSERT neu ermittelt werden... Wird er aber so wie es aussieht nicht
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 12:21
Versuche es mal Edit anstatt Insert .
Glaube ich?. 
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 12:44
Leider nein. Gleiche Meldung.
Habs auch probiert mit, zuerst INSERT und dann EDIT...
Die Fehlermeldung beim POST bleibt die gleice  (
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 12:50
Hast du evtl. Pfichtfelder in der Datenbank eingeben?.
|
|
OlafSt
      
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Di 12.12.06 12:54
Versuch mal Append anstatt Insert. Ich hab so das blöde Gefühl, das Insert nicht auf den Index achtet beim Einfügen eines leeren Datensatzes. Das geht schief bei Access und Primary Keys...
Append dagegen macht erstmal nix - bis zum Post-Statement.
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
Bitburki 
      
Beiträge: 28
|
Verfasst: Di 12.12.06 13:35
Zu allererst: ES GEHT!!! Ich drück hier auf n Knop und es GEHT!
So. Vielen Dank für die Hilfe.
Vielleicht hab ich eine entscheidende Info vergessen.
Ich habe das Feld ID mit AutoWert gekennzeichnet, und war der Meinung das das nicht automatisch hochgezählt wird.
Es waren aber noch 4 andere Felder als KEY gekennzeichnet, welche ich nicht gefüllt hatte.
Habe jetzt als erstes mal nur ID als Key genommen und siehe da, es geht!
Ist es überhaupt notwendig mehrere Keys zu definieren wenn ID sowieso schon eindeutig genug ist?
Am Insert oder Edit, Append lag es nicht. Ein einfach Insert bei Button NEU und ein POST beim SICHERN langt.
|
|
NTM
      
Beiträge: 120
Win XP
2005 Prof
|
Verfasst: Di 12.12.06 13:41
Wenn die Tabellen untereinander verbunden sind würde ich dir Raten nur einmal denn schlüssel zu vergeben.
|
|