AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi StoredProcedure Problem
Thema durchsuchen
Ansicht
Themen-Optionen

StoredProcedure Problem

Ein Thema von DirkG · begonnen am 27. Dez 2008 · letzter Beitrag vom 28. Dez 2008
 
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#1

StoredProcedure Problem

  Alt 27. Dez 2008, 17:06
Datenbank: Interbase • Version: 6 • Zugriff über: IBX
Hallo Leute!
Wieder einmal ein Problem zwischen meinen Ohren...

Also folgendes würde ich gerne erreichen. Um ein Rechnungsnummer zu erzeugen, wurde bisher auf der Client-Seite die Nummer zusammengestellt und geprüft, ob diese noch frei ist. Die Nummer basiert auf einem Schlüssel, der wie folgt aus sieht:
Code:
yyyy mm xx
---- -- --
 |    |  |.. Laufende Nummer 01-99
 |    |..... Nummer des aktuellen Monat
 |.......... Nummer des aktuellen Jahr
Nun war meine Überlegung, das ganze durch den Server mit einer StoredProcedure machen zu lassen.
Die einzelnen Funktionen, um an die Werte zu kommen habe schon:
SQL-Code:
SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
SELECT COUNT(RNUMBER) FROM Rechnungen WHERE (RNUMBER LIKE ('yyyymm%'));
Nun das Problem. Wie bokomme ich die einzelnen Werte in den Rückgabewert der Procedure und wie stelle ich den String-Ausdruck für die letzte Abfrage zusammen? Ich hatte gedacht, es so machen zu können, aber IB hat da was dagegen:
SQL-Code:
SET TERM ^ ;

CREATE PROCEDURE MglGetNUMBER RETURNS (NEWNUMBER VARCHAR(20)) AS
BEGIN
  lyear VARCHAR(4);
  lmonth VARCHAR(2);
  lid VARCHAR(2);

  SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) INTO :lyear FROM RDB$DATABASE;
  SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) into :lmonth FROM RDB$DATABASE;
  SELECT COUNT(RNUMBER) FROM Rechnungen WHERE (RNUMBER LIKE (lyear+lmonth+'%')) INTO :lid;

  SELECT lyear+lmonth+lid INTO :NEWNUMBER;

  SUSPEND;
END
^

COMMIT WORK ^
SET TERM ;^
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
 


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:41 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