SSIS: The For Each File enumerator is empty - ssis

I have a package I created that runs fine in Visual studio.
The package uses a for each file loop and the variable points to a folder like this:
C:\Users\Desktop\Folder\
However, once I deploy the package on SSMS, when I execute the package I get the following error:
Foreach File in Folder:Warning: The For Each File enumerator is empty.
The For Each File enumerator did not find any files that matched the
file pattern, or the specified directory was empty
Why do I get this warning in SSMS, but in VS it runs fine?
Note: The SQL Server is not hosted on my local machine.

If you use a local path to the folder, like this
C:\Users\Desktop\Folder\
Then when you run the package on the SQL Server, the files need to be in that LOCAL PATH on the SQL Server.
When you run it in Visual Studio, it looks for the files in the local path on your machine.

Related

File System Move File doesn not work but Script Task System.IO does

I have an SSIS Package that as part of the process uses a File System Task to move a file to an archive folder.
The Source is a variable from a For Each Loop. The Destination is a File Connection with the connection string set to a Variable. The variable is static assigned in dev, and pulled from a package config when deployed.
Everything works in VS in the dev environment. I deploy to SQL Server and schedule with a SQL Job. Job fails. Immediately, I think it's a permissions issue but my Proxy has Modify to the destination and read on the source.
I then rewrite the package so the move file is done in a script task using system.io. Deploy that and it works with the same proxy account on the job, so it's not a permissions issue.
I'm happy it works, but want to know why it failed before.
The error I got when it failed was, "File or Directory "\destinationpath" represented by connection "archiveconnectioname" does not exist."
Has anyone any ideas?

Deploy and Run SSIS package on server using batch file

I have created SSIS package on my local machine using Visual Studio 2012 and SQL Server 2012 and it is working properly. Now I want to deploy it on Server and Run the package using a batch file on the server
So can you please provide steps on how to deploy and then Run it using a batch file on a server
you can create a batch file using the dtexec.exe command line tool.
Eg create a text file:
<dir of dtexec>/dtexec /F<dir of Package>/package.dtsx
Save as a Batch (.BAT) file.
Edit below command to update package path and package name. Copy the modified code to notepad and save as .bat file and your batch file is ready.
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /File "PackagePath\PackageName.dtsx"
my problem has been solved...
the actual problem of getting this Error: 2018-08-30 07:37:43.57 Code: 0x00000001 Source: Script Task Description: Exception has been thrown by the target of an invocation. End Error was on server Renci.SshNet is not working..
On SQL Server 2017 you can go to:
"C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\DTExecUI.exe"
And then run this. If you saved the file locally, then choose file system and then wherever the .dtsx file is saved(or you can simply go to the .dtsx file and double click on it)
If you saved it on the server, type in the server name and type of authentication with the user name/password if needed and then browse for the package and select it.
Then click the "Execute" Button. Done.
Check to see if there is a UI version of the DTExec on 2012.

Using mysql from Perl in an Azure web app

I am using Azure to host a site which uses Perl and MySql. I have placed all my Strawberry perl files in the bin folder. I connect to Perl by adding a handler to the Perl executable which is located on my web app in d:\home\site\wwwroot\bin\perl\bin\perl.exe.
I can run simple Perl programs ok. However when I try to run a Perl script which connects to a MySql database I get the following error:
install_driver(mysql) failed: Can't load 'D:/home/site/wwwroot/bin/perl/vendor/lib/auto/DBD/mysql/mysql.xs.dll' for module DBD::mysql: load_file:The specified module could not be found at D:/home/site/wwwroot/bin/perl/lib/DynaLoader.pm line 193.
However mysql.xs.dll exists in that location. I have also copied into the same folder as mysql.xs.dll the file libmysql_.dll which I read somewhere was a dependency of mysql.xs.dll.
The datasource I am trying to get to looks like this:
my $data_source = "DBI:mysql:$database:$hostname";
I am using the same code and binary files as handlers for Perl in my local IIS so I think all the files needed are there in my bin folder.
What else can I try?

SSIS 2012 File Paths

I am using SSIS 2012 to perform a couple basic tasks. The issue I am having occurs in both a Process Execute task and a Flat File connection. When developing the file is local, but I am using an expression to replace the file directory once deployed. I have the files, which are a CSV and a BAT file in the "Miscellaneous" folder.
I would like to be able to reference the relative path of the files rather than an explicit directory on my computer. This would also prevent other developers from having to stage the files locally before being able to even validate the package.
Try using Project Parameter as your folder path.. and use it in your expression Something like
#[$Project::FileLocation] +#[User::FileName]

SSIS Deployment/Setup issue

I have an SSIS 2008 Package that imports some data and then writes out a text file to a local folder on the computer. Everything built, deployed and installed fine, and in my XML configuration file I have a property to set the location of the local folder. I also use an operating system Environment Variable to redirect the location of the XML Configuration file at run time. On my development machine I set the drop-off folder location to C:\Temp, but on the target computer I want this drop-off folder set to E:\SSIS\FileDropOff and I make that configuration setting change at install time. The setup for everything looks fine to me, configuration file looks ok, there were no warnings or errors in the validation check at install time, the Environment Variable is pointing to the right place, and the SSIS Package is installed in the SQL Server MSDB database.
The problem is when the SSIS Package runs on the target computer, it keeps writing the text file to C:\Temp. No matter what I do I can't seem to get it to write to the E:\SSIS\FileDropOff folder. It's like the SSIS Package is stuck on C:\Temp and is ignoring the the XML configuration file setting on the target machine. In the SQL Agent running the SSIS Package I even tried checking the box on the Job Step Properties screen, Data Sources tab and set the Connection String to E:\SSIS\FileDropOff and it still doesn't work.
Is there any place I could be missing where the SSIS Package is looking at C:\Temp? Could there be a cached value someplace that I am not aware of that forcing the package to stick on C:\Temp?
Thanks.
1.) Try restarting your SQL Agent Service. If I remember correctly, it caches environment variables.
2.) Try setting up a package variable and using that to set the connection string instead of the xml file directly.
I believe it's a common mistake when moving between environments (i.e., dev - test - prod) to forget to right click on your package in the new environment and select the latest XML config file. So what's happening is your package is still looking at the old XML config file. You need to right click, and choose to browse and open the one intended for the specific environment.
Make sense?
If you didn't do this you may have unintentionally overwritten your config file.