50 AS/400 Tips und Techniken Teil 3

10. November 2007 | Von | Kategorie: Tools, Hot-Tips

Der Artikel enthält 50 hochwertige Programmierer Tips. Der 9 teilige Artikel enthält Programmiertips in allen gängigen Programmier-Sprachen.

Tips und Techniken für die AS/400

Der 3. Teil der jährlichen Tips und Techniken jetzt online:
Thema: SQL

Blitz Links:
  Berechnung der Anzahl von Tagen zwischen zwei Daten in SQL/400
Sortieren und Vergleichen in SQL/400 ohne Berücksichtigung der Groß/Kleinschreibung
Plazieren von SQL/400-Objekten in Benutzer-ASPs

SQL

 

Berechnung der Anzahl von Tagen zwischen zwei Daten in SQL/400

Wenn Sie die Anzahl der Tage zwischen zwei Daten in SQL/400 berechnen möchten, sollten Sie die Daten zunächst mit der Skalarfunktion Days (Tage) konvertieren, bevor Sie die Daten voneinander subtrahieren. Days nimmt ein Datumsargument und gibt die Anzahl der Tage seit dem ersten Januar 0001 zurück.
Mit der folgenden SQL-Anweisung wird eine Tabelle erstellt, die der Tabelle in Abbildung 6 entspricht:

Select      CustID,
            OrderID,
            SaleDate,
            ShipDate,
            ( Days( ShipDate ) – 
            Days( SaleDate ) ) As DaysToShip
From        Sale
Where       ShipDate Is Not Null
Order By    CustID,
            DaysToShip Desc

Vermeiden Sie Ausdrücke wie den folgenden, der als Ergebnis eine Zeitdauer ausgibt:

ShipDate – SaleDate

Wenn in SQL/400 ein Datum von einem anderen subtrahiert wird, ist das Ergebnis eine Zeitdauer (eine achtstellige Zahl im Format JJJJMMDD). Die folgenden Beispiele zeigen die ausgegebene Zeitdauer, wenn Sie den vorherigen Ausdruck auf die Werte in der Beispieltabelle anwenden:

SaleDate      ShipDate     ShipDate – SaleDate
1996-05-01    1996-05-15   14
1996-05-01    1996-05-15   10014 (1 Jahr, O Monate, 14 Tage)

Sortieren und Vergleichen in SQL/400 ohne Berücksichtigung der Groß/Kleinschreibung

Wenn Sie die „Order-By-Klausel“ in SQL verwenden und die Reihen anhand einer Buchstabenspalte sortieren, benutzt SQL/400 eine Sortiersequenz, um festzulegen, wie die Spaltenwerte sortiert werden sollen. Diese Sequenz wird mit dem Parameter SRTSEQ in den Befehlen STRSQL (SQL starten), RUNSQLSTM (SQL-Anweisung ausführen) oder CRTSQLxxx (SQL-Objekt erstellen) festgelegt. Parameter SRTSEQ (*LANGIDSHR) bestimmt eine von der Groß- und Kleinschreibung unabhängige Sortiersequenz. Der Spezialwert *LANGIDSHR legt fest, daß die „shared weight“-Sortiersequenz für die aktuelle Sprache (festgelegt mit dem Parameter LANGID) für sämtliche Buchstabenvergleiche verwendet wird. „Schmidt“, „SCHMIDT“ und „schmidt“ gelten daher als gleichwertig.
Wenn Sie mit CRTSQLxxx ein *MODULE-Objekt erstellen, gelten die Parameter SRTSEQ und LANGID für alle SQL-Anweisungen in dem Modul. Sie können mit dem Befehl CRTPGM (Programm erstellen) ein Programm erstellen, das die SQL-Module mit verschiedenen STRSEQ- und LANGID-Einstellungen kombinieren. Wenn Sie mit dem Befehl CRTSQLxxx ein *PGM- oder *SRVPGM-Objekt in einem Schritt erstellen, gelten die SRTSEQ- und LANGID-Parameter für alle SQL-Anweisungen in dem Programm oder Serviceprogramm.
Die SRTSEQ- und LANGID-Einstellungen gelten auch für Vergleiche in Where- und Having-Klauseln. Mit SRTSEQ(*LANGIDSHR) werden mit der folgenden Anweisung alle Angestellten mit Nachnamen „Schmidt“, „SCHMIDT“, „schmidt“ oder jeder beliebigen Kombination der Buchstaben s-c-h-m-i-d-t ausgewählt:

Select *
  From Employee
  Where LastName = "schmidt"

Wenn Sie einen von der Groß- und Kleinschreibung unabhängigen SQL-Index erstellen möchten, um damit die Leistung bei einer von Groß- und Kleinschreibung unabhängigen Auswahl und Bestellung zu verbessern, müssen Sie SRTSEQ(*LANGIDSHR) für die interaktive SQL-Sitzung oder den Befehl RUNSQLSTM festlegen, den Sie für die Create Index-Anweisung verwenden.

Plazieren von SQL/400-Objekten in Benutzer-ASPs

Mit Benutzer-ASPs (Benutzer-Zusatzspeicherpools) lassen sich die Performance und die Datenbank-Wiederherstellung verbessern. Ein ASP besteht aus einer Gruppe von Zusatzspeichereinheiten, die anhand spezieller Nummern in der Systemkonfiguration identifiziert werden. ASP 1 ist der System-ASP. Sie können ASP 2 bis 16 als Benutzer-ASPs erstellen. Weitere Informationen zum Erstellen von ASPs finden Sie in den Handbüchern Backup and Recovery (SC41-5304 für V4R1), Backup and Recovery – Basic (SC41-3304 für V3R2, SC31-4304 für V3R7) und Backup and Recovery – Advanced (SC41-3305 für V3R2, SC41-4305 für V3R7).
In den ASPs können Sie sowohl SQL/400-Objekte als auch mit CL-Befehlen erstellte Objekte speichern. Die beiden wichtigsten SQL/400-Verwendungszwecke sind das Speichern einer vollständigen SQL-Sammlung in einem Benutzer-ASP sowie das Speichern der Journalempfänger für das Journal einer Sammlung in einem Benutzer-ASP.

Schlagworte: , , , , , , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.