Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Autowert bei Create Table





Frage

Hallo, ich habe ein Problem mit den Datentypen. Beim erstellen einer Tabelle in einer Access DB benötige ich in der id Spalte einen Autowert ??!!?? Nun meine Frage, wie stelle ich von ASP aus den Datentyp bei Create Table auf Autowert ??? Eddi

Antwort 1 von twoface

Eigentlich ganz einfach Du erstellst eben in einer Variable deinen SQL-Code.
Der heißt: Create Table [tabellenname]( [Feld1 Typ(größe)],[Feld2 Typ(größe)], [Feldname in der du die ID speichern willst] int IDENTITY (1, 1) NOT NULL )
dann noch mit der Datenbank verbinden und ausführen mit *.execute (falls das nicht weißt)

hier nochmal der Typ allein:

[Spaltenname] int IDENTITY (1, 1) NOT NULL

Viel Glück, hoffe es hilft Dir weiter :)

Antwort 2 von Eddi

Hallo,

vielen Dank für die schnelle Hilfe.
Leider besteht das Problem aber immer noch. Ich erhalte trotzdem einen Syntaxfehler.

set con = Server.createObject("ADODB.Connection")
con.Open verbindung
sqlstring = "CREATE TABLE test (id int IDENTITY (1, 1) NOT NULL)
con.Execute(sqlstring)
con.Close
set con = Nothing
...

Klappt nicht

Antwort 3 von twoface

Hallo nochmal!

Tut mir leid das es nicht funktioniert hat. Das hab ich jetzt schon auf zwei Seiten gelesen. Habs jetzt auch selber mal getestet, und bei mir gehts auch nicht. Und in der gesamten onlineHilfe von MSAccess stehts auch nicht drin. Jetzt weiß ich selber nicht mehr, sorry.

Dachte wirklich das das geht, klingt so logisch. Hab aber eine alternative:

CREATE TABLE Test (Id INT PRIMARY KEY);

Du hast zwar keinen AutoWert, aber wenn die ersten Datensätze 1, 2, 3 haben, schreibt Access automatisch in die nächstan Datensätze zahl + 1, d.h. er erhöt den wert jeweils um 1. Ich hoffe das hilft wenigstens weiter.

Ansonsten, ich schau mich mal weiter um, wenn ich was weiß schreib ichs hier rein!

Greetings Twoface

Antwort 4 von Eddi

Hallo Twoface,

ich hab das getestet, hat auch funktioniert aber nur einmal (von 3 nach 4) danach bringt er wieder fehlermeldungen. Macht aber nichts, denn durch deinen Tip ist mir eine andere Lösung eingefallen.
Ich zähle vorher die Menge der Datensätze und erhöhe dann beim schreiben den ID-Wert um 1.
So komm ich mal eine weile lang klar.
Ich darf jetzt aber keine Datensätze mehr löschen, sonst klappt das ganze nicht mehr.
Ist aber schon traurig das weder in ASP-Büchern noch in Access Büchern eine Lösung dafür steht, hab nämlich auch schon alles durchsucht.

Vielen Dank für deine Hilfe.

Gruss Eddi

Antwort 5 von webwolfi

hi eddi,
hate ein ähnliches problem, habe auch erst daran gedacht, die datensätze zu zählen und dann um eins zu erhöhen, bis sich das von dir erwähnte löschproblem stellte.
die lösung ist eigentlich einfach: du ordnest nach nummer, liest die nummer des letzten datensatzes aus und erhöhst um eins.

dann brauchst du nur mehr vorkehrungen treffen, damit der letzte datensatz nicht gelöscht wird. auch da gibts lösungen, die sind aber etwas komplizierter...

liebe grüße, webwolfi

Antwort 6 von webwolfi

du kannst natürlich auch die nächste freie datensatznummer irgendwo in der db ablegen.

hab ich vergessen zu erwähnen
webwolfi


Antwort 7 von Axel Müller

Hallo habe die Fragestellung gelesen.
Bei mir funktioniert es so..
1. Befehl
Create Table <tabelle>
2. Befehl
alter table <tabelle> add column ID autoincrement,Name char(25),JaNein bit usw.


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: