Welcome
Guest
, you are in:
<root>
•
Anmelden
CP Wiki
Navigation
¶
CP Solutions
Startseite
domizil+
Startseite
Administration
Administration
Neue Seite
Alle Seiten
Kategorien
Navigations-Pfade
Datei Manager
Neuer Benutzer
Suche im wiki
»
Zurück
function systemdbfull: string
Modified on 05/05/2009 13:26
by Manuel Siebert
Categorized as
Nicht kategorisiert
((([image| |http://www.cp-austria.at/website/DesktopModules/Wiki/images/Home.gif|MainPage] » [MainPage|Startseite] » [netFramePlattform|netFrame als Plattform Menü] » [GlobaleMethoden|Globale Methoden] | {searchbox} [Search.aspx?FullText=1|Erweiterte Suche]))) '''netFrame-Syntax:{BR} function''' systemdbfull: string;{BR} {BR} '''Beschreibung:'''{BR} Die Funktion systemdbfull liefert den kopletten Eintrag wie man aus der Mandaten DB{BR} auch zusätzlich die Daten aus der System-DB abfragen kann.{BR} Das heisst wir bekommen hier den Eintrag in folgender Form: (Servername.Datenbankname.){BR} Diese Vorgangsweise ist aber veraltet und wird nicht mehr verwendet.{BR} Die neue Vorgangsweise verwendet einen eingerichteten Linked Server.{BR} Dieser Linked Server muss den Namen '''NETFRAME_SYSTEM''' haben und die System DB muss den Namen '''netFrameDev''' haben.{BR} Leider können wir nicht einen Alias auf den DB Namen erstellen im SQL Server 2000.{BR} Die neue Vorgangsweise hat auch den Vorteil das wir Datenbank übergreifende Abfragen{BR} auch in gespeicherte Prozeduren machen können.{BR} {BR} '''Beispiel alte Methode:'''{BR} {BR} {{{{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;}}}}{BR} {BR} '''Beispiel in SQL mit Verweis in die System DB:'''{BR} {BR} <code lang="sql"> -- 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 </code>
ScrewTurn Wiki
version 3.0.1.400. Some of the icons created by
FamFamFam
.