PostgreSQL "function" vorhanden ? [erledigt]

Alles zum PostgreSQL-Server

Moderator: Moderatoren

PostgreSQL "function" vorhanden ? [erledigt]

Beitragvon AUGE_OHR » Di, 14. Aug 2012 5:10

hi,

ich erstelle pgDBE gerecht beim Import auch die "Trigger". Diese verwendet eine "function"
Code: Alles auswählen
cQuery := "CREATE TRIGGER " + xtab + "_isam_rowversion AFTER UPDATE ON " + ;
          xtab + " FOR EACH ROW EXECUTE PROCEDURE isam_rowversion_update()"
auf einem PostgreSQL Server der nicht per DbfUpsize.EXE "behandelt" wurde existiert aber keine solche "function".

Frage : wie kann ich "feststellen", vor dem "CREATE" ob eine "function" auf dem Server existiert ?
Zuletzt geändert von AUGE_OHR am Mo, 01. Okt 2012 21:56, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10063
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL "function" vorhanden ?

Beitragvon brandelh » Di, 14. Aug 2012 7:24

so wie du in den Systemtabellen nach indexen forschen kannst, müsste es auch eine Tabelle mit hinterlegten Funktionen geben.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13201
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: PostgreSQL "function" vorhanden ?

Beitragvon AUGE_OHR » Di, 14. Aug 2012 7:27

brandelh hat geschrieben:so wie du in den Systemtabellen nach indexen forschen kannst, müsste es auch eine Tabelle mit hinterlegten Funktionen geben.
"Systemtabellen" ... das ist das Stichwort, Danke .
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10063
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL "function" vorhanden ?

Beitragvon AUGE_OHR » Mo, 01. Okt 2012 21:55

hi,

DbfUpSize.EXE legt im System Catalog Trigger "function" an. so kann ich abfragen ob die vorhanden sind und ggf. erstellen.
Code: Alles auswählen
METHOD PGUDialog:Check_ISAM_Trigger()
LOCAL n
LOCAL aTrigger := {}
LOCAL aPGDBE   := {}
LOCAL nPosi
LOCAL cItem
LOCAL nRows

   AADD(aPGDBE,"isam_rowversion_update")  // by DbfUpSize.EXE
   AADD(aPGDBE,"isam_tablemeta_update")   // by DbfUpSize.EXE

   ::cQuery := "SELECT * FROM pg_proc WHERE proname LIKE 'isam%'"

   IF ::oPG:Exec( ::cQuery )
      ::oR_Fields := ::oPG:result
      nRows := ::oR_Fields:rows

      IF nRows > 0
         ::OutMsg( STR( nRows ) + " Trigger: " )

         FOR n := 1 TO nRows
            cItem := ::oR_Fields:GetValue( n - 1, 0 )
            ::OutMsg( cItem )
            AADD(aTrigger, cItem )
         NEXT
         ::OutMsg( CRLF, .F. )

         n := 1
         FOR n := 1 TO LEN(aPGDBE)
            cItem := aPGDBE[n]
            nPosi := ASCAN(aTrigger,{|x| x = cItem })
            IF nPosi > 0
               // found, do nothing
            ELSE
               DO CASE
                  CASE n = 1 ; ::Create_ISAM_Rowversion()
                  CASE n = 2 ; ::Create_ISAM_Tablemeta()
               ENDCASE
            ENDIF
         NEXT

      ELSE
         ::Create_ISAM_Rowversion()
         ::Create_ISAM_Tablemeta()
      ENDIF
   ENDIF
RETURN
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10063
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg


Zurück zu SQL-Server

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron