Hi all, I have what will probably turn out to be a very simple issue but has eluded me for a few hours. I have a Script Transformation that I am using to create surrogate keys I have to seed the key from the db and the best solution I have come up with is to use the Script Transformation. Here is what I have
Imports System.Data.SqlClient
Public Class ScriptMain
Inherits UserComponent
Dim max As Integer
Dim connMgr As IDTSConnectionManager90
Dim sqlConn As SqlConnection
Dim sqlReader As SqlDataReader
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
max = max + 1
Row.BonusId = max
End Sub
Public Sub New()
max = 0
connMgr = Me.Connections.Connection
sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)
Dim cmd As New System.Data.SqlClient.SqlCommand("select max(bonusid)as max from pnt_bonus", sqlConn)
sqlReader = cmd.ExecuteReader
sqlReader.Read()
max = sqlReader.GetInt32(0)
sqlReader.Close()
connMgr.ReleaseConnection(sqlConn)
End Sub
End Class
But I keep getting this error and can not figure out what I did wrong
Error 1 Validation error. Pnt_BonusGrant: Script Component [2094]: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at ScriptComponent_72b9559a12514bab836d9b5da9922bce.Connections.get_Connection() in dts://Scripts/ScriptComponent_72b9559a12514bab836d9b5da9922bce/ComponentWrapper:line 50 at ScriptComponent_72b9559a12514bab836d9b5da9922bce.ScriptMain..ctor() in dts://Scripts/ScriptComponent_72b9559a12514bab836d9b5da9922bce/ScriptMain:line 24 --- End of inner exception stack trace --- at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.CreateUserComponent() Package.dtsx 0 0
I'm on writing a custom data flow component (transformation). For this I need access to an external datasource. As best practice, it seems that you should use a connectionmanager in the package.
But I don't really know how to access them.
I've overwritten the AquireConnections() to lookup in the RuntimeConnectionCollection for the connection managers. But It seems it doesnt get called. If I call it my own, for example in validate (just for debugging purposes) the collection is empty, although there are two connectionmanagers in the package.
What am I doing wrong or has someone a code snippet for me.
I instantiated a new script component into an existing Data Flow in my SSIS project.
In the Script Transformation Editor, under the Connection Managers section, I associated the name dbConnManager to an already existing Connection Manager in the project.
My Connection Manager is of the type oOLEDB.
I then opened up the script designer and added the following lines of code where it said "Add your code here"
When I test run the project I get the following error and the new script component is red:
Unable to cast COM object of type 'System.__ComObject' to class type 'System.Data.OleDb.OleDbConnection'. Instances of types that represent COM components cannot be cast to types that do not represent COM components; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface.
I know the database connection works since I am using it in a component that executes before this new script component.
Is it possible to parameter the connection of a Lookup Transformation task - specifically the table/view name? I would like to be able to dynamically set the table that the Lookup Transformation is connecting to at runtime.I've looked into the "Use results of an SQL query" on the connection screen (which correlates to the "SqlCommand" property), but I'm unable to pass in a parameter this way.I've also looked into the SqlCommandParam, but that doesn't allow me to use a parameter in the "FROM" clause of the sql syntax.
If you have two synchronous transformation components and the input of the second is connected to the output of the first, does the first transformation process (loop through) all rows in the buffer before outputting these rows to the second transformation? Or does the first transformation output each individual row to the second transormation as soon as it has finished processing it?
I added a connection (ADO.NET) object by name testCon in the connection manager - I wanted to programmatically supply the connection string. So I used the "Expressions" property of the connection object and set the connectionstring to one DTS variable. The idea is to supply the connection string value to the variable - so that the connection object uses my connection string.
Then I added a "Backup Database Task" to my package with the name BkpTask. Now whenever I try to set the connection property of BkpTask to the testCon connection object, by typing testCon, it automatically gets cleared. I am not able to set the connection value.
Then after spending several hours I found that this is because I have customized the connection string in testCon. If I don't customize the connection string, I am able to enter the "testCon" value in the connection property of the BkpTask.
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.
Hello I trying to do some transformation using javascript. I have a table with 40 columns that I need dynamicaly mapped to another table. For example I need to test each Column of tableA if Col1 of TableA looks like an email address map it to TableB email if it looks like a zip map it to Email...
I need to do this with Javascript
if someone could point me in the right direction that would be great
lets say I start small test each col in TableA for an @ sign if I find it map to Email if I can get the idea of how to do that I can do this
plz tell me abt look up transformation , i need to look up with 3 source files ,1 flat file another 2 are compared with databases, how can we use that ....
I am a bit familiar with SSIS, but I have not used it in about a year. However, this is my question. We have a couple of reports that are being done in SSRS and our customer also requires some of these reports to be exported to a flat file. Somebody suggested using SSIS to do this.
What transformation element should I use to transform the data to a flat file destination. For instance, I have a column with a value of 10250. The customer specifies that this column must be right-justified with leading zeros. So I need to take that and convert it to a field length that is 12 characters long. It would ultimately be 000000010250.
The data source is returning columns that are both numeric and strings.
Hi, we are trying to implement this logic in SSIS data flow task
We have 2 datasets
Dataset 1 has Emplid and Actiondate. (from Oracle Database instance I) Dataset 2 has Emplid, ProjectID ,Project Start_Date ,Project_End_Date (from Oracle Database instance II)
Logic is
select ProjectID from Dataset 2 where Dataset 1.Emplid = Dataset 2.Emplid and Dataset 1.Actiondate between Dataset 2.Project Start_Date and Dataset 2.Project_End_Date.
for first condition we have used merge join between 2 datasets.
for second condition we are trying to use look up transformation... it did'nt help... if i want to write an query where do i write that???
I am trying to transform data from a text file to a SQL Server table and one particular column I want to split it to three other columns. It is erroring out when I try to split the column from the source in the Active X script while doing the transformation.
Is it possible to have more number of Columns in the destination when compared to the source.
We are transferring data between AS/400 and SQL Server 7.0 using DTS. Some of these transfers may need to be very close to real time. It doesn't seem like a continuously running job is the best solution for that.
Do you know any tools or utilities that can help us to move the data?
Please help,I am using SQL Server 7 and this is the first time I am using DTS. Can I import a text file with 3 fields to a table which has those 3 fields and also another 2 fields? Can somebody help with the ActiveX script to accomplish this? And one of the extra 2 fields in the table is a timestamp field. It needs to be timestamped automatically. Can somebody please help? Thank you in advance
name type amount ==== ==== ====== mary saving 123.00 mary chequing 246.00 mary investment 135.00 john saving 678.00 john chequing 987.00 john investment 0.00
what should i do to present the data in the following format?
name saving cheq investment ==== ====== ==== ========== mary 123.00 246.00 135.00 john 678.00 987.00 0.00
I am importing user id's from CSV file into my Database. The source user id is of 4 character long and the destination user_id field is of 100 varchar. I just query the data so that i wan'a check that is said user id is already exist in the database or not . So i got this error. Read the script and error below '************************************************* ********************* ' Visual Basic Transformation Script '************************************************* ***********************
' Copy each source column to the destination column Function Main()
DIM v_user_id,rs, ConStr,sql set rs = CreateObject("Adodb.Recordset") set con = CreateObject("Adodb.Connection")
ConStr = "Provider=SQLOLEDB;Server=192.168.1.71;Database=tes tkaanza;uid=sa;pwd=sa" v_user_id = DTSSource("Col001") rs.open "Select user_id from tbl_gc_user_hdr where user_id = " + v_user_id,ConStr,0,1
if Not rs.eof then MsgBox "Record Found" else MsgBox "Record Not Found" end if rs.Close End Function
i got error from this line : rs.open "Select user_id from tbl_gc_user_hdr where user_id = " + v_user_id,ConStr,0,1
Error message :
Error Source: Microsoft OLE DB Provider for SQL Server Error Description:The conversion of the varchar value '1000015151910165' overflowed an int column. Maximum integer value exceeded. Error Help File: Error Help Context ID:0
Hi, I need to extract a table from someother database in which one of the city columns with datatype CHAR has city values but all the values are appended by dots at the end...like: "Newyork.............." "Boston..............." "Chicago.............." "Los Angeles..........."
After extracting the table/data , i will have to do some transformations and lookups on the table....and at the same time i will have to remove the dots and load the table/data in to another SQL Server Database, i dont think i can use the substring as each record's length is different.
hi all, i am trying to convert getdate()to yyyymmdd type of output using derived column transformation and this transformation doesnot recognise CONVERT function. this is what iam trying to do 2007-01-01 00:00:00.000 to 20070101
I have an Access Database that I have imported into SQL Server2000 and that worked great, but now I have to get it into 2005. My question is, How can I get the tables and all info in the tables into an SQL Script so I can run that script on the 2005 server?
The SQL 2000 is on my dev server and I have all the Tools, (Ent Manager, Query Analyzer,etc...) but the 2005 Server is Godaddy's and they only have the basic web interface. I can run Sql files and create databases and tables, but thats about it.
I am doing something really simple and it doesnt work, may be I am missing something, What I am trying to accomplish is to load a fact table using lookup transaformation, however my source data was different from the data in my dimension (or the datatype ) I had to use a data conversion task before my lookup , so the data flow is something like this source -> Data Conversion -> Lookup -> destination , I am getting an error at my lookup task where it says the "[Lookup [82]] Error: Row yielded no match during lookup". and then it just fails. I know for sure that there has to be matching data. donno what is it that I am missing.
Hi Guys, wondered if anyone could point me in the right direction with this one.
I'm fairly new to SSIS and one data flow transformation i'm trying to get my head around is the pivot transformation. Perhaps if i explain what i want it to do it will make my problem seems clearer.
I have a table which contains a list of people and their demographic and personal details, each with a unique identifier number. When each persons details are entered one of the pieces of data captured is the month they were registered and their ethnic group classification. Within my data flow i want to take this table of registrations and pivot it like you would in Excel e.g. take the whole list, add months as the columns and ethnic categories as the rows and then a count of the unique identifiers as the value, giving you a simple count of all of the customers and what different ethnic groups per month were registered. Simple enough??
Now, i've tried to do this using the pivot and i seem to be getting lost so after reading the chapter from my wrox book i've tried to outline how i think it should be configured to see if it makes anymore sense, i'd appreciate it if anyone could point out where i might be going wrong.......
In my example i'm assuming my input columns will be the unique identifier, the ethnic group and the month?
I'll then select the ethnic group as the row and the month as the pivot and the unique code as the value using the pivotusage properties of 1, 2, 3. still on the right track??
I then create an output column of each month and set the pivotkey value to the month name and the lineageID to the ID of the unique identifer column.
Can anyone spot if i've missed something out here?
I am totally new to SSIS. I need an example of how to use a Lookup transformation. Basd on that i need to lookup for some recs and delete records from transaction table. I have used the Execute SQL task for this and i am able to achive my requirement. But now i am using XML configurations for Connection Managers and for that very reason i dont want to hard code the catalog names(database names) inside my Execute SQL task.
Can any one suggest me how to do the same using a Lookup transformation or any other. Any suggestions will be greatly appreciated.
I have a Dataflow task which loads data from a flat file to a Fact table named Inventory , doing a dimensional Key lookup with DIMStores - which is the dimension table for stores information.
If I have some rows in the flatfile whose 'Store' column doesnt have a corresponsing key in the DIMStores table, I want to insert all these stores in to DIMStores table and then update the Inventory table accordingly ..
I have to extract data from 3 different tables and insert it into another table. I can use a regular union all query or use 3 ole db sources and then use union all transform. What would be the difference here, is there any beneffit on using the transformation? Why would I use the union all transform instead of a regular query with union all statement?
I have a question based on Lookup Transformation component. If using Lookup component, the data cannot be NULL for available columns mapping. How about I want to keep the NULL value like outer join instead of inner join? Is there any way to do since I have several Lookup components inside of my dataflow?
Does anyone have any ideas how to resolve this problem?
I have set my PivotKey to be a Column containing the ColumnNames which I want to Pivot. I have taken the LineAgeId value from the Input column and used it as my SourceColumnID in the Ouput Columns tab.
Error 1 Validation error. Data Flow Task: Pivot [231]: Output column "ATTRIBUTENAME" (489) cannot be mapped to PivotKey input column. Package.dtsx 0 0
I'm trying to perform a lookup transformation. But the deal is, I have this one value that I am passing into the transformation, but I would like to gather all values that match the value I put in....does the lookup transformation do this? I tried it, and it appears as if it only returns one value for the one input. After the lookup, I have an access OLE DB destination setup...so I can capture all those values that corresponds to that one value I passed into the lookup. Does anyone have any ideas on how I can go about this?