Variables Bug? In ScriptComponent/DerivedColumn
Aug 22, 2007
Hello,
I'm using SSIS variable in following scenario:
I need to set variable during runtime in script component and then use it to create and fill new column in my Data Flow.
So I'm using ReadWriteVariable of script component, and override PostExecute() method in ScriptMain where I set SSIS variable. Later in same data flow I need to use that variable to insert data into DB. However OLE DB Destination is not supporting parameters (I think) so I figured out that I'll use derived column and specify variable there and ADD AS NEW COLUMN.
Then I map new columnt to proper field in DB and everything should be ok.
It is not. Variables are working really strange in SSIS. Derived Column is not taking variable at runtime but before execution. So my new columns are set to whatever I'll set in designer variables window at design time. Am i doing something wrong?
It would be very stupid to provide variables in Derived Column component if it is imposible to change their values at runtime. (I could do the same using constant in Derived Columna and Variables are not needed then)
View 8 Replies
ADVERTISEMENT
Dec 11, 2006
I'm having trouble with a script component in which I'm trying to use two ReadOnlyVariables. If I use only one of the two variables, everything works without issue. If I use both of the variables (as part of a comma-delimited list) I get the following:
The variable cannot be found. This occurs when an attempt is made to retrieve a variable from the Variables collection on a container during execution of the package, and the variable is not there. The variable name may have changed or the variable is not being created.
I don't believe the variables themselves are the problem. Both are scoped to the package level and I can use either of them if I have it as the only variable. Seems bug-like, but thought I'd get some ideas before pursuing that route.
View 11 Replies
View Related
Feb 13, 2006
dear experts,
i'm trying to build a package programmatically from client c# application. I'm working to create three dataflow components:
- OleDB Source
- Derived Column Transformations
- OleDb Destination.
My package works good, but i have several problems when insert an expression as Value of an IDTSCustomPropriety90 object, like this one:
[LEN](#firsname.lineageID) > 5 ? <<if true>> : <<if false>>
Simple expressions like concatenate strings, for example "#firstname.lineageID" + "#lastname.lineageID" seem to work good.
Thanks a lot in advanced.
Paganelli Francesco
View 19 Replies
View Related
Apr 11, 2007
I would like to use a custom build class library written in C# inside of the vb script. Does anyone know how to add the reference to the scriptComponent project once you open script through design script button?
By the way I am using visul studio 2005.
Thanks!
View 9 Replies
View Related
May 17, 2006
Dear all,
I've created a Data Flow scenario as follow:
At first I've got a Flat File Source and then Script Component Task and then OleDb Destination, linked among them by arrows, of course. When I run the SSIS all of them is successfully executed except the last task. Why? I don't know but it isn't awared of nothing.
649 rows are passed to Script Component from the file but they aren't going to my Sql table.
Let me know any advice or thought regarding ths.
Thanks a lot,
View 2 Replies
View Related
Jan 30, 2007
I am trying to set the TaskResult in my DataFlow ScriptComponent, but the Dts object is not visible.
Dts.TaskResult = Dts.Results.Failure
The above line works fine in my EventHandler script, but the Dts object seems to be out of scope when I try to use it from my Dataflow.
One thing I have noticed is that my DataFlow ScriptComponent inherits from 'UserComponent'
I have tried adding Microsoft.SqlServer.ScriptTask reference, but can not see it in the reference list - Strange?
Any help appreciated.
Regards,
Paul.
View 1 Replies
View Related
Jul 21, 2006
Hi,
I am using OleDB source as well as Script component in my package. Both these component are using same database. But as of now I am using two connections for each of this comp as I am unable to make use of the OLE DB connection in script component.
How can I solve this. I mean how can I use the the OLE DB conn which I used in OLEDB Source comp in the Script Component.
Any help will be greatly appreciated.
Thanks
View 1 Replies
View Related
Oct 23, 2007
I have an SSIS Packaget that worked a month ago and when I ran it today it didn't work. It's failing in the ScriptComponent in a DataFlow that I created as a Destination. The only thing the script does is record any value for a particular column and on the PostExecute method, writes the last instance of that column to a user variable in the Package. Here's the code. There is a string variable that I use to hold the column's value for each row received.
Public Class ScriptMain
Inherits UserComponent
Dim s_remit_addr As String
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Me.s_remit_addr = Row.remitaddr.ToString()
End Sub
Public Overrides Sub PostExecute()
Dim variables As Variables
Variables.gsremitaddr = Me.s_remit_addr
MyBase.PostExecute()
End Sub
It will always bomb in PostExecute with the error that the variable User::gs_remit_addr is not the same type as the variable I'm using (s_remit_addr); HOWEVER, the user variable is of type String and it worked a month ago. Does anyone have any idea how I can fix it?
View 3 Replies
View Related
Nov 12, 2007
Dear all,
I have a problem writing to the output of my script. I am using the Script Component. I tried various examples but still cannot write to an output of the Script Component.
Scenario: Single input. Several outputs where the data is split based on a specific input value. I use synchronized Input/Output and the DirectRowTo<OutputName> to direct the row to a specific output
Outputs :
Output_Matched
Output_Unmatched_Agresso
Output_Unmatched_Oracle
Output_Unmatched_Multiple
The script:
Public Overrides Sub InputMerged_ProcessInputRow(ByVal Row As InputMergedBuffer)
'
' Add your code here
'
Select Case Row.Countall
Case 1
If Row.Originate = 1 Then
Row.DirectRowToOutput_Unmatched_Agresso()
Else
Row.DirectRowToOutput_Unmatched_Oracle()
End If
Case 2
Row.DirectRowToOutput_Matched()
Case Else
Row.DirectRowToOutput_Unmatched_Multiple()
End Select
End Sub
All the Row.DirectTo..... are underlined with the popup-message saying...'DirectRowTo....' is not a member of 'ScriptComponent....'
Kind Regards
Carl.
View 3 Replies
View Related
Jun 9, 2006
Hi there,
This seems a bug to me. Or does anyone has a logical explanation that escapes me?
When in SSIS Designer Version 9.00.1399.00 I add output columns (numeric 4,0 ) to a scriptcomponent and fill them with valid numeric data in thescript I get a database error 'invalid number' when I use these columns in an OLE db Command-transformation . This errormessage disappears when I replaces those columns by a dataconversion to the datatype they originally have.
Derived Column Name Derived Column Expression
STATUS_DEF Replace 'STATUS_DEF' (DT_NUMERIC,4,0)STATUS_DEF
Maybethis info is usefull for somebody else who can't figure out wathever he's doing wrong.
Paul Baudouin
View 1 Replies
View Related
Sep 4, 2006
Hi,
I am not comfortable with DTS 2000 but I need to execute a encapsulated DTS 2000 package from a SSIS package. The real problem is when I need to pass SSIS variables to DTS 2000 package. The DTS 2000 package have 3 global variables that I can identify on " Execute DTS 2000 Package Task Editor - Inner Variables ". I believe the SSIS variables must be mapped on " Execute DTS 2000 Package Task Editor - OuterVariables ". How can I associate the SSIS variables(OuterVariables ) to "Inner Variables"? How can I do it? Much Thanks.
João
View 8 Replies
View Related
Jan 24, 2006
Hi,
I would like to design a SSIS package, which have couple of variables. It loads a xls file specified in a variable [varExcelFileFullPath] .
I will run it by commands: exec xp_cmdshell 'dtexec /SQL ....' (pls see an example below).
It seems it does not get the values passed in for those variables. I deployed the package to a sql server.
are there any grammar errors here? I copied it from dtexecui. It worked inside Dtexecui not in dos command.
exec xp_cmdshell 'dtexec /SQL "LoadExcelDB" /SERVER test /USER *** /PASSWORD ****
/MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EW
/LOGGER "{6AA833A1-E4B2-4431-831B-DE695049DC61}";"Test.SuperBowl"
/Set Package.Variables[User::varExcelFileName].Properties[Value];"TestAdHocLayer"
/Set Package.Variables[User::varExcelWorkbookName].Value;"Sheet1$"
/Set Package.Variables[User::varExcelFileFullPath].Value;"D: estshareTestAdHocLayer.xls"
/Set Package.Variables[User::varDestinationTableName].Value;"FeaturesTmp"
/Set Package.Variables[User::varPreSQLAction].Value;"delete from FeaturesTmp"
'
thanks,
Guangming
View 2 Replies
View Related
Jul 13, 2007
What is @@variables means in sql server?
View 3 Replies
View Related
Jan 21, 2004
Is there a way to use the LIKE keyword with variables like below?
DECLARE @Name CHAR(10)
SET @Name = 'MyName'
SELECT * FROM table
WHERE my_name LIKE @Name
This won't work, but you get the idea of what I want. Any thoughts?
Thanks,
View 1 Replies
View Related
Jun 4, 2004
Is there a way to pass variables off to DTS by ADO.NET?
Such as a FileName to export to and/or a parameter for the export query?
View 7 Replies
View Related
Jun 8, 2005
Anyone know how to write the portion in red in a stored procedure?LEFT OUTER JOIN TITLE AS T ON (POS.TITLE_ID = T.TITLE_ID)JOIN DISTRICT_LOCATIONS AS DL ON (POS.DISTRICT_LOCATION_ID = DL.DISTRICT_LOCATION_ID)WHERE POS.PRIMARY_IND = 1 IF @DISTRICT_LOCATION_ID != 'All' BEGIN and DL.DISTRICT_LOCATION_ID = @DISTRICT_LOCATION_ID ENDIF @ATTENDANCE_STATUS_ID!= 'All' BEGIN and AST.ATTENDANCE_STATUS_ID= @ATTENDANCE_STATUS_ID ENDUNION ALLSELECT DISTINCT 5 AS TAG ,3 AS PARENT ,convert(varchar,getdate(),101) as [ACTIVITY_REPORT!1!REPORT_DATE] ,AX.ACTIVITY_CLASS_ID AS [ACTIVITY!2!ACTIVITY_CLASS_ID] ,NULL AS [ACTIVITY!2!ACTIVITY_NAME]
View 2 Replies
View Related
Feb 16, 2000
Hi,
I am testing SQL Server 7.0. In Stored Proc I try to select a database which name is stored in the variable @databasename.
I get the error that it can't open a database @databasename.
Can I declare the database object in T-SQL?
Thanks
View 1 Replies
View Related
Nov 2, 2000
I have this script:
.....
USE master
go
/* Get Name of Server & declare variables */
declare @sname varchar(30)
declare @db1 varchar(30)
declare @db2 varchar(30)
declare @db3 varchar(30)
declare @dbf1 varchar(30)
declare @dbf2 varchar(30)
declare @dbf3 varchar(30)
select @sname = rtrim(substring(srvname,5,30)) from sysservers
print 'The name of this server is: ' + @sname
Set @db1 = @sname + 'database1'
Set @db2 = @sname + 'database2'
Set @db3 = @sname + 'database3'
Set @dbf1 = @db1 + 'RL_log'
Set @dbf2 = @db2 + 'RL_log'
Set @dbf3 = @db3 + 'RL_log'
print @db1
print @dbf1
go
ALTER DATABASE @db1 MODIFY FILE (NAME = @dbf1, MAXSIZE = UNLIMITED)
go
ALTER DATABASE @db2 MODIFY FILE (NAME = @dbf2, MAXSIZE = UNLIMITED)
go
ALTER DATABASE @db3 MODIFY FILE (NAME = @dbf3, MAXSIZE = UNLIMITED)
go
.....
When I run it, I get the following errors:
.....
The name of this server is: KANSASCITY
KANSASCITYdatabase1
KANSASCITYdatabase1RL_log
Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near '@db1'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '@db2'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '@db3'.
.....
Don't let the line numbers fool you. They refer to the number of lines since the last 'go' in the script. As you can see, the @db1 and @dbf1 variables are evaluating correctly.
WHAT I AM TRYING TO ACCOMPLISH:
I am attempting to change the setting of the Transaction Log to grow to fill up the entire disk. I do not wish to limit the space at this time. I have approximately 200 servers to manage and this script would be most useful in managing them, if it only worked.
Should I be using a different function to change the settings on the Transaction Log? Something other than ALTER DATABASE?
Thank you (in advance)
View 2 Replies
View Related
Mar 28, 2003
Hi
I think this is an easy question.
Is it possible to use a variable in a create database statement
i.e.
declare @db_name varchar(20)
select @db_name='new_db'
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = @db_name)
DROP DATABASE @db_name
CREATE DATABASE [@db_name] ON (NAME = @db_name, FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQLdataew_DB_Data.MDF' , SIZE = 300, FILEGROWTH = 10%) LOG ON (NAME = N'new_DB_Log', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQLdataImport_Utility_DB_Log.LDF' , SIZE = 30, FILEGROWTH = 10%)
COLLATE SQL_Latin1_General_CP1_CI_AS
GO
Also, if the above is possible, how can i pass a database name to the script if I am calling it from a batch file (using osql).
Thanks,
Jim
View 2 Replies
View Related
Jul 26, 2000
I want to change database in my SQL-script like this:
DECLARE @DB_NAME varchar(30)
SELECT * FROM @DB_NAME.dbo.TableName,
but it is syntactically incorrect.
I could use
USE (@DB_NAME)
but I write Stored Procedure, it is not allowed using
USE statement in any Stored Procedures.
View 2 Replies
View Related
Oct 31, 2005
Hey folks,
i'm trying to make a variable inside of a loop do this.
@a = 1
@b = Variable + @a
and then inside of the loop @a incriments by 1, so i'd get
variable1
variable2
...etc
but I can't get the variable to work right...
Any help would be great!
Caden
View 2 Replies
View Related
Apr 14, 2006
I have a MS SQL server DB which stores tables and queries and a MS Access DB which acts as an interface and stores Forms.
I am a MS Access Developre and this is my first MS Sql Server DB. I would like to know how can i pass a variable which is an object in a Form (In MS Access DB) to a query in MS SQL?
In MS Access( i mean mdb file which all tables, queries and forms are in one mdb file)it is very easy, for example if you would like to pass idfld from Form of frminfo to a query you can say: Where idname like " & Forms!frminfo!idfld , but it does not work on MS SQL.
Would you please tell me how can i use a variable in MS SQL query?
Thank
Ebi
View 8 Replies
View Related
Jan 29, 2007
I hope this is the place for questions about DTS.
I'm working on a DTS package that runs against development databases. At some point I'll move it to qual for testing, and I'll have to change names of servers and credentials for some of the connections. Can I do that with global variables? BOL aren't very helpful about this.
To be more specific. I'll have one "master" package that will be kicking off other packages. I've found in help that I can use dtsrun to pass variables - so I'm assuming that DBAs moving packages from one environment to another will adjust parameters passed by dtsrun to the "master" package. But how does the "worker" package reference global variable from the "master" package? And how do I reference global variable inside the "worker" package so that it's value is used for any of the properties I see when clicking on "disconnected properties" (like server name or user name)?
Is there some sort of tutorial out there that explains use of global variables?
Thanks in advance for any and all leads
View 9 Replies
View Related
Jun 5, 2007
Basically I am creating a wizard(using forms) within a database to import client files and reformat them into the format that we need.
I have a form that list all 26 column headings that I need and tied to each column headings is a combo box that that lists the column headings from the imported client file.
I need to create a query that either appends it to an already formatted file or creates a new table with the column headings.
The problem is the field headings from the imported file change.
This is the sql that I used that doesn't work:
INSERT INTO Formatted_Data ( Field X )
SELECT Imported_Data.Forms![Import Data-3]![Combo33]
FROM Imported_Data;
Because Imported_Data.Forms![Import Data-3]![Combo33] is not recognized. I think if I could create a variable to replace the Forms! part then it would work but I do not know how to do this,
Thanks in advance to anyon that can help
View 3 Replies
View Related
Nov 14, 2007
Hello,
I have a recordset that only has 1 record. I want to use this record to initialize the package variables. How do I do this? Or where do I do this?
View 2 Replies
View Related
Mar 14, 2007
Hi
I have a simple task flow which takes data from an external table and puts it into a SQL server table. In the SQL server table I have a column which flags the data source. I have set up a variable in the variable window to hold a constant which was the appropriate value for the column. I cannot see how to map the variable I have created to the column in my output table.
Not sure if variables do what I think they do, can anyone give me a simple overview, and point me in the right direction to add my constant into the output table.
Thanks in advance
ADG
View 1 Replies
View Related
Apr 25, 2007
Hi everyone,
Is the only way to get a SSIS variable to change values via a configuration file or table? I thought that at one point in developing some SSIS packages that if I changed the value of a variable in a script that value was then retained.
Thanks
View 7 Replies
View Related
Sep 7, 2007
Is there a way to manipulate the value of a variable with out using a skripttask?
I just want to var1 = var2.Substring(5)
View 5 Replies
View Related
Jan 21, 2008
I have around 40-50 packages.
I need to use a Variable do some control.
Let says it's DateFormat
My Question is
From BIDS i can change the value before i run the package. I might change it according to user's requirement
How if i plan to install the package to SQL server and it will run/called using SQL AGENT.
View 5 Replies
View Related
Jul 23, 2007
bla...well, i don't know if my syntax is right but what im trying todo is...
set a varialbe for my timestamps so i cant change them when needed...thus my sp can run automatically...
DECLARE @startTime AS varchar(100)
SET @startTime = '2007-07-09 00:00:00.000'
From Memberaccountdetails M1 where M1.Participantid = AL4.ParticipantID) AND
AL6.WorkDate={ts '2007-07-17 00:00:00.000'} AND
AL1.IntendedSettlementDate BETWEEN {ts @startTime} AND {ts '2007-07-16 00:00:00.000'} AND
AL1.TransactionType='DEL')
the highlighted red timestamp is what i need to achieve from a variable...
When i add this variable to the query i get the following message
[Microsoft][ODBC SQL Server Driver]Syntax error or access violation
please help!
View 7 Replies
View Related
Oct 22, 2007
Hi there,
Is it possible to store a server name in a variable?
Thanks
View 3 Replies
View Related
Oct 18, 2007
I want to return the results of a select statement and tie the results to a variable, is it possible?
DECLARE @variable datatype
SELECT @variable = 'SELECT * FROM TABLE'
SELECT @variable
If I execute this statements i would get the "select * from table" since thats what my variable is set to but I want to return the results of the select statement as the value of the variable.
Any advice?
Thanks
View 7 Replies
View Related
Nov 18, 2007
Hi all
I got an SSIS package with an OLE DB connection (Access) and SQL server connection. I'm trying to copy some tables in the OLE DB connection to the SQL server without creating individual data flow tasks. I was able to create blank tables with the same table names as the Access database using a ForEach container loop.
Now I tried executing a similar method to copy the data from the Access database to their corresponding table in the SQL server database. It gave me an error saying the SQL statement is incomplete. I tried executing a very simple SQL statement connected to the OLE DB connection: select * from @curtableName where @curtableName is the current table the ForEach container loop is looking at. Again same error occurs.
My question is, is there a way for me to execute this SQL statement? Or will I have to create a data flow task for each individual table?
Thanks in advance
CoyoteM
View 10 Replies
View Related