AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ID um eins erhöhen!?!?
Thema durchsuchen
Ansicht
Themen-Optionen

ID um eins erhöhen!?!?

Ein Thema von plautzer · begonnen am 9. Dez 2004 · letzter Beitrag vom 11. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#1

ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:21
HI,

Ich habe mal wieder zu Delphi zurückgefunden und arbeite an einem neuen programmm.
Was mich auch wieder vor neue Probleme stellt. Ich muss mich also erst einmal wieder reinfitzen und hoffe das ihr mir ein bizzl helfen könnt.

Folgendes Problem:

Nachdem ich einen Namen in der Combobox ausgewählt habe, lassen ich mir die anderen daten der person in einem neuen fenster anzeigen.
- Soweit kein Problem -
Ich möchte nun eine neue Person anlegen, dabei soll die ID automatisch um eins erhöht werden und gleich im Feld nr angezeigt werden.
Ich weiß, dass es in der tabelle automatisch per autoinc um eins erhöht wird, aber erst wenn ich das ganze speichere! oda?, es soll aber gleich angezeigt werden, auch wenn noch keine anderen daten drin sind.

What to do?

Thx,

Plautzer
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:25
Hi plautzer,
ich würde in der DB schonmal einen Datensatz anlegen, bevor ich die Daten des Users ablege. Nach der Eingabe der Daten akualisierts du dann die DB. Einfach die ID des letzens Datensatzes um 1 erhöhen ist bei Datenbank-Anwendungen immer schlecht.
In der Zwischenzeit kann ein anderer Benutzer ja schon einen weiteren Datensatz angelegt haben. Die IDs würden in diesem Fall nicht mehr stimmen.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#3

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:40
So etwas habe ich mir auch schon gedacht, ich weiss bloß wie ich das umsetzen kann!

Delphi-Quellcode:
DM.Query.Close;
DM.Query.SQL.Clear;
DM.Query.SQL.Add('insert into haus.db;'); // wie erhöe ich nun die id um eins`? funzt das automatisch?
DM.Query.open;
THx,


plautzer
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:45
das kommt drauf an, wie du die DB aufgebaut hast, wenn das Feld ID auf automatic increase (oder so ähnlich ) steht, dann musst du dich darum nicht kümmern. Falls es noch nicht so ist solltest du das ändern.
In meinen Augen ist es wesentlich sinnvoller soetwas von der DB verwalten zu lassen. Das hat den Vorteil das du nie die gleiche ID hast.
Auch wenn zwischenzeitlich Datensätze gelöscht werden wird die ID weiter erhöht.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:48
Hi!

Zitat von Chris1986:
das kommt drauf an, wie du die DB aufgebaut hast, wenn das Feld ID auf automatic increase (oder so ähnlich ) steht
Ein solches ID-Feld sollte auf AutoIncrement stehen. Je nach verwendeter DB hat man da mehrere Auswahlmöglichkeiten.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#6

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:52
Ich habe das feld ID als zähler definiert, also wird es automatisch erhöht.

Ich weiß nur nicht wie da der SQL-COde der query aussehen soll, wenn ich schon einen Datensatz mit Nullwerten anlegen soll.

plautzer
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 20:52
Zitat von fkerber:
Hi!
Ein solches ID-Feld sollte auf AutoIncrement stehen
So heißt die Eigenschaft, genau

Edit:
@ Plautzer: schreib doch einfach einen Leerstring in irgendein Feld, das sollte nicht das Problem sein
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: ID um eins erhöhen!?!?

  Alt 9. Dez 2004, 21:41
Besser gleich anständige Datenbank verwenden. Ich empfehle Interbase. Dann in DB einen Before Insert Trigger anlegen und basta ist.
Gruß
Hansa
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#9

Re: ID um eins erhöhen!?!?

  Alt 10. Dez 2004, 07:44
Guten Morgen,
den Datensatz schreibst Du einfach mit einem Insert in die DB, in dessen Values-Bereich das ID Feld nicht enthalten ist.

DB-Struktur ID, F2, F3

insert into Tab(F2,F3) values (1,2) Das eigentliche Problem ist nun herauszufinden, welche ID von der DB vergeben wurde. Bei MSSQLServer kann man danach die Variable @@Identity abfragen. Access ab Version 2000 kann das auch. Sollte die DB dies nicht unterstützen, muß Du den erstellten Datensatz wieder einlesen, d.h. eines der anderen Felder muß ebenfall "unique" sein , weil dies sonst nicht möglich wäre.

Viel Erfolg.
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#10

Re: ID um eins erhöhen!?!?

  Alt 10. Dez 2004, 16:43
@hansa

was ist der unterschied zwischen BDE und Interbase?
Ist Interbase ebenfalls so einfach zu bearbeiten?
Noch bin ich am begin meines Programmes also könnte ich mich noch umentscheiden.

---

Frage zum speichern:

ich habe es nun hinbekommen mit der Erstellung des neuen datensatzes,
wenn der jetzt nicht nochmal gespeichert wird, soll wieder gelöscht werden.
Das bekomme ich noch hin, ich weiss bloß nicht wie ich ermitteln kann ob etwas eingegeben und noch nicht gespeichert wurde, damit ich dann eine meldung vorm schließen erscheinen kann.

Jm. ne idee?

Plautzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:47 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