Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fortlaufende Kundennummer (https://www.delphipraxis.net/71861-fortlaufende-kundennummer.html)

xSkaschY 22. Jun 2006 07:49

Re: Fortlaufende Kundennummer
 
Naja komplette Rechnungsverwaltung mit PDF-Creation Support und so firlefax!

Der grösste Teil is ja eigentlich nur DB -> get -> write, also nicht wirklich schwer.

Ein Update auf MySQL 5 ist möglich, wobei ich nicht weiss ob meine CMF's damit laufen, da die Mirgation erst im Winter vollzogen werden soll.

Wo ich mir jedoch jetzt Gedanken mache, ist die PDF-Template Erstellung :roll:

BTW:

Delphi-Quellcode:
function TkundenAdd.nextKundennummer(kundennr: string): string;
var kdnrprefix , statement: string;
    numlenght, next: integer;
begin

    statement := 'SELECT a.value as prefix, b.value as zeros' + 
                 'FROM `'+prefix+'_config` AS a, `'+prefix+'_config` AS b' +
                 'WHERE a.name = ''kdnrprefix'' AND b.name = ''kdnrzeros''';

    formDebug.messages.Lines.Add(statement);

    mainForm.MySQLQuery.SQL.Text := statement;
    mainForm.MySQLQuery.Open;

    kdnrprefix := mainForm.MySQLQuery.FieldByName('prefix').AsString;
    numlenght := mainForm.MySQLQuery.FieldByName('zeros').AsInteger;

    next := StrToInt(RightStr(kundennr, numlenght))+1;

    mainForm.MySQLQuery.Close;

    Result := Format('%s%.*d', [kdnrprefix , numlenght, next]);
   
end;
Unelegant :duck:

Jelly 22. Jun 2006 18:59

Re: Fortlaufende Kundennummer
 
Zitat:

Zitat von xSkaschY
Unelegant :duck:

Nicht nur das... Du holst Dir mit deiner Funktion ja lediglich eine neue ID, Prefix bezogen... Aber irgendwie muss Du die aber auch wieder zurückschreiben in die Tabelle, und zwar so schnell als möglich. Zum Glück kennt MySQL im Prinzip keine Transaktionen (ausser innoDB), so dass die Vergabe der ID somit halbwegs sicher sein sollte... Aber wichtig ist eben, so schnell als möglich den neuen Record anzulegen, damit dir keine andere User dazwischen funken und die gleiche ID kriegen.

xSkaschY 23. Jun 2006 13:07

Re: Fortlaufende Kundennummer
 
Hallo Jelly,

unwahrscheinlich, da die neue Kundennummer erst vergeben wird wenn der Kunde gespeichert wird. Aber das konnte ja keine sehen, habe gehört die Glaskugeln sind, seit es das Internet gibt, sehr unzuverlässig geworden! :mrgreen:

Quasi

Delphi-Quellcode:

// @return int last_insert_id();

function saveKunde(...): integer;
var kdnr: string;
begin
   kdnr := nextKundennummer();

   // Kunde wird eingefügt (sql insert into)
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz