Referring To Function Results In Connection Manager
Nov 9, 2007
Hello! My group uses scalar-valued functions to denote the FTP drives on our SQL Server 2005 database servers. This allows many (over 100) import processes to refer to that function to find the flat files they need, and if the FTP drive is changed, then only the function needs to be updated, not 100 SP's.
The function is defined this way. Currently, F: is our FTP drive:
CREATE FUNCTION [dbo].[fnFTPPath] ()
RETURNS varchar(200) AS
BEGIN
return 'f:'
END
Now the question: Can a Flat File Connection Manager be used in an SSIS ETL package that refers to the output of this function, plus the FTP folder name, so we can continue updating the FTP drive name in just one place? If so, how is this done?
Every time I move my project from my computer to the testing server I have to change the connection string references in the aspx side and in my code behind. For the code behind I declared the SqlConnection string at the top of the code-behind page for both connection strings and comment out the one not in use. Obviously I then comment out the string not in use in the WebConfig as well. Being superlatively lazy I always look for the easiest and quickest way to do most anything - connection strings included. Having to comment out strings twice brought rise to the question of whether I can refer to the connection string in the web.config file from the code-behind page. I'm sure it can be done, and I did a good amount of hunting around, but I couldn't find any examples of code that would do that. Currently, as I said above, I have two connection strings declared at the top of my code-behind. Here's an example of one:Private sqlConn As New SqlConnection("Data Source=DATABASESERVER;Initial Catalog=DATABASE;User ID=USER;Password=PASSWORD") Then, I just use sqlConn as usual in my binding without having to "dim" it in every sub:sdaPersonnel = New SqlDataAdapter(strSqlPersonnel, sqlConn) Then there's the SqlConnections set up by the wizard on the aspx side:<asp:SqlDataSource ID="sqlDataSourcePayrollCompany" Runat="Server" ConnectionString="<%$ ConnectionStrings:DATABASECONNECTIONSTRING %>" ...> And for the connection in the web.config:<add name="DATABASECONNECTIONSTRING" connectionString="Data Source=DATABASESERVER;Initial Catalog=DATABASE;User ID=USER;Password=PASSWORD" providerName="System.Data.SqlClient" /> So, what would be the code in the code-behind page to refer to the connection string in the web.config file? Thanks!
I am using SSIS 2005 on Windows 2003 server. Using Excel Source to dump the data for staging database. I am getting following error while I execute it through BI studio's execute button.
I have deployed my packages into Sql Server and I am using Configuration File. As my Data Source is Excel, I have changed the connection string during deployment with Server Path. But I am getting the following errors. Actually the File Exist in Path. May I know What is cause of the issue? Do I need to give any permission to execute the package.
SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
component "Excel Source Service Contract Upload" (1) failed validation and returned error code 0xC020801C.
One or more component failed validation.
There were errors during task validation.
DTS_E_OLEDBERROR, Error Code: 0x80004005 Source: "MS JET DB Engine" Description : Path is not valid
I am working on SQL Server 2005 (x64) with Windows Server 2003 (x64) operating system. I am having a major issue in SSIS. Here is the detailed explanation of the issue :
I have an EXCEL file in 2003 / 2007 version. It contains some data. I want to import the data using SSIS into SQL Server 2005 (x64) database table. I have taken "EXCEL FILE SOURCE" and "SQL Server DESTINATION". It was failed on importing data. Surprisingly it works fine in SQL Server 2005 (x32). Can you please explain why it is NOT woking on (x64) ?
Here is the error code i am getting:
[Excel Source [1]] Error: The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009.
I have an SSIS package that I need to modify. It was developed in Visual Studio 2005 and runs faithfully in production on SQL Server 2005. Suddenly, I can't open the package on my own workstation. I see a big red "X" image and a message stating "Microsoft Visual Studio is unable to load this document." The real reason the document can't be loaded appears to be:
Error loading DataWarehouseLoader.dtsx: The connection type "OLEDB" specified for connection manager "Warehouse Logging OLE DB" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create a connection manager for an unknown connection type. Check the spelling in the connection type name.
Does anyone know what causes this and what I can do? The package has been in production for 9 months and I've never seen this problem before.
I have a package that uses a for loop to iterate through an unknown amount of excel files and pull their data into a table. However, there will be cases when the file is corrupted or has some sort of problem so that either the transformation will fail or the excel data source will fail with an oledb connection error. Could anyone suggest a clean way to trap these errors? Specifically, the "Cannot Aquire Connection from Connection Manager", which is the excel connection.
i have a column in a report that must calculate a percentage based on two columns that follow them. I am aware that i can use the ReportItems! collection for this, but one of the columns i need to reference is actually a subreport because its data comes from a different source. It is just a single cell subreport, which makes it appear totally part of the table it is in. Is this possible? Just to be clear, what i want is an expression like this in my cell:
I use SQL Server 2012 and visual studio 2010.I created SSIS Project with task "Execute Package". Control flow view as: Package1 (execute package) -> Package2 (data flow).Data flow in Package2 view as: ADO.NET source -> ADO.NET destination.
When I started Package2, it's work. I havn't errors.But when I started Package 1 I have error "Unable to get managed connection from the Connection Manager runtime". In execution log I see that ADO.NET source produced this error on verification stage. Package failed on verification stage, not on execution stage.Why when I started Package 2 it work, but when I started Package1 (and Package1 started Package2) it failed?
Hi All, I am getting the following error if I am using the package "Transaction Option=Required" while running through Sql Job: The AcquireConnection method call to the connection manager "<connection name>" failed with error code 0xC0202009.
while I running the SSIS package on BI environment, I am getting the following error: [Connection manager "<connection name>"] Error: The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D00A "Unable to enlist in the transaction.".
I know the alternative solution is to make the "Transaction Option=Supported", but in my case I have run the whole flow in a single transaction. I came to know that this has been fixed in the service pack1(ref. to http://support.microsoft.com/kb/914375). FYI.. some time it was running successful.
I have taken all the necessary step to run the SSIS package in a distributed transaction(like the steps for MSDTC) and also created the package flow in a sequence.
I was going through the link - http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=160340&SiteID=1 but all those didn't solve my problem.
If anyone can help me it will be great. or it is a bug in SSIS?
Problem: ColA (Source) Rounding error to PARTY_NO (Destination) I have a field of text of in a flat file that the flat file connection manager Source picks up correctly €œ70000893€? However when it gets the OLE DB Connection Destination the data has changed to 70000896. That€™s before its even Written to the database. The only clue that something is wrong in the middle is the great Data viewer shows the number as 7.000009E+07 Other clues looking at the data it appears there is a rounding error on only the number that dont end in 00 ColA (Source) PARTY_NO (Destination) 71167300 71167296 70329000 70329000 70410000 70410000 Any ideas people? Thanks in advance Dave
hi all, i got the error, when i run my package after deploy into the server machine; i can able to run that package in my local machine, if i deploy it to the server or some remote machine, its not running, and rises error messages, that says cant accquire connection from the connection manager;
the problem might be with the login name and password; i could not see any password in any of my config file, or connection manager while running the package. how to resolve this problem?? please help me!
I have a child package where the ConnectionString property of a Connection Manager is set by a Parent Package Variable Configuration. I set up a script task that brings up a message box with the value of the ConnectionString property right before the dataflow task.
MessageBox.Show(Dts.Connections["CPU_*"].ConnectionString.ToString());When I run the parent package, the message box shows that the connection string is changing with every iteration, but in the dataflow it always draws the data from the same source.
The connection manager is an ADO.Net type, RetainSameConnection is set to False, and I've been researching this for days.
(Update 2/23/2015): To make this stranger, when I look at the diagnostic logs, they tell me that when the new connections are being opened they are using the new connection strings.
I've created a SSIS Solution and have created Data Sources. I have two packages. One was created before the Data Sources, and one was created after. The package that was created after is using connections from the Data Sources. I want to change the package before the Data Soruces were created to use them, but when I right click in the Connection Managers pane "New Connection From Data Source.." is not an option.
This is the first time I have used SSIS, so please bear with the ignorance.
I have a super simple package that inserts x000's of rows into a temporary table. The data source is a file that the user will upload. I need to be able to tell the package what file to upload. I'm thinking the simplest thing would be to edit the connectionString property of the SourceConnectionFlatFile at runtime. Is this possible? What form should the file path be in (UNC, other)? And, are there any other considerations I should be aware of?
Is there a way by which we can make the Connection in the connection manager retry for a certain amount of time?
I have a DataFlow Task which uses a OLE Source which is connected to a database. there are time when the connection to the database is not available due to some transport level error. so i wanted the connection manger to make a couple of tries before giving up and saying that it was not able to connect and it timed out..
i have the Connect TimeOut and the General Timeout properties set to 0, but is there a way to retry?
My source files are in C:Process folder. File names are in the format proc*.csv
I am using foreach loop container to iterate over the files in folder "C:Process"
I have a user variable "filename"
The order of my tasks
ForEach - Data Flow task - File System Task
In Data Flow task, I have ole db source which should take the dynamic filename from user variable "filename". whats happening is when i give fixed filename, without foreach loop container the package is working fine.
with dynamic filename, I am not able to run the package because of ole db source Error - cannot aquire connection from connection manager.
Dts.Connections.Item("myADO.NET connection").AcquireConnection(Nothing)Dim conn As New SqlClient.SqlConnection(Dts.Connections.Item("myADO.NET connection").ConnectionString) conn.Open()
This seems silly, in that I'm not really using the same connection, but using the connection string of a connection that already exists. And, for my purposes, it's not working currently, because I've switched from Windows Authentication to SQL Auth... and the password isn't coming over in the ConnectionString property.How do I re-use the exact same ADO.NET connection I have in my connection manager in a script task? That's the recommended way to go, right?
I have deleted one of my file connection from Connection Manager (and
Executed ProcessTask which used it), however
trying to load the package I always get the error:
"Error loading MyPackage.dtsx: The connection "MyDeletedConnectionName" is not found. This error is thrown by Connections collection when the specific connection element is not found."
I tried to Clean, Rebulid my project, but it doesn't help.
Does anybody know, how to solve it? Where this reference is saved?
I am developing a table driven ETL system, where I store large PL/SQL queries in a varchar(max) field.  I read the field into an object variable at the package level using a SQL task.  Next I have a C# script task that creates a connection to our Oracle database using the Oracle provider.  I am trying to set the Command.Text property to the PL/SQL statement I've stored in the package level object variable, but I'm having difficulty getting the Pl/SQL text back out of the object.
I've tried Object.value.tostring, but it just returns a generic "system__text". how I can proceed?
SELECT TOP 100 PERCENT dbo._Options_Demographics.GradeLevel, dbo._Options_Demographics.Gender, dbo._Options_Demographics.Ethnicity, dbo._Options_Demographics.Age, SUM(dbo._Options_Demographics.Enrollment) AS Enrollment, dbo._Options_Demographics.OptionsYear, dbo._Options_Demographics.OptionsMonth FROM dbo._Options_Confirmed INNER JOIN dbo._Options_Demographics ON dbo._Options_Demographics.DistrictCode = dbo._Options_Confirmed.DistrictCode GROUP BY dbo._Options_Demographics.GradeLevel, dbo._Options_Demographics.Gender, dbo._Options_Demographics.Ethnicity, dbo._Options_Demographics.Age, dbo._Options_Demographics.OptionsYear, dbo._Options_Demographics.OptionsMonth ORDER BY dbo._Options_Demographics.OptionsYear, dbo._Options_Demographics.OptionsMonth, dbo._Options_Demographics.GradeLevel, dbo._Options_Demographics.Gender, dbo._Options_Demographics.Ethnicity, dbo._Options_Demographics.Age
which returns this data (the enrollment value is 4 times the correct value) grade gender eth ageenrollyearmonth 8FemaleBlack1618112003December 8FemaleBlack1716212003December 8FemaleBlack187932003December 8FemaleBlack18P2872003December
If I remove the sum function and manually add, my totals are correct ... SELECT TOP 100 PERCENT _Options_Demographics.GradeLevel, _Options_Demographics.Gender, _Options_Demographics.Ethnicity, _Options_Demographics.Age, _Options_Demographics.Enrollment, _Options_Demographics.OptionsYear, _Options_Demographics.OptionsMonth FROM _Options_Confirmed RIGHT OUTER JOIN _Options_Demographics ON _Options_Demographics.DistrictCode = _Options_Confirmed.DistrictCode GROUP BY _Options_Demographics.GradeLevel, _Options_Demographics.Gender, _Options_Demographics.Ethnicity, _Options_Demographics.Age, _Options_Demographics.Enrollment, _Options_Demographics.OptionsYear, _Options_Demographics.OptionsMonth ORDER BY _Options_Demographics.OptionsYear, _Options_Demographics.OptionsMonth, _Options_Demographics.GradeLevel, _Options_Demographics.Gender, _Options_Demographics.Ethnicity, _Options_Demographics.Age
I've been looking at this for too long and I know that is something very trivial ...
I am looking for some help, I have created a simple SSIS package that takes the contents of a view on the Server and outputs it to a delimited flat file. This flat file is moved from its location on the server to our file print server. This package uses a config file that contains the necessary passwords. When run in the visual studio it runs without error.
However when run in a SQL Server Agent Job it fails on this step - Code: 0xC020801C Source: Data Flow Task GET DATA FROM LIVE [1] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ServerName.DBName.SQLServerAuth" fail.
I have researched the error and I have found that it doenst have the necessary permissions, however I have another package doing the same thing using the same config file that runs with error on a SQL Job. I do not get why it would differ when the jobs are identical?
I'm working on an income deferral problem and we are using IRR to end up calculating periodic income.
As an example, I have the following inputs:
Number of periods = 9 Initial Loan = 21.46 Instalment amount =15.30 Future value=0 Guess=0.1 (10%)
Using a compiled function from Visual Studio in SQL Server 2008 we get a result of 70.71656373
Using a Microsoft Access function we get NaN
Using Microsoft Excel we get NaN
Using a web calculator we get 70 (ish, the calculator rounds the numbers)
I know that the numbers are odd, some of our data is dirty so we do expect that. I was expecting the SQL process to kick out an error (therefore converting the result into 0), but it doesn't.
i am encountering a pretty weird problem on our SQL database stored procs, particularly those concerning datetime functions. we have two setups, one is on london, and another one is here in singapore. both servers have the same regional settings, the same database tables, stored procs and functions, almost the same in every aspect. the only difference we know is that one is a direct database cut (sql 7.0), while the other used database migration in win2k.
here goes: all stored proc functions work just fine on the singapore setup. the london setup however, is not working at all! it does all the functions like change flags and status, but it doesn't update dates nor search for data by date. i have also checked on the collision names, and they are the same. where else could i start searching for discrepancies between the two?
hope to hear something from you guys, i'm getting desperate. thanks in advance!
After opening the Results Pane (though a query or open table); I frequently get the below message.
Is there any way to change the settings so the results pane will stay active for a long length of time?
Message
SQL Server Enterprise Manager
_______________________
Some time ago, you retrieved data from the database with the query or view whose name is XXXX. The returned rows appear in the Results Pane and the database continues to retain the result set in its local memory; which consumes valuable server resources. Because you have not recently used the Results pane, it will be AUTOMATICALLY CLEARED IN ONE MINUTE. The will empty the results pane, discard unsaved changes, and free resources on the database server. Then if you want to REESTABLISH the result set, you can rerun the query or view.
DO YOU WANT TO PROLONG YOUR WORK WITH THE RESULTS PANE AND CONTINUE TO CONSUME RESOURCES ON THE DATABASE SERVER?
I want this to default to Yes, without this message comming up and if I don't click yes fast enough, my results are gone. I kinow the work arounds, but how can I default this to Yes or so this message stops displaying.
When I get result from .NET console app, I get correct answer "JungleSektor". However, when SQL Server executes this code, it gives me "NT ServiceMSSQL $ SQL2014". How to get correct result?
Hi,Say I have a table Job with columns name, date, salary . I want to getthe name ,date and salary for the date when that person earned maximumsalary. I am using something likeSELECT X.name,X.date,X.salaryFROM job XWHERE X.salary IN(SELECT MAX(Y.salary) FROM job Y where Y.name= X.name);The problem is ; if a person earns maximum salary on two dates, both ofthe dates are printed. I just want to get any one of those two rows.I triedSELECT X.name,Min(X.date),X.salaryFROM job XWHERE X.salary IN(SELECT MAX(Y.salary) FROM job Y where Y.name= X.name);but it gives error.Can anybody please suggest a solution?Regards,Aamir