Jump to content

Faraday

Members
  • Gesamte Inhalte

    1
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Faraday

  1. Hallo Community,
     
    Ich habe eine Prozedur, welche unter anderem einen Pfad und einen Dateinamen in eine Tabelle schreibt. Hier ein Auszug:
     
     

    DECLARE
    
    --
    
    @FIRMA INTEGER, 
    @BATYPE CHAR(1),
    @BANUMMER VARCHAR(15),
    @LFDNR INTEGER,
    @DOCDIR VARCHAR(254),
    @DOCTYPE INTEGER,
    @DOCNAME VARCHAR(254),
    @DOCINFO VARCHAR(254),
    
    INSERT INTO BAKDOKS (
    FIRMA, BATYPE, BANUMMER, LFDNR,
    DOCDIR, DOCTYP, DOCNAME, DOCINFO)
    --
    SELECT
    FIRMA, BATYPE, BANUMMER,
    -- LFDNR
    '1',
    -- DOCDIR
    'c:\temp', '1',
    -- DOCNAME
    (BANUMMER +'-astl.pdf'),
    -- DOCINFO
    'Stückliste'
    --
    
    FROM BAKOPF
    WHERE ISNULL(LTRIM(RTRIM(BANUMMER)),'') <> ''
    AND NOT EXISTS(SELECT * FROM BAKDOKS WHERE BAKDOKS.FIRMA = BAKOPF.FIRMA AND BAKDOKS.BANUMMER = BAKOPF.BANUMMER AND BAKDOKS.LFDNR = 1)
    
    

     
    Nun möchte ich allerdings diese Werte nur in die Tabelle BAKDOKS schreiben, wenn der Pfad inkl. Dateiname ('c:\temp\' + BANUMMER + '-astl.pdf') auch tatsächlich existiert (!).
     
    Zur Prüfung, ob ein Pfad existiert habe ich folgenden Ansatz gefunden:
     

    DECLARE @datei_vorhanden int 
    EXEC master..xp_fileexist 'c:\winnt\notepad.exe', @datei_vorhanden OUTPUT 
    IF @datei_vorhanden = 1 
    PRINT 'Datei existiert' 
    ELSE 
    PRINT 'Datei existiert nicht.'
    


     
    Leider weiß ich nicht, wie ich das in mein Statement einbauen kann. Ein EXEC im Where-Clause ist nicht möglich, soviel ich weiß.
     
    Kann jemand helfen?
     
    Danke :-)
     
     
    Gruß
     
    Faraday
     

×
×
  • Neu erstellen...