Sp_executesql Error From SSIS OLE DB Command

Jul 20, 2006

Hi


I've got an SSIS package, I'm in a Data Flow step that has a OLE DB Command Data Flow Transformation.


The SQLCommand in the OLD DB Command is:
______________________
UPDATE Employment_Episode_Dim
SET Commence_Serv_Date = ?
WHERE AGS_Number = ?
______________________


The package will run through successfully, but I don't see any updates
in Employment_Episode_Dim. I ran a trace, and this is a sample of the
SQL that is being executed:


______________________
exec sp_executesql N'UPDATE EMPLOYMENT_EPISODE_DIM
SET COMMENCE_SERV_DATE = @P1
WHERE (AGS_NUMBER = @P2)',N'@P1 datetime,@P2 int',''2005-01-27
00:00:00:000'',78577229
______________________


If I take that SQL and execute it in a query window, it fails due to
two single quotation marks placed around the date parameter being used
as @P1.


Why does SQL/SSIS put two singles around the date? It's outside of the
string to be executed, so it doesn't seem to need to have the double.


Can anyone please help?


Thanks
Earth

View 2 Replies


ADVERTISEMENT

Using A Variable In SSIS - Error - Command Text Was Not Set For The Command Object..

Nov 4, 2006

Hi All,

i am using a OLE DB Source in my dataflow component and want to select rows from the source based on the Name I enter during execution time. I have created two variables,

enterName - String packageLevel (will store the name I enter)

myVar - String packageLevel. (to store the query)

I am assigning this query to the myVar variable, "Select * from db.Users where (UsrName = " + @[User::enterName] + " )"

Now in the OLE Db source, I have selected as Sql Command from Variable, and I am getting the variable, enterName,. I select that and when I click on OK am getting this error.

Error at Data Flow Task [OLE DB Source [1]]: An OLE DB error has occurred. Error code: 0x80040E0C.
An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E0C Description: "Command text was not set for the command object.".

Can Someone guide me whr am going wrong?

myVar variable, i have set the ExecuteAsExpression Property to true too.

Please let me know where am going wrong?

Thanks in advance.








View 12 Replies View Related

If I Am Using SqlCommand Class And The CommandType Of It Is Text, Then Will It Add Sp_executesql N In Front Of The Sql Command Automatically?

Dec 12, 2004

If i am using SqlCommand Class and the CommandType of it is Text, then will it add "sp_executesql N" in front of the sql command automatically in fact, just like SqlDataAdapter?

View 3 Replies View Related

SSIS OLE DB Command Error

Sep 21, 2006

I have written a stored procedure that accepts 33 parameters. I am trying to execute the stored procedure from a SSIS OLE DB Command task. The code I am putting into the "SqlCommand" property is "Exec dbo.CO_PROD_UPDATE ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?

View 6 Replies View Related

OLE DB Command Error SSIS

Jun 15, 2006

Hi,

when we are using OLEDB Command we are getting the following error?

when we use sql server as the source its working fine .but its throwing error when we try to connect the orcale database .
Error at Data FLOW TASk[OLE DB Command[3863]]: An OLE DB error has occured :0x80040E51.
An OLE DB record is available. Source : "Microsoft OLE DB Provider for Oracle" Hresult: 0x80040E51
Description: "Provider cannot derive parameter information and SetParameterInfo has not been called.".
ERrror at Data Flow Task [OLE DB Command [3863]]: Unable to retrieve destination column description from the Parameter of the SQL Command
Thanks & Regards
Jegan.T





View 4 Replies View Related

SSIS OLE DB Command Fatal Error

Mar 24, 2008

I have a pretty simple senario.

In a data flow task, I have a OLE DB Source, which is a simple select statement. That is then connected to a OLE DB Command object, which executes a stored procedure on a different server, with the columns of the source as parameters to the stored procedure. I then have that connected to another OLE DB Command object, that will update the row in the source, marking it processed if there wasn't an error (no errors raised) in the stored procedure.

This seems to work just fine. Rows that had errors will error out, but I have the max allowed errors set very high to prevent the task from stopping. The problem that I have noticed is that if the very last row of the original source has an error, the component will fail with a fatal error and not go back and mark the rows that did succed as processed.

The fatal error looks like this:
Error: 0xC0047022 at OrderItems, DTS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Insert OrderItem" (97) failed with error code 0xC0202009. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

At this point I really believe this is a bug in SSIS, because if the last row succeeds, reguardless of how many rows failed in the middle, the last step runs, and updates the source as processed for the rows that did not fail. But if the last row fails, it doesn't execute the next step.

Has anyone experienced this before. I really hope there is a minor configuration change that can be made so I do not have to redesign the package. My only alternative at this point is to redesign the stored procedure to not raise an error, and return any errors in an output parameter, and then use a conditional split to determine what rows to go back and update at the source, and then rather than relying on the package output to see the errors, I'll have to write the errors to a table somewhere.

- Eric

View 1 Replies View Related

SSIS OLE DB Command Task Error

May 25, 2007

hi,



I am having trouble executing a DB2 stored procedure using OLE DB command task.



The stored procedure takes 2 paramters.



1. filename 2. logfilename



filename - servernamefoldername extfilename

logfilename - servernamefoldernamelogfilename

Both are user defined variables with data type string. i created 2 dervied columns FILE and LOG to pass these values.



FILE takes the filename value



LOG takes the logfilename value



When I execute it gives me the following errors.



[OLE DB Command 1 [77]] Error: An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "IBM OLE DB Provider for DB2" Hresult: 0x80004005 Description: "[DB2/NT] SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. SQLSTATE=21000 ".



[DTS.Pipeline] Error: The ProcessInput method on component "OLE DB Command 1" (77) failed with error code 0xC0202009. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.



[DTS.Pipeline] Error: Thread "WorkThread0" has exited with error code 0xC0202009.



Can anyone please help me resolve this issue.



I can execute the SP using execute sql task but the problem is I need to pass the rejected rows to a reject table for logging purposes. thts why am tryin the OLE DB command.



Thank You

View 7 Replies View Related

Saving Passwrod In SSIS | Error When Using Command Line Dtexec.exe

Sep 13, 2007

Hi All,

In one of my SSIS package (which connect to DB2) i save the DB2 username and password in SSIS packge itself by using option "EncryptAllWithPassword".
When I try to run the packge using dtexecui.exe it works perfectly fine. It prompts me for package password and then run fine.

Now I am trying to run it using command line dtxece.exe and i get fooolwoing error. Please suggest and help!!!
DTExec.exe /FILE C:pkgDB2Load.dtsx /CONFIGFILE C:ConfigpkgConfigMaster.dtsConfig /Decrypt mypassword /CHECKPOINTING OFF /REPORTING EWCDI

Error Message:
----------------------
Description: An OLE DB error has occurred. Error code: 0x80040E21.
An OLE DB record is available. Source: "IBM OLE DB Provider for DB2 Servers" Hresult: 0x80040E21 Description: " SQL30082N Attempt to establish connection fa
iled with security reason "17" ("UNSUPPORTED FUNCTION"). SQLSTATE=08001
"



Thanks
Sid

View 1 Replies View Related

SSIS Package That Runs Fine Through Command Prompt, XML Error When Run Through SQL Server Agent Job CmdExec

Aug 17, 2006

I have an SSIS package that runs fine through command pormpt although when I try to run it from a SQL Servr Agent Job CmdExec step it bombs out.  Please help this has me stumped...the SSIS package uses an XML connection string so certain key settings such as connection strings and email info can be changed easily.  Currently this is all on the same machine.  I have not moved it beyond where I am developing.

 

On the command line I am using the following command...

dtexec /F "S:connectionscontacts.dtsConfig" /DE "password"

 

Below is the output log...

 

Microsoft (R) SQL Server Execute Package Utility
Version 9.00.1399.06 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

Started:  6:59:40 PM
Progress: 2006-08-16 18:59:41.29
   Source: Data Flow Task
   Validating: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.29
   Source: Data Flow Task
   Validating: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.71
   Source: Data Flow Task
   Validating: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.73
   Source: Data Flow Task
   Validating: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.77
   Source: Data Flow Task
   Validating: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.77
   Source: Data Flow Task
   Validating: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.77
   Source: Data Flow Task
   Validating: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.77
   Source: Data Flow Task
   Validating: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.79
   Source: Data Flow Task
   Prepare for Execute: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.79
   Source: Data Flow Task
   Prepare for Execute: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.79
   Source: Data Flow Task
   Prepare for Execute: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.79
   Source: Data Flow Task
   Prepare for Execute: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.81
   Source: Data Flow Task
   Pre-Execute: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.84
   Source: Data Flow Task
   Pre-Execute: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.90
   Source: Data Flow Task
   Pre-Execute: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.90
   Source: Data Flow Task
   Pre-Execute: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.92
   Source: Data Flow Task
   Post Execute: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.92
   Source: Data Flow Task
   Post Execute: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.92
   Source: Data Flow Task
   Post Execute: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.92
   Source: Data Flow Task
   Post Execute: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.92
   Source: Data Flow Task
   Cleanup: 0% complete
End Progress
Progress: 2006-08-16 18:59:41.93
   Source: Data Flow Task
   Cleanup: 33% complete
End Progress
Progress: 2006-08-16 18:59:41.93
   Source: Data Flow Task
   Cleanup: 66% complete
End Progress
Progress: 2006-08-16 18:59:41.93
   Source: Data Flow Task
   Cleanup: 100% complete
End Progress
Progress: 2006-08-16 18:59:41.95
   Source: Send Mail Task
   The SendMail task is initiated.: 0% complete
End Progress
Progress: 2006-08-16 18:59:42.09
   Source: Send Mail Task
   The SendMail task is completed.: 100% complete
End Progress
DTExec: The package execution returned DTSER_SUCCESS (0).
Started:  6:59:40 PM
Finished: 6:59:42 PM
Elapsed:  1.984 seconds

 

 

When I try to use the same command within SQL Server Agent Job using a CmdExec step I get the following error...

 

Description: The package is attempting to configure from the XML file "S:connectionscontacts.dtsConfig".  End Info  Warning: 2006-08-16 18:40:03.15     Code: 0x80012012     Source: contactsPackage Description: The configuration file name "S:connectionscontacts.dtsConfig" is not valid. Check the configuration file name.  End Warning  Warning: 2006-08-16 18:40:03.15     Code: 0x80012059     Source: contactsPackage Description: Failed to load at least one of the configuration entries for the package. Check configurations entries and previous warnings to see descriptions of which configuration failed.  End Warning  Info: 2006-08-16 18:40:03.20  ...  Process Exit Code 1.  The step failed.

 

Thanks in advance for any help!!!

View 2 Replies View Related

Error Handling When Using SP_EXECUTESQL

Oct 30, 2000

I am using dynamica SQL in one of my stored procs That performs BULKINSERT
on few tables.
If there is a PK constraint violation, I wanted to write an error routine.
But once SP_EXECUTESQL gives an error, the stored proc just abends
not allowing me to ado anything else.
Can anyone help me with some information on how to perform error
handling when I am using Dynamic SQL?
I am also sending the the piece of code and the error message.

CODE: Assume that all variables are declared appropriately.

SET @string = 'BULK INSERT Tb_Manfg ' + char(13) +
'FROM '+ '''' + @path_tb_manfg + '''' + char(13) +
'WITH (FIELDTERMINATOR = ' + '''' + '|=|'+ '''' + ',' + char(13) +
'ROWTERMINATOR = ' + '''' + '
' + '''' + ')'

IF @error = 0
BEGIN
PRINT 'NOW Tb_Manfg GOING TO BE INSERTED.......'
EXEC SP_EXECUTESQL @string
/*
This is where the stored proce abends.
The subsequent code is not executed at all.
*/
PRINT 'ERROR IS.........'
PRINT @@ERROR
IF @@ERROR = 2627
BEGIN
PRINT 'AN ERROR OCCURED WHILE INSERTING INTO Tb_Cateory'
SET @error = @@ERROR
return
END
ELSE
BEGIN
SET @error = @@ERROR
END

ERROR MESSAGE:
Server: Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK__TB_Manfg__1FCDBCEB'. Cannot insert duplicate key in object 'TB_Manfg'.
The statement has been terminated.


Thanks a lot.
Sush.

View 1 Replies View Related

Sp_executesql And Error Handling

May 22, 2007

Hi,

I need to capture the error code while using sp_executesql

insert into #temp1
exec @status=sp_executesql @actn_id1

This @actn_id1 contains the proc name and the parameters. The problem now is when I get an error it’s not captured in the @status column, it always 0 and also tried @@error and was also 0.


Server: Msg 55118, Level 16, State 1, Procedure S_START_LUW, Line 383
info_upd_id =530129179546!, is using current subj_id.

This is a user defined error captured using raiserror inside a sub proc.

Can I capture this error number in the status column?

Thanks in advance for the help

View 5 Replies View Related

Sp_executesql Silly Error

Jul 23, 2005

Gurus,Here is what I ma trying to do. I have numeric expression stored in atable column. for e.g. @a + @b + @c. I supply values to the variablesat run time and want them to be computed at run time as per theexpression in the column.the stored procedure works fine but it gives a silly error.Any help greatly appreciated. Below is the code.--drop procedure proc_bkrcreate procedure proc_bkr ASdeclare @expr nvarchar(2000)declare @sql nvarchar(2000)declare @temp_exp nvarchar(3000)declare @ans integerdeclare @QFAAPAC02_1 integerdeclare @QFAAPAC02_2 integerdeclare @QFAAPAC02_3 integerdeclare @QFAAPAC02_4 integer-- Assigning values to variables -- Startset @QFAAPAC02_1 = (Select QFAAPAC02_1 from fa_ap_stage where recordid= 3)set @QFAAPAC02_2 = (Select QFAAPAC02_2 from fa_ap_stage where recordid= 3)set @QFAAPAC02_3 = (Select QFAAPAC02_3 from fa_ap_stage where recordid= 3)set @QFAAPAC02_4 = (Select QFAAPAC02_4 from fa_ap_stage where recordid= 3)-- Assigning values to variables -- Endset @temp_exp = (select num from translation where processid = 'AP' andlabel = 'C1')-- This is how num looks: @QFAAPAC02_1 + @QFAAPAC02_2 + @QFAAPAC02_3 +@QFAAPAC02_4--select @expr = '@QFAAPAC02_1 + @QFAAPAC02_2 + @QFAAPAC02_3 +@QFAAPAC02_4'-- Above line works fine but below one does not. though both are same.select @expr = @temp_expselect @sql = 'select @ans = ' + @exprexec sp_executesql @sql, N'@QFAAPAC02_1 integer, @QFAAPAC02_2 integer,@QFAAPAC02_3 integer, @QFAAPAC02_4 integer, @ans integer OUTPUT',@QFAAPAC02_1,@QFAAPAC02_2,@QFAAPAC02_3,@QFAAPAC02_ 4,@ans OUTPUTset @cc = @ansError Message: Server: Msg 137, Level 15, State 2, Line 1[Microsoft][ODBC SQL Server Driver][SQL Server]Must declare thevariable '@QFAAPAC02_'.Thanks in Advance!Bkr

View 1 Replies View Related

Invalid Column Error With Sp_executesql

Jun 13, 2005

Hey all,

Having some trouble with a Database email system I created. The system consists of two tables, DATA_ELEMENT and EMAIL_MESSAGE. So the email message body and recipient fields may contain substitution macros such as {![CUST_EMAIL]!}. The CUST_EMAIL data element row then stores the SELECT, FROM and WHERE clauses separately. There is a stored proc to search the message body and recipients for these substitution macros and replace them with the appropriate values from the DB.

The system is working well except I have one particular substitution macro called VENUE_NAME_BY_PPPID which is causing a problem.

Quote: Server: Msg 207, Level 16, State 3, Line 3
Invalid column name 'PARTNER_PRODUCT_PRIZE_ID'.

And here's the query which is creates this error (without the escaped single quotes):


Code:

SELECT P.PARTNER_NAME + ISNULL(' - ' + PS.SITE_NAME, '')
FROM PARTNER_PRODUCT_PRIZE PPP
JOIN PARTNER_PRIZE PP ON PP.PARTNER_PRIZE_ID = PPP.PARTNER_PRIZE_ID
JOIN PARTNER P ON P.PARTNER_ID = PP.PARTNER_ID
LEFT JOIN PARTNER_SITE PS ON PS.PARTNER_ID = PP.PARTNER_ID
AND PS.PARTNER_SITE_ID = PP.PARTNER_SITE_ID
WHERE PPP.PARTNER_PRODUCT_PRIZE_ID = '19'


And just after this print statement, the query is executed with sp_executesql()

Any advice is greatly appreciated as this query runs fine when I execute from the query window. However, if I escape all the necessary quotes, I can't get it to run when I put the string inside of sp_executesql().

--Travis

View 1 Replies View Related

Sp_executesql Bug? - @@error = 0 When @statement Is Null

Aug 22, 2007

Example code:

declare @somesql nvarchar(20)
execute sp_executesql @somesql, N'@lnCurrRow int', @lnCurrRow = 1
PRINT @@ERROR


@@Error returns 0, which is seems incorrect since @somesql is null. If you substitute @somesql for the constant NULL then an error is fired. The above also executes successfully with @@error = 0 if you set @somesql = '' (empty string).

EXEC behaves the same way.

It makes sense that executing an empty string should be fine, but NULL? Is there a SET option available that will cause an error to be raised if sp_executesql attempts to execute a nvarchar variable that's set to NULL?


Thanks.

View 4 Replies View Related

Exec Sp_executesql Vs. Sp_executesql And Performance

Jul 23, 2005

This is a odd problem where a bad plan was chosen again and again, butthen not.Using the profiler, I identified an application-issued statement thatperformed poorly. It took this form:exec sp_executesql N'SELECT col1, col2 FROM t1 WHERE (t2= @Parm1)',N'@Parm1 int', @Parm1 = 8609t2 is a foreign key column, and is indexed.I took the statement into query analyzer and executed it there. Thequery plan showed that it was doing a scan of the primary key index,which is clustered. That's a bad choice.I then fiddled with it to see what would result in a good plan.1) I changed it to hard code the query value (but with the parmdefinition still in place. )It performed well, using the correct index.Here's how it looked.exec sp_executesql N'SELECT cbord.cbo1013p_AZItemElement.AZEl_Intid AS[Oid], cbord.cbo1013p_AZItemElement.incomplete_flag AS [IsIncomplete],cbord.cbo1013p_AZItemElement.traceflag AS [IsTraceAmount],cbord.cbo1013p_AZItemElement.standardqty AS [StandardAmount],cbord.cbo1013p_AZItemElement.Uitem_intid AS [NutritionItemOid],cbord.cbo1013p_AZItemElement.AZeldef_intid AS [AnalysisElementOid] FROMcbord.cbo1013p_AZItemElement WHERE (Uitem_intid= 8609)', N'@Parm1 int',@Parm1 = 8609After doing this, re-executing the original form still gave badresults.2) I restored the use of the parm, but removed the 'exec' from thestart.It performed well.After that (surprise!) it also performed well in the original form.What's going on here?

View 3 Replies View Related

Report Error Using Stored Procedure With Exec Sp_executesql

Feb 13, 2008

Hi,

Our report is working fine with data loaded from a stored procedure (#1) that contains a fairly simple Select statement. We need the same report to work with a dataset loaded from a stored procedure (#2) that uses 'Exec sp_executesql @queryString'. Unfortunately, attempts to call the latter cause an error in the report. From everything that I've read, there should be no difference between datasets created using either method. Any ideas what could be getting in the way of the latter?

I have doublechecked that the dynamic query is returning a valid dataset and that all the columns are in the same format as sp #1. The designer shows the dataset and the report with the data loaded, but the live system produces an error.

Any help is much appreciated.
Debbie

View 4 Replies View Related

Command Text Was Not Set For The Command Object Error

Sep 19, 2006

Hi. I am writing a program in C# to migrate data from a Foxpro database to an SQL Server 2005 Express database. The package is being created programmatically. I am creating a separate data flow for each Foxpro table. It seems to be doing it ok but I am getting the following error message at the package validation stage:

Description: An OLE DB Error has occured. Error code: 0x80040E0C.

An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E0C Description: "Command text was not set for the command object".

.........

Description: "component "OLE DB Destination" (22)" failed validation and returned validation status "VS_ISBROKEN".

This is the first time I am writing such code and I there must be something I am not doing correct but can't seem to figure it out. Any help will be highly appreciated. My code is as below:

private bool BuildPackage()

{




// Create the package object

oPackage = new Package();

// Create connections for the Foxpro and SQL Server data

Connections oPkgConns = oPackage.Connections;

// Foxpro Connection

ConnectionManager oFoxConn = oPkgConns.Add("OLEDB");

oFoxConn.ConnectionString = sSourceConnString; // Created elsewhere

oFoxConn.Name = "SourceConnectionOLEDB";

oFoxConn.Description = "OLEDB Connection For Foxpro Database";

// SQL Server Connection

ConnectionManager oSQLConn = oPkgConns.Add("OLEDB");

oSQLConn.ConnectionString = sTargetConnString; // Created elsewhere

oSQLConn.Name = "DestinationConnectionOLEDB";

oSQLConn.Description = "OLEDB Connection For SQL Server Database";

// Add Prepare SQL Task

Executable exSQLTask = oPackage.Executables.Add("STOCK:SQLTask");

TaskHost thSQLTask = exSQLTask as TaskHost;

thSQLTask.Properties["Connection"].SetValue(thSQLTask, "oSQLConn");

thSQLTask.Properties["DelayValidation"].SetValue(thSQLTask, true);

thSQLTask.Properties["ResultSetType"].SetValue(thSQLTask, ResultSetType.ResultSetType_None);

thSQLTask.Properties["SqlStatementSource"].SetValue(thSQLTask, @"C:LPFMigrateLPF_Script.sql");

thSQLTask.Properties["SqlStatementSourceType"].SetValue(thSQLTask, SqlStatementSourceType.FileConnection);

thSQLTask.FailPackageOnFailure = true;



// Add Data Flow Tasks. Create a separate task for each table.

// Get a list of tables from the source folder

arFiles = Directory.GetFileSystemEntries(sLPFDataFolder, "*.DBF");

for (iCount = 0; iCount <= arFiles.GetUpperBound(0); iCount++)

{


// Get the name of the file from the array

sDataFile = Path.GetFileName(arFiles[iCount].ToString());

sDataFile = sDataFile.Substring(0, sDataFile.Length - 4);

oDataFlow = ((TaskHost)oPackage.Executables.Add("DTS.Pipeline.1")).InnerObject as MainPipe;

oDataFlow.AutoGenerateIDForNewObjects = true;



// Create the source component

IDTSComponentMetaData90 oSource = oDataFlow.ComponentMetaDataCollection.New();

oSource.Name = (sDataFile + "Src");

oSource.ComponentClassID = "DTSAdapter.OLEDBSource.1";

// Get the design time instance of the component and initialize the component

CManagedComponentWrapper srcDesignTime = oSource.Instantiate();

srcDesignTime.ProvideComponentProperties();

// Add the connection manager

if (oSource.RuntimeConnectionCollection.Count > 0)

{


oSource.RuntimeConnectionCollection[0].ConnectionManagerID = oFoxConn.ID;

oSource.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(oFoxConn);

}

// Set Custom Properties

srcDesignTime.SetComponentProperty("AccessMode", 0);

srcDesignTime.SetComponentProperty("AlwaysUseDefaultCodePage", true);

srcDesignTime.SetComponentProperty("OpenRowset", sDataFile);

// Re-initialize metadata

srcDesignTime.AcquireConnections(null);

srcDesignTime.ReinitializeMetaData();

srcDesignTime.ReleaseConnections();

// Create Destination component

IDTSComponentMetaData90 oDestination = oDataFlow.ComponentMetaDataCollection.New();

oDestination.Name = (sDataFile + "Dest");

oDestination.ComponentClassID = "DTSAdapter.OLEDBDestination.1";

// Get the design time instance of the component and initialize the component

CManagedComponentWrapper destDesignTime = oDestination.Instantiate();

destDesignTime.ProvideComponentProperties();

// Add the connection manager

if (oDestination.RuntimeConnectionCollection.Count > 0)

{


oDestination.RuntimeConnectionCollection[0].ConnectionManagerID = oSQLConn.ID;

oDestination.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(oSQLConn);

}

// Set custom properties

destDesignTime.SetComponentProperty("AccessMode", 2);

destDesignTime.SetComponentProperty("AlwaysUseDefaultCodePage", false);

destDesignTime.SetComponentProperty("OpenRowset", "[dbo].[" + sDataFile + "]");



// Create the path to link the source and destination components of the dataflow

IDTSPath90 dfPath = oDataFlow.PathCollection.New();

dfPath.AttachPathAndPropagateNotifications(oSource.OutputCollection[0], oDestination.InputCollection[0]);

// Iterate through the inputs of the component.

foreach (IDTSInput90 input in oDestination.InputCollection)

{


// Get the virtual input column collection

IDTSVirtualInput90 vInput = input.GetVirtualInput();

// Iterate through the column collection

foreach (IDTSVirtualInputColumn90 vColumn in vInput.VirtualInputColumnCollection)

{


// Call the SetUsageType method of the design time instance of the component.

destDesignTime.SetUsageType(input.ID, vInput, vColumn.LineageID, DTSUsageType.UT_READWRITE);

}

//Map external metadata to the inputcolumn

foreach (IDTSInputColumn90 inputColumn in input.InputColumnCollection)

{


IDTSExternalMetadataColumn90 externalColumn = input.ExternalMetadataColumnCollection.New();

externalColumn.Name = inputColumn.Name;

externalColumn.Precision = inputColumn.Precision;

externalColumn.Length = inputColumn.Length;

externalColumn.DataType = inputColumn.DataType;

externalColumn.Scale = inputColumn.Scale;

// Map the external column to the input column.

inputColumn.ExternalMetadataColumnID = externalColumn.ID;

}

}

}

// Add precedence constraints to the package executables

PrecedenceConstraint pcTasks = oPackage.PrecedenceConstraints.Add((Executable)thSQLTask, oPackage.Executables[0]);

pcTasks.Value = DTSExecResult.Success;

for (iCount = 1; iCount <= (oPackage.Executables.Count - 1); iCount++)

{


pcTasks = oPackage.PrecedenceConstraints.Add(oPackage.Executables[iCount - 1], oPackage.Executables[iCount]);

pcTasks.Value = DTSExecResult.Success;

}

// Validate the package

DTSExecResult eResult = oPackage.Validate(oPkgConns, null, null, null);

// Check if the package was successfully executed

if (eResult.Equals(DTSExecResult.Canceled) || eResult.Equals(DTSExecResult.Failure))

{


string sErrorMessage = "";

foreach (DtsError pkgError in oPackage.Errors)

{


sErrorMessage = sErrorMessage + "Description: " + pkgError.Description + "";

sErrorMessage = sErrorMessage + "HelpContext: " + pkgError.HelpContext + "";

sErrorMessage = sErrorMessage + "HelpFile: " + pkgError.HelpFile + "";

sErrorMessage = sErrorMessage + "IDOfInterfaceWithError: " + pkgError.IDOfInterfaceWithError + "";

sErrorMessage = sErrorMessage + "Source: " + pkgError.Source + "";

sErrorMessage = sErrorMessage + "Subcomponent: " + pkgError.SubComponent + "";

sErrorMessage = sErrorMessage + "Timestamp: " + pkgError.TimeStamp + "";

sErrorMessage = sErrorMessage + "ErrorCode: " + pkgError.ErrorCode;

}

MessageBox.Show("The DTS package was not built successfully because of the following error(s):" + sErrorMessage, "Package Builder", MessageBoxButtons.OK, MessageBoxIcon.Information);

return false;

}

// return a successful result

return true;
}

View 2 Replies View Related

'Syntax Error Converting Datetime From Character String' With Sp_executesql

Jul 20, 2005

CREATE PROCEDURE dbo.Synchronization_GetNewRecords(@item varchar(50),@last datetime)ASSET NOCOUNT ONDECLARE @sql nvarchar(4000)SET @sql = 'SELECT * FROM ' + @item + ' WHERE LastUpdated >' + @lastEXEC sp_executesql @sql, N'@Type varchar(50), @Last datetime', @item, @lastThis is my SP. Very simple. But it is throwing the error in the subject line.Any help would be greatly appreciated.

View 1 Replies View Related

Sp_executesql - Error Converting Data Type Varchar To Datetime

Oct 13, 2006

Hi,

I am havin problems with the following giving a message

Msg 8114, Level 16, State 4, Line 0

Error converting data type varchar to datetime.



exec sp_executesql

@stmt=N'UPDATE CUSTOMER

SET [REQUEST] = @19, [DISC_EXPRY] = @28, [GROUP1] = @29, [GROUP2] = @31, [PR_LEVEL] = @48, [MOD_DATE] = @55, [MEM_CODE] = @63, [MEM_DATE] = @64, [HO_MOD] = @66, [LASTUPDATE] = @78

WHERE [ID] = @Old_1'

, @params=N'@19 nvarchar(4),@28 DateTime,@29 nvarchar(5),@31 nvarchar(5),@48 nvarchar(1),@55 DateTime,@63 nvarchar(7),@64 DateTime,@66 Integer,@78 Float,@Old_1 Integer',

@19= 'NRMA',@28= '1752-09-14',@29= 'ALBUM',@31= 'FRAME',@48= 'A',@55= '2006-10-10',@63= '1003.50',@64= '2006-10-10',@66= 3,@78= 39000.190633,@Old_1= 454636









however, as soon as I remove the datetime fields it works



exec sp_executesql

@stmt=N'UPDATE CUSTOMER

SET [REQUEST] = @19, [GROUP1] = @29, [GROUP2] = @31, [PR_LEVEL] = @48, [MEM_CODE] = @63, [HO_MOD] = @66, [LASTUPDATE] = @78

WHERE [ID] = @Old_1'

, @params=N'@19 nvarchar(4),@29 nvarchar(5),@31 nvarchar(5),@48 nvarchar(1),@63 nvarchar(7),@66 Integer,@78 Float,@Old_1 Integer',

@19= 'NRMA',@29= 'ALBUM',@31= 'FRAME',@48= 'A',@63= '1003.50',@66= 3,@78= 39000.190633,@Old_1= 454636



what am I doing wrong with the datetime parameters?





Grimhael

View 4 Replies View Related

Ssis EXEC Command

Aug 21, 2007

I have 2 variables, one is the column name of the table and the otherone is the table name and I need to write this in the "Execute SQLtask" of a "For each loop" container in a ssis package like this:Truncate table <tableName>Insert into <tableName>Exec (' select [' + ?+ '] from '+ ?)It gives me error message when I try run the ssis. However if I putthe above statements into a stored procedure and wrote look this, itworks:spStroedproc ?, ?Do I need to change any of my settings for my "Exec" to work?Thank you in advance

View 9 Replies View Related

SSIS And The Receive Command

Feb 1, 2007

I built a system where I am sending batches of messages using a single conversation. I want to pull these messages out of my queue using Service Broker. I may have more than one batch sitting in the queue waiting to be picked up, so....

In my SSIS package i started by getting a unique list of conversation_handles where the message type is my end of batch message ( should only be one per batch). Then I used the foreach loop construct thinking I could pass the conversation_handles around and into the data flow.

In the data flow I want to pull all of the messages at once. It looks like the receive statement is designed to do this with the concept of using a table variable.

So I built this SQL to use in for the SQL Command of my OLE DB Source. It gives me this error "Syntax error, permission violation, or other nonspecific errorr"

declare @messages table ( conversation_handle uniqueidentifier, message_type_name sysname, message_body xml );

receive conversation_handle, message_type_name, message_body
from dm.[consultant queue]
into @messages
where conversation_handle = ?

select conversation_handle, message_type_name, message_body
from @messages

If I change it to this, by removing the passed parameter and looking up what should be the same value that I am passing in then it works.

declare @ch uniqueidentifier;
declare @messages table ( conversation_handle uniqueidentifier, message_type_name sysname, message_body xml );

select top 1 @ch = conversation_handle
from dm.[consultant queue]
where message_type_name = 'BatchEnd'
order by queuing_order;

-- select conversation_handle, message_type_name, message_body
receive conversation_handle, message_type_name, message_body
from dm.[consultant queue]
into @messages
where conversation_handle = @ch

select conversation_handle, message_type_name, message_body
from @messages

I have tried sneaking the parameter into the SQL in other ways, but always get the same I have tried sneaking the parameter into the SQL in other ways, but always get the same error message. It just seems that SSIS, or OLE DB, don't want to pass parameters into a block of SQL that is executing this receive command. Has anyone else done something similar to what I am doing here? Any ideas on how to resolve this?

Obviously by using SSIS I want to work on the whole batch at once and not iterate message by message. Right now I just don't like the idea that I am getting the conversation_handle twice and possibly getting a different batch of messages to process.

Thanks!

View 7 Replies View Related

Windows Command In SSIS?

Apr 23, 2007

Is it possible to run a windows command on SSIS, like a dos command?





Thanks,

Phil

View 3 Replies View Related

OLEDB Command In SSIS

Mar 27, 2007

I AM working on DW building and i m using SSIS.I haev problem with data transformation OLEDB command.I have written a query to clean data in OLEDB command box ,but it takes whole lot of time because at a time it slects 6000 rows from the source and put in to destination but i have 300000 rows to process.How can i increase the size.

View 4 Replies View Related

How To Run SSIS Package Through The Command Line?

Sep 13, 2007



Dear member,

Does any body know how to run SSIS package through the command line?

Thanks

Shamen

View 3 Replies View Related

SSIS SQL OLE DB Source - SQL Command Vs Mapping

Oct 10, 2007

I created a Stored Proc to compute all the data I need to export to a CSV file.
I use the provider MS OLE DB Provider for SQL Server.
It's a very simple package with a single Data Flow Task.
This flow task is using an OLE DB Source to call a simple SQL Command : Exec MyStoredProc.
There are no params.

This Stored Proc is using table variables to compute the data.
It takes about 10 seconds to return anything.
The problem is that the mapping doesn't work with the OLE DB Source.
There are no fields at all shown in the mapping screen.

I tried to replace the Stored Proc by a version which only returns fields and no data.
Then the mapping would work just fine.
The package is then compiling and working fine.
But everytime I put back the real stored proc, even without changing the SQL Command, the SSIS execution breaks at execution.
It keeps saying :

"Error: 0xC0202005 at Data Flow Task, OLE DB Source [477]: Column "RecordType" cannot be found at the datasource."

My guess is that SSIS doesn't wait the 10 secs and thinks the Stored Proc is not returning anything.
What can I do to make this work ?


Thanks,

Vincent

View 3 Replies View Related

Debugging In SSIS - Immediate And Command Windows

Jan 20, 2006

Hi everyone,
I am having a difficult time debugging a package that I'm working on. I read in BOL that the immediate window should be an option during debugging but I can't find it anywhere(nor can I enable it), and I was planning on using it to access an oledb source property that is using an expression. Is the command window the same as immediate? I didn't orignally think so but I'm not sure. What is the syntax to use for this once I find it?
Thanks,
Adrian

View 2 Replies View Related

Conversion Of DTS To SSIS Command Line

Apr 5, 2006

I am trying to convert a command line using the dtexecui utility. I need to pass three parameters ; account number ,begin and end date to project.

What am i doing wrong ?

DTEXEC /DTS "File SystemArchive Data" /SERVER SRV2 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EW package /SET "Account_Number";"'00001'" /SET "File_Name";"'C:InetpubwwwrootoutputArchive'" /SET "Begin_Date";"'04/03/2006'" /SET "End_Date";"'04/04/2006'"


Error I get

Microsoft (R) SQL Server Execute Package Utility
Version 9.00.1399.06 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

Started: 9:52:49 AM
Warning: 2006-04-05 09:52:51.58
Code: 0x80012018
Source: Archive Data
Description: The configuration entry, "Account_Number", has an incorrect form
at because it does not begin with the package delimiter. Prepend "package" to t
he package path.
End Warning
Warning: 2006-04-05 09:52:51.58
Code: 0x80012017
Source: Archive Data
Description: The package path referenced an object that cannot be found: "Acc
ount_Number". This occurs when an attempt is made to resolve a package path to a
n object that cannot be found.
End Warning
DTExec: Could not set Account_Number value to '00001'.
Started: 9:52:49 AM
Finished: 9:52:51 AM
Elapsed: 2.172 seconds

View 1 Replies View Related

Calling SSIS Package Through Command Prompt

Feb 24, 2008

All, I am developing the data mart refresh task in SSIS. I wanted to call the package in command prompt. I need help. Can any one give any tips on it. Thanks and appricate in advance.

Regards
Govind

View 2 Replies View Related

Running SSIS From Command Line W/ SQL Agent

Apr 17, 2007

Hi Everyone!



I'm trying to run have SQL Server Agent excute an SSIS package from the command line and I keep recieving an error message. I will assume that I have miss typed something. Can someone validate that the execute line looks workable?



"C:Program Files (x86)Microsoft SQL Server90DTSBinndtexec.exe" /F "F:ProjectsSSISCustomerMaster_1CustomerMaster_1Package.dtsx" /CONNECTION "APLUS70F70.AKIN";""uid=AKIN;Dsn=APLUS70F70;"" /CONNECTION "CRMPSQL.IBT_Aplus";""Data Source=CRMPSQL;Initial Catalog=IBT_Aplus;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;"" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EW



Thanks in advance!



Anthony Akin



View 10 Replies View Related

Executing A Command From Within SSIS Script COmponent

Jan 3, 2008

I'm trying to use an SSIS script component that will go do a DNS lookup on the contents of an input column. I've already got a vbs function that performs the wshshell.exec and parses the answer for address and/or errors. I'm having trouble with syntax for the call. When I attempt to run it, I get a lot of errors like "Name 'wshell' is not declared", "StdErr" is not a member of 'String'"

Does anyone have an example of a script that calls a command?

I'm fairly new to SSIS, but think I've properly set up the inputs and outputs.

View 9 Replies View Related

Error Running SP From ADO 2.6 And VB6 - Command.execute Error

Aug 9, 2006



Hi there

I have small problem with the ADO 2.6 - 2.8 Command object.

I created a Stored procedure preforming some tasks within a tran.

whitin the tran i'm collecting the @@ERROR values and in the end (after tran closing )generating the correct error string - which will be send back to the caller



in the VB6 app, i'm using a command object with the next line:

Set MyRecordset= MyCommand.Execute

In all the cases and option, when i run the SP - the command preform the tasks and return closed recordset (with the currect answer) and i can't read it.

the only solution that worked until now: i need to call MyRecordset.Open which will requery the SP again and generate an error (User defined error).

It happens only when i run command.execute with SP that preforms multitasks and return result recordset.



CAN ANY ONE HELP ME

View 1 Replies View Related

Errors While Running Ssis Packages From The Command Prompt.

Dec 23, 2005

I have created ssis package. It has been successfully running at UI level.

But when i am trying to execute it from the command prompt by using dtexec utility it is showing the following error messages.

Error: 2005-12-23 17:01:57.67
   Code: 0xC00470FE
   Source: Data Flow Task DTS.Pipeline
   Description: The product level is insufficient for component "Flat File Source" (1).
End Error
Error: 2005-12-23 17:01:57.67
   Code: 0xC00470FE
   Source: Data Flow Task DTS.Pipeline
   Description: The product level is insufficient for component "Script Component" (9).
End Error


i have entered the command as follows.

dtexec /f "c:somefolderpackage1.dtsx"

 

Any points regarding this issue would be helpful.

 

View 7 Replies View Related

SSIS Logging Issues When Package Run From Job/Command Line

Feb 13, 2008



All,


I am logging all the tasks in my SSIS package to SQL Server. For each task I am logging atleast the Pre-Execute, PostExecute, OnError events. For Script tasks, I have custom logging and I am logging the ScriptTaskLogEntry event too.

When I run the package manually from BIDS, the logging works great ! But when I try to run the package from a job or from the command line, the number of events that is logged greatly reduces. For eg. when manually run, I get 104 records in the log table but when run from the command line I get 23 records only. Most of the custom logging messages from the Script Task do appear. Its the pre and post-execute events that are skipped. Any idea why ?

Here is command line from the job. I also use the same command line with "dtexec" from the command prompt.

/FILE "\MyServerprojectsSSISPackagesIRRLoadingPackage.dtsx" /DECRYPT mypwd /CONNECTION "ATLSQLDEV01.SSAM.User1";"Data Source=ATLSQLDEV01;User ID=user1;Initial Catalog=SSAM;Provider=SQLNCLI.1;Persist Security Info=True;Auto Translate=False;" /CONNECTION CashFlowConnection;"\MyServerpublicReportingLoadingInProgress8634_Cashflow.txt" /CONNECTION "SMTP Connection Manager" ;"SmtpServer=ATLEXCH01;UseWindowsAuthentication=True;EnableSsl=False;" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /LOGGER "{59B2C6A5-663F-4C20-8863-C83F9B72E2EB}";"LogFile.txt" /LOGGER "{6AA833A1-E4B2-4431-831B-DE695049DC61}";"ATLSQLDEV01.SSAM.User1"

Thanks in advance for your help.
Amir

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved