AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Indexfeld mit auto_increment in ACCESS-DB?
Thema durchsuchen
Ansicht
Themen-Optionen

Indexfeld mit auto_increment in ACCESS-DB?

Ein Thema von Leon de Bar · begonnen am 15. Okt 2004 · letzter Beitrag vom 17. Okt 2004
Antwort Antwort
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#1

Indexfeld mit auto_increment in ACCESS-DB?

  Alt 15. Okt 2004, 11:54
Hi Leutz,

der Leon braucht schon wieder hilfe. Im Board habe ich nicht das gefunden was ich glaube zu suchen...:

ich erstelle eine mdb in access. nun will ich in einer tabelle ein feld namens ID erstellen - soweit kein problem. es soll aber automatisch den wert um eines nach oben setzen. In mySQL ist das ID int not null auto_increment..... nun bei access klappt das nicht. hat jemand eine lösung parat?

und noch eine frage damit ich nicht immer als volldepp da stehe... wie oder wo bekomme ich die DB- oder Tabellen steuerungsbefehle - wie diesen gesuchten hier - von access her?

thx Leon.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 15. Okt 2004, 14:07
Versuch's mal so:
SQL-Code:
CREATE TABLE Test(
id counter,
blabla varchar(40)
);

CREATE INDEX PK_TESTID ON Test(id) WITH PRIMARY;
Der Datentyp Counter entspricht deinem Autoincrement, die zweite SQL-Anweisung erzeugt den PrimaryKey mit Namen PK_TESTID für die Tabelle Test mit dem Feld id.

Grüße
mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 15. Okt 2004, 15:44
okay, danke. habe noch eine andere lösung gefunden die funktioniert (ich weiß nur nicht genau was es macht)...

CREATE TABLE ID ('ID AUTOINCREMENT(1,1), Mitliedsnummer TEXT(14);

Schätze der autoincrement wird auf 1 gesetzt und zählt immer um 1 hoch???

Ich habe aber noch ein ganz anderes Phänomen...

wenn ich meine tabellen erstelle, dann erstellt er mir nur 6 von 12 tabellen. Das system ist immer gleich... zu erst hat er mir gesponnen wenn ich INT(x) eingegeben habe (x=Anzahl der Stellen). ich habe daraufhin alles weggenommen und nun klappt es bis zur 6. tabelle... jemand ne idee?
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 15. Okt 2004, 20:35
der fehler ist gefunden.

was ich nur nicht verstehe ist, warum ich bei INT keine werte setzen darf? Sobald ich INT(x) setze ranzt der compiler ab...

hat jemand ne lösung oder erklärung?

thx.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 16. Okt 2004, 06:26
Zitat:
was ich nur nicht verstehe ist, warum ich bei INT keine werte setzen darf?
Access kennt eben keine Einschränkung auf die Anzahl der Stellen, die eine Integer-Variable haben darf, sondern gibt über den Integer-Typ die Größe des Wertebereichs vor. Access besitzt vier Integer-Typen:

Byte oder Integer1: entspricht einem Byte bei Delphi (-2^7 - 2^7-1)
Counter Autonumber: entspricht einem LongInteger = 32 Bit Integer, Autoincrement (1 - 2^32)
Short oder Integer2 oder Smallint: entspricht einem Integer = 16 Bit Integer (-2^15 - 2^15-1)
Long oder Int oder Integer oder Integer4: LongInteger = 32 Bit Integer (-2^31 - 2^31-1)

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 16. Okt 2004, 17:32
@mikhal:

danke für diese information. da ich ein wenig neu in der materie bin frage ich gleich noch einmal dumm nach. kannst du mir das mal genauer erläutern was deine vier integer-aufzählungen genau bedeuten?
interessant ist für mich, in wie fern ich dieses wissen - wenn ich es dann habe - für access anwenden kann... ich meine sind das dann andere variablenbezeichnungen oder läuft alles unter INT???

wenn das zu dumm gefragt ist, dann bin ich auch über eine referenz zu diesem thema glücklich...
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 17. Okt 2004, 09:01
Das Sind alles eigenständige Bezeichnungen, die eben für eigene Wertebereiche gelten.

Inwieweit du selbst eine Diffenrenzierung durchführst, bleibt dir überlassen, ich persönlich verwende ausschließlich den Bezeichner Integer für eine Ganzzahl und Counter für die Generierung eindeutiger Zahlen (eben das Autoincrement), die ich für Primary Keys benötige. Mich interessiert eigentlich selten, ob der Wertebereich der erfaßten Daten sich im Bereich von -128..127 (8-Bit Integer) oder -32768..32767 (16-Bit Integer) oder -2147483648..2147483647 (32-Bit Integer) oder 0..4294967295 (32-Bit Cardinal = Autoincrement = Counter) bewegt. Ich verwende einfach den größten angebotenen Wertebereich der Datenbank.

Du solltest dir in diesem Zusammenhang mal die Hilfe von Access, so du sie besitzt, zu Gemüte führen, da steht eigentlich alles drin, was du zu diesem Thema benötigst

Dein Konstrukt zur Erzeugung der Tabelle
Zitat:
CREATE TABLE ID ('ID AUTOINCREMENT(1,1), Mitliedsnummer TEXT(14);
erzeugt zwar, wie du sagst ein Datenfeld ID als Autoincrement-Feld, aber du legst damit noch nicht fest, daß dieses Datenfeld auch der Primary Key deiner Tabelle sein soll. Dazu solltest du dir CREATE INDEX Zeile anschauen, die ich bei meinem Beispiel dazugepackt habe, erst damit wird der Constraint Primary Key und der dazu gehörende Index angelegt.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Indexfeld mit auto_increment in ACCESS-DB?

  Alt 17. Okt 2004, 10:28
Super, danke für die Ausführungen. danke auch noch mal für den hinweis zur index. ich habe ihn wohl gelesen in deinem quellcodebeispiel aber bis dato noch völlig vergessen ;o)

Leon.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz