Welcome Guest, you are in: Anmelden

CP Wiki

RSS RSS

Navigation



  1. Administration

Suche im wiki
»
 » Startseite » netFrame als Plattform Menü » Globale Methoden | » Erweiterte Suche

netFrame-Syntax:
function
systemdbfull: string;

Beschreibung:
Die Funktion systemdbfull liefert den kopletten Eintrag wie man aus der Mandaten DB
auch zusätzlich die Daten aus der System-DB abfragen kann.
Das heisst wir bekommen hier den Eintrag in folgender Form: (Servername.Datenbankname.)
Diese Vorgangsweise ist aber veraltet und wird nicht mehr verwendet.
Die neue Vorgangsweise verwendet einen eingerichteten Linked Server.
Dieser Linked Server muss den Namen NETFRAME_SYSTEM haben und die System DB muss den Namen netFrameDev haben.
Leider können wir nicht einen Alias auf den DB Namen erstellen im SQL Server 2000.
Die neue Vorgangsweise hat auch den Vorteil das wir Datenbank übergreifende Abfragen
auch in gespeicherte Prozeduren machen können.

Beispiel alte Methode:

procedure load_functions(obID: string);
begin
   TableFunction.setStringParam('OB_ID', obID); //Der Tabelle die Objekt ID als Parameter übergeben
   //message_dlg(systemdbfull+'NET_NS_FUNKTION');
   //Hier wird jetzt der voll qualifizierte Name auf die Tabelle in der System Datenbank übergeben
   TableFunction.setstringparamnoquot('SYSTEM_FUNCTION_TABLE', systemdbfull+'dbo.NET_NS_FUNKTION');
   TableFunction.readdata;
   GridFunction.setFocus;
end;


Beispiel in SQL mit Verweis in die System DB:

Mit dieser SQL Anweisung holen wir uns jede Ausstattung , die den Prozess 3, also Prüfungen hat und die eine bestimte Funktion zugeordnet hat wie z.B. Feuerlöscher Warter. Dann wird anhand der bestehenden Wartung die nächste Wartung ermittelt DECLARE @OB_ID AS varchar(36) DECLARE @prozessNummer AS integer DECLARE @funktionNr AS integer DECLARE @filter_on AS integer SET @OB_ID = :OB_ID SET @funktionNr = :FU_NUMMER SET @prozessNummer = $GLOBAL_AUSSTATTUNG_PROZESS_PRUEFUNG SET @filter_on = :FILTER_ON zum Testen der Anweisung SET @OB_ID = '72157940-BF3D-4222-B784-655EFE12F0E1' SET @funktionNr = 11653 SET @prozessNummer = 2 Holen wir uns die zugeordnete Ausstattung SELECT az.*, Diese Unterabfrage berechnet die nächste fällige Wartung für die aktuelle Ausstattung ( SELECT ISNULL(DATEADD(month, intervall.IVP_INTERVALL, MAX(IDP_DATUM)), intervall.IVP_ERSTE_FAELLIGE_PRUEFUNG) FROM NET_INTERVALL_PRUEFUNG intervall LEFT OUTER JOIN NET_INTERVALL_DETAIL_PRUEFUNG intd ON (intd.AZ_ID = az.AZ_ID) WHERE intervall.AZ_ID = az.AZ_ID GROUP BY intervall.IVP_INTERVALL, intervall.IVP_ERSTE_FAELLIGE_PRUEFUNG ) AS NAECHSTE_PRUEFUNG FROM NET_AUSSTATTUNG_ZU az Verbinden wir uns mit der Ausstattung aus der System DB INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_AUSSTATTUNG ast ON (az.AU_ID = ast.AU_ID) Verbindung wegen dem Prozess INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_AUSSTATTUNG_FUNK_ZU afp ON (afp.AU_ID = ast.AU_ID) INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_PROZESS prz ON (afp.PZ_ID = prz.PZ_ID AND prz.PZ_NUMMER = @prozessNummer) Verbindung wegen der Funktion INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_AUSSTATTUNG_FUNK_ZU aff ON (aff.AU_ID = ast.AU_ID) Einschränken auf die Funktionsnummer, sonst bekommen wir für jede zugeorndete Funktion bei der Ausstasttung einen Datensatz Jedes Objekt wird nach seiner Funktion geplegt. INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_NS_FUNKTION fuk ON (aff.FU_ID = fuk.FU_ID AND fuk.FU_NUMMER = @funktionNr) Mit dieser Beziehung wird jetzt noch überprüft ob auch die Funktion den betreffenden Prozess zugeordnet hat. Nur dann Kann der Prozess gewartet werden. INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_PROZESS_FUNK_ZU pfz ON (pfz.FU_ID = fuk.FU_ID) INNER JOIN NETFRAME_SYSTEM.netFrameDev.dbo.NET_PROZESS prz2 ON (pfz.PZ_ID = prz2.PZ_ID AND prz2.PZ_NUMMER = @prozessNummer) -------------- -------------- WHERE az.OB_ID = @OB_ID Nur Ausstattung vom Objekt holen AND az.EH_ID IS NULL AND (@filter_on = 0 OR AZ_INAKTIV = 0) ORDER BY NAECHSTE_PRUEFUNG

ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.