AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Primarykey, wie vergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Primarykey, wie vergeben

Ein Thema von BenjaminH · begonnen am 16. Sep 2006 · letzter Beitrag vom 18. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#1

Primarykey, wie vergeben

  Alt 16. Sep 2006, 18:46
Datenbank: Firebird Embedded • Version: 1.5.3 • Zugriff über: IBX
Nach welchen Kriterien soll ich beim erstellen eines neuen Datensatzes den PrimaryKey vergeben?
Oder kann ich in der Datenbank einstellen, dass das automatisch passiert?

Am einfachsten dachte ich es mir so, dass ich den höchsten Suche und einfach eins dazu zähle.
Aber mit welcher Abfrage finde ich am effizientesten den höchsten PK?

Viele Grüße
Benjamin
Benjamin
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#2

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 18:48
Was benutzt du denn als PrimaryKey? Falls es eine Laufende Nummer oder GUID sein soll, mach dich mal über Trigger und Generatoren schlau. Die können als Gespann nämlich automatisch den PrimarayKey vergeben, ohne dass man sich drum kümmern muss
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:04
Addiert ein Generator generell 1 dazu?
irgendwie hab ich das jetzt so verstanden, weil man bei IBExpert immer nur den Namen und den Startwert angeben kann.
Trigger scheinen mir ein sehr mächtiges Werkzeug zu sein, ich glaube damit kann ich noch ein paar nette Sachen machen.

//Edit
Ich hab jetzt den Generator und Trigger nach bestem Gewissen erstellt und bekomme trotzdem dauernd die Meldung "Feld 'PRIMARYKEY' muss einen Wert haben."
Benjamin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:15
Zitat:
Addiert ein Generator generell 1 dazu?
Nein ein Generator addiert nichts sondern ist die variable, die den nächsten Wert enthält. Um vieviel erhöht wird kann man in GEN_ID() angeben
Zitat:
irgendwie hab ich das jetzt so verstanden, weil man bei IBExpert immer nur den Namen und den
Zitat:
Startwert angeben kann.
dito
Trigger scheinen mir ein sehr mächtiges Werkzeug zu sein, ich glaube damit kann ich noch ein paar nette Sachen machen.
Wie der name schon sagt, werden sie automatisch bei einem bestimmten Ereignis aufgerufen. Die Erhöhung eines Generators ist nur eine Anwendung. das Verhindern oder Loggen von Datenmanipulationen eine andere.
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:16
Zitat:
Ich hab jetzt den Generator und Trigger nach bestem Gewissen erstellt und bekomme trotzdem dauernd die Meldung "Feld 'PRIMARYKEY' muss einen Wert haben."
Wie setzt du den Wert? Du darfst den Key nicht setzen.
Markus Kinzler
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:21
ich setze ihn garnicht, d.h. ich habe ein TDBText
Aber sonst wird nirgends speziell auf den Primarykey eingegangen.
Benjamin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:22
Und mit aws ist der DBText verknüpft?
Markus Kinzler
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:25
Mit dem DataSource in den auch eingefügt wird
//Edit
Ich habe jetzt versucht die DBText-Komponente
beim Post und beim ApplyUpdate und beim Insert zu deaktivieren, den Fehler gibts jedesmal trotzdem.
Benjamin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:35
Ist die TDBText ( über die dataSource) an eine TTable oder eine TQuery-Komponente gebunden?
Markus Kinzler
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Primarykey, wie vergeben

  Alt 16. Sep 2006, 19:44
An TTable, aber ich glaube ich habs jetzt erledigt.
Ich hab das "Not Null" des Feld des Primarykeys deaktiviert, damit müsste Delphi meine Befehle durchlassen.
Und NULL wird es trotzdem nie, da der Trigger sich ja darum kümmert.

//Edit
mh, jetzt ist dann, bis ich das Programm Neustarte der PK leer, wie kann ich dafür sorgen, dass die Datenbank das synchronisiert?
Benjamin
  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 04:42 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