AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBNavigationBar

Ein Thema von coolstranger · begonnen am 22. Aug 2003 · letzter Beitrag vom 23. Aug 2003
Antwort Antwort
coolstranger

Registriert seit: 18. Aug 2003
40 Beiträge
 
#1

DBNavigationBar

  Alt 22. Aug 2003, 22:43
Hallo Leute und fast einen Guten Morgen!
Ich hab eine Datenbank programmiert und eine Eingabemaske für diese Datenbank. In das Eingabenmaskenformular habe ich auch ein DBNavigationbar eingebaut. ich habe mit paradox7 eine tabelle erstellt und die erste spalte (sie enthält zahlen) so eingestellt, dass sie immer pro neuen datensatz aufwärts zählen soll also 1.zeile 1 2.zeile 2 usw. wenn ich in meiner grid oder per navibar einen datensatz lösche und danach irgendwann wieder einen neuen erstellen steigt die zahl der 1.spalte immer weiter (von der stelle mit ...ich mit meiner grid oder per navibar einen datensatz lösche....)auch wenn ich vorher 10 datensätze gelöscht habe.
Ich hoffe ihr wißt, was ich meine und könnt mir helfen.
Danke
CU coolstranger
  Mit Zitat antworten Zitat
Baumel

Registriert seit: 10. Aug 2003
Ort: Wassenberg
15 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: DBNavigationBar

  Alt 22. Aug 2003, 23:06
Da ist das "normale Verhalten" diese Zählers. Das hat einige Vorteile, z.B. wenn du diesen als Zugriffschlüssel in anderen Tabellen nutzt kannst du dir recht sicher sein, dass auf die richtigen Daten zugegriffen wird.


N'Abend
Dirk
  Mit Zitat antworten Zitat
coolstranger

Registriert seit: 18. Aug 2003
40 Beiträge
 
#3

Re: DBNavigationBar

  Alt 23. Aug 2003, 09:51
Nein nein!
Das Programm ist soweit fertig. Es kommen also keine neuen Tabellen hinzu. Kann ich das irgendwie ändern, dass er wirklich immer nur ab der letzten zahl in der Tabelle an fortlaufend weiterzählt?
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#4

Re: DBNavigationBar

  Alt 23. Aug 2003, 10:26
Wenn du ein Feld nimmst, sagen wir mal ID und dieses auf Zähler stellst, wird dieser immer weiter gezählt. Selbst wenn der Datensatz einmal gelöscht wird, bleibt es dabei, das nicht die Lücke zwischen z.b. 51 und 53 sondern hinter den letzten Datensatz z.b. 93 weiter gezählt wird. Dieses Verhalten ist dazu da, um Datensätze eindeutig identifizieren zu können, z. b. um von anderen Programmen oder Tabellen darauf zu greifen zu können.
Wenn du das nicht haben möchtest, mußt du einen eindeutigen Schlüssel entwerfen, der sich nicht wiederholen darf. Für diesen Schlüssel kannst du in der Regel maximal zwei aufeinander folgende Felder an der Spitze (also die ersten Zwei) nutzen. Aber eine Kombi von Name und Vorname währe auch nicht angebracht. Denn es gibt bestimmt mehr als nur einen Klaus Meyer. Zudem du dich dann noch mit den Fehlermeldungen auseinander setzen mußt, wenn jemand versucht, einen Datensatz mit den selben Schlüssel einzugeben.
Deshalb belasse den Index lieber mit einen Zähler. Wenn du das mit einen seperaten Zähler machen möchtest, wird aber der Programmcode wahrscheinlich sehr langsam. Denn dann mußt du erst einmal die vorhandenen Löcher suchen, bevor du den neuen Datensatz einfügst. Bei 50 Datensätze macht das bei einen langsamen Arbeitspc ca. ne halbe minute aus. Je nach optimierung deines Codes.
Marco
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: DBNavigationBar

  Alt 23. Aug 2003, 10:38
Hallo Coolstranger,

was Du da beschrieben hast, ist das völlig normale Verhalten eines AutoInc-Wertes. Es werden keine Lücken gefüllt, die durch gelöschte Datensätze hervorgerufen werden.
Um die gewünschte Anzeige zu erreichen, könntest Du z.B. ein berechnetes Feld in TTable einfügen und im OnCalcFields-Ereignis den Wert der aktuellen Satznummer zuweisen.
Delphi-Quellcode:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  Table1LfdNr.Value := Table1.RecNo;
end;
  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 20:12 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