Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Hilfe bei Nummernvergabe (https://www.delphipraxis.net/48954-hilfe-bei-nummernvergabe.html)

StoRmtec 3. Jul 2005 09:02

Datenbank: Interbase • Version: 7.5 • Zugriff über: Mit der IBx

Hilfe bei Nummernvergabe
 
Hy @all

Ich bräuchte wieder mal eine Hilfe von euch.

Habe ein Programm geschrieben für einen Inventaranlage für uns in der Firma.
Also das Programm ist zum Anlegen der Inventarnummer für die ganzen PC-Sachen.
Also es ist drinnen mal die Inventarnummer, raum, abteilung, ....

Wenn ich jetzt zB: eine Inventarnummer eingebe bekomme ich die von der
Buchhaltung also bei der komme ich eh nicht weg. Aber wenn ich jetzt eine
eigene Nummer machen möchte die nicht in der Buchhaltung eingetragen werden
dann möchte ich das ich die Zahl automatisch bekomme.

Ich habe eine CheckBox eingebaut und wenn ich zB: die aktiviere dann soll
er mir die nächste GWG0000001 -> GWG0000002 Nummer hineinschreiben.
Kann mir da vielleicht wer helfen wie er dann zu der Nummer kommt.

mfg
StoRmtec

marabu 3. Jul 2005 09:24

Re: Hilfe bei Nummernvergabe
 
Hallo StoRmtec,

es ist eine gute Idee, wenn du einen eigenen informationsfreien Primärschlüssel für deine Inventartabelle vorsiehst, der unabhängig von dem Schlüssel der Anlagenbuchhaltung ist. Der Präfix GWG sollte nicht in der Datenbank gespeichert werden. Du speicherst besser nur die fortlaufende Nummer, die du dir von einem Geneartor verwalten und über einen Trigger zuweisen lässt. Den Präfix kannst du bei der Ausgabe immer davor steuern.

Grüße vom marabu

StoRmtec 3. Jul 2005 09:26

Re: Hilfe bei Nummernvergabe
 
Hallo

Danke für die Info aber wie kann ich das dann machen kannst du mir da vielleicht weitderhelfen.
Da ich noch nicht so viel mit Datenbanken gemacht habe.

mfg
stormtec

marabu 3. Jul 2005 09:32

Re: Hilfe bei Nummernvergabe
 
Einen Generator erzeugst du so:

SQL-Code:
CREATE GENERATOR "GEN_TBL";
Ein passender Trigger wäre:

SQL-Code:
CREATE TRIGGER "TBL_BI0" FOR "TBL"
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id = 0) then
    new.id = gen_id(GEN_TBL, 1);
end
Hilft dir das weiter?

marabu

StoRmtec 3. Jul 2005 09:38

Re: Hilfe bei Nummernvergabe
 
und das mache ich bei der checkbox dann rein oder wo mache ich das.

sorry bin noch neu in datenbank programmieren.

mfg
stormtec

kiar 3. Jul 2005 10:00

Re: Hilfe bei Nummernvergabe
 
hallo Stormtec,

der Trigger feuert bei BI also bei BEFORE INSERT, das bedeutet wenn du einen neuen Datensatz anlegst und diesen einfügen willst wird automatisch eine neue ID angelegt.

raik

marabu 3. Jul 2005 10:17

Re: Hilfe bei Nummernvergabe
 
Hallo StoRmtec,

den SQL-Code zum erzeugen von Generator und Trigger verwendest du beim Erstellen deiner Datenbank - ich mache das in IBConsole. Wenn du mit dem Trigger arbeitest, dann brauchst du dich eigentlich nicht mehr um den Schlüssel zu kümmern. Da ich aber manchmal einen Datensatz speichere und den Datensatz trotzdem weiter in Bearbeitung halten möchte, muss ich mir den generierten Schlüssel selbst besorgen und beim INSERT mitgeben.

Lies dir doch mal den thread Autowerte bei Firebird setzen durch - da sollte einiges an Information für dich drin stecken.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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