Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Dateinamen dynamisch der Excel-Verbindungszeichenfolge zuweisen

Option A

Der ConnectionString -Eigenschaft für einen Excel Connection Manager ist nicht der Ort, an dem ich die aktuelle Datei bearbeite, was im Gegensatz zu einem gewöhnlichen Flat File Connection Manager steht.

Fügen Sie stattdessen einen Ausdruck in den ExcelFilePath des Excel-Verbindungs-Managers ein Eigentum.

Theoretisch sollte es keinen Unterschied zwischen ConnectionString und ExcelFilePath geben, außer dass Sie mehr "Zeug" bauen müssen, um die Verbindungszeichenfolge genau richtig zu machen.

Stellen Sie außerdem sicher, dass Sie das Paket im 32-Bit-Modus ausführen.

Option B

Eine Alternative, auf die Sie möglicherweise stoßen, ist, dass der Entwurfszeitwert für die Verbindungszeichenfolge nicht gültig ist, sobald sie ausgeführt wird. Wenn das Paket beginnt, überprüft es, ob alle erwarteten Ressourcen verfügbar sind, und wenn dies nicht der Fall ist, schlägt es schnell fehl, anstatt mitten in der Last zu sterben. Sie können diese Validierung verzögern, bis SSIS tatsächlich auf die Ressource zugreifen muss, und Sie tun dies, indem Sie DelayValidation festlegen Eigenschaft auf True. Diese Eigenschaft ist überall in SSIS vorhanden, aber ich würde damit beginnen, sie zuerst im Excel-Verbindungs-Manager festzulegen. Wenn dies immer noch den Paketvalidierungsfehler auslöst, versuchen Sie, die Verzögerungsvalidierung des Datenflusses ebenfalls auf wahr zu setzen.