Zum Inhalt springen

INSERT INTO tablename VALUES(......) mit Autowert


bigredeyes

Empfohlene Beiträge

soderlet!

ich hoppel da gerade über ne access db und will da mit sql-statements ein neuen datensatz anlegen.

nu will er das natürlich nicht. wäre ja auch zu schön....

das problem ist, dass ein wert in der datenbank ein autowert ist. was muss man denn da dann in die VALUES reinschreiben? eigentlich ja nix, aber ix is bissl wenig......

die tabelle hat folgende typen:

int, int, string, int, datum, time, AUTOWERT, int

so weit bin ich schon:

stmtBuch.executeUpdate("insert into Buchung values(100,100,'tick',100, null,'tick', -> AUTOWERT <- ,100)");

kriege pro versuch mehr oder minder viel sagende fehlermeldungen.....

also, ich mach jetzt mittag und hoffe, dass ich nachher schlauer bin....

thx @ all

bigredeyes

Link zu diesem Kommentar
Auf anderen Seiten teilen

versuchs mal mit dem sql String:

Insert into Buchung (feld1, feld2, feld3, feld4, feld5, feld6, feld8)

values(100,100,'tick',100, null,null,100);

wenn Du ihm nämlich die Namen der Felder angibst die Du füllen möchtest, kannst Du das Autowert-Feld (in dem Beispiel feld7) weglassen. Er versucht dann auch nicht was reinzuschreiben (wo ja warscheinlich die Fehlermeldungen herkommen) und erhöht es automatisch.

hoffe das hilft Dir!

btw: woher kommt denn der Befehl stmtBuch.executeUpdate ? kannte den nicht (benutze aber auch noch Access97)

gruß

Christian

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Jahre später...

Hmm muss das hier nochmal aufgreifen ...

Und zwar bastele ich mir mein SQL Statement mit Perl zusammen. Da ich dieses Perl Script aber für diversere Quelldatentabellen verwenden möchte, kann ich die Feldnamen nicht angeben (bzw. nur mit erhöhtem Aufwand).

Deshalb die Frage nochmal:

Wie sage ich Access, dass der übergebene Wert ein Autowert ist und Access sich selbst das passende raussuchen soll.

Die Umgebung:

Access 2000 verfügbar per ODBC

Tabellenbeispiel:

ID(Autowert), Datum(Text), Uhrzeit(Datum/Uhrzeit), Wert1

Beispielstatement:

insert into table values (??, '1.Januar.2004', '10:00', 12,4)

An den ragezeichen möchte ich gerne sozusagen nen Platzhalter haben.

Versucht hab ich bereit hier NULL zu übergeben -> Geht nicht, weil Primärschlüssel

Nen Leerstring (' ') geht nicht, bricht mit Syntaxfehler ab

Es muss doch da ne Möglichkeit geben....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie sage ich Access, dass der übergebene Wert ein Autowert ist und Access sich selbst das passende raussuchen soll.

Unter MYSQL funktioniert es mit NULL, geht bei dir aber ja nicht. Wenn man bei MYSQL anstelle von NULL einen Wert angibt wird dieser auch eingetragen und kein Autoinc-Wert genommen. Da bei Access ja alles anders is ;) probier es doch einfach mal indem du als Wert 0 oder 1 oder so vorgibst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

wie wäre es denn, wenn du die id doch selber einträgst.

denke mal, dass sie fortlaufend automatisch vergeben wird, also trage dort einfach den höchsten id wert + 1 ein:

insert into table values ((select max(id)+1 from table), '1.Januar.2004', '10:00', 12,4)

also unter oracle klappt es einwandfrei.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jo wie gesagt wenn man die Feldnamen exklusive des Autowert Feldes mit übergibt, dann gehts .. naja, eine Variable mehr in der Config Datei :rolleyes:

Wenn du die Autowertspalte nicht mit angiebst versuchst du ja auch nicht in das Autowertfeld was reinzuschreiben... Natürlich geht es so, sonst währe es ja unmöglich in Tabellen mit Autowert was rein zuschreiben....

Grüße

mme

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...